zik 0.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data.tar.gz.sig +0 -0
  2. data/ChangeLog +222 -0
  3. data/INSTALL +34 -0
  4. data/Makefile.in +199 -0
  5. data/README +53 -0
  6. data/ZiK.desktop +11 -0
  7. data/ZiK.rb +377 -0
  8. data/configure +269 -0
  9. data/dependencies +142 -0
  10. data/doc/COPYING +340 -0
  11. data/doc/ChangeLog +222 -0
  12. data/doc/html/fr/index.html +128 -0
  13. data/doc/html/index.html +126 -0
  14. data/doc/html/pix/ZiK3.png +0 -0
  15. data/doc/html/pix/capture.png +0 -0
  16. data/doc/html/pix/capture_cd.png +0 -0
  17. data/doc/html/pix/capture_compact.png +0 -0
  18. data/doc/html/pix/capture_radio.png +0 -0
  19. data/doc/html/pix/icon.png +0 -0
  20. data/doc/html/pix/logo.png +0 -0
  21. data/doc/html/styles/main.css +47 -0
  22. data/doc/man/manpage.1 +43 -0
  23. data/gui/assistant.rb +133 -0
  24. data/gui/cdgui.rb +54 -0
  25. data/gui/common.rb +56 -0
  26. data/gui/config.rb +120 -0
  27. data/gui/edit.rb +413 -0
  28. data/gui/error.rb +124 -0
  29. data/gui/gui.rb +1383 -0
  30. data/gui/mod.rb +239 -0
  31. data/gui/preference.rb +496 -0
  32. data/gui/progress.rb +50 -0
  33. data/gui/radiogui.rb +404 -0
  34. data/gui/search.rb +249 -0
  35. data/gui/socket.rb +107 -0
  36. data/mod/brainz.rb +76 -0
  37. data/mod/brainz/dialogs.rb +132 -0
  38. data/mod/brainz/functions.rb +55 -0
  39. data/mod/brainz/ofa.rb +76 -0
  40. data/mod/brainz/song.rb +139 -0
  41. data/mod/brainz/widget.rb +34 -0
  42. data/mod/cover.rb +90 -0
  43. data/mod/cover/application-x-cd-image.svg +666 -0
  44. data/mod/cover/config.rb +79 -0
  45. data/mod/cover/configwidget.rb +35 -0
  46. data/mod/cover/widget.rb +147 -0
  47. data/mod/hotkeys.rb +137 -0
  48. data/mod/hotkeys/config.rb +84 -0
  49. data/mod/hotkeys/configwidget.rb +93 -0
  50. data/mod/interact.rb +131 -0
  51. data/mod/interact/configwidget.rb +107 -0
  52. data/mod/interact/interaction.rb +79 -0
  53. data/mod/notify.rb +128 -0
  54. data/mod/notify/config.rb +96 -0
  55. data/mod/notify/configwidget.rb +76 -0
  56. data/mod/notify/window.rb +56 -0
  57. data/mod/trayicon.rb +83 -0
  58. data/mod/trayicon/config.rb +79 -0
  59. data/mod/trayicon/configwidget.rb +35 -0
  60. data/mod/trayicon/icon.rb +99 -0
  61. data/pix/ZiK.svg +78 -0
  62. data/pix/ZiK3.png +0 -0
  63. data/pix/assistant/capture.png +0 -0
  64. data/pix/gtk-directory.svg +287 -0
  65. data/pix/media-cdrom.svg +292 -0
  66. data/pix/network-wireless.svg +429 -0
  67. data/pix/player_play.svg +286 -0
  68. data/pix/sound.svg +244 -0
  69. data/pix/sound_directory.svg +464 -0
  70. data/player/cdplayer.rb +108 -0
  71. data/player/player.rb +132 -0
  72. data/player/radioplayer.rb +124 -0
  73. data/playlist/cdlist.rb +140 -0
  74. data/playlist/common.rb +343 -0
  75. data/playlist/editlist.rb +50 -0
  76. data/playlist/export.rb +108 -0
  77. data/playlist/playlist.rb +143 -0
  78. data/playlist/radiolist.rb +148 -0
  79. data/playlist/song.rb +122 -0
  80. data/po/ZiK.pot +622 -0
  81. data/po/fr/ZiK.po +658 -0
  82. data/zik +2 -0
  83. metadata +265 -0
  84. metadata.gz.sig +0 -0
@@ -0,0 +1,143 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright 2007-2011 Vincent Carmona
4
+ vinc4mai@gmail.com
5
+
6
+ This file is part of ZiK.
7
+
8
+ ZiK is free software; you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation; either version 2 of the License, or
11
+ (at your option) any later version.
12
+
13
+ ZiK is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with ZiK; if not, write to the Free Software
20
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ =end
22
+
23
+ class PlayList
24
+ include ListBase
25
+ include ListPlay
26
+
27
+ attr_reader :songs, :current
28
+ attr_writer :sort_by_track
29
+
30
+ def initialize(file, current, shuffle, repeat, format, sort_by_track)
31
+ @songs=[]; @order=[];@current=current
32
+ @shuffle=shuffle; @repeat=repeat; @format=format; @sort_by_track=sort_by_track
33
+ @n=0
34
+ add_zik(file) if file
35
+ @current=0 if @current<0
36
+ @current=0 if @current>=@songs.length
37
+ @order=@order.sort_by{rand}
38
+ if @shuffle
39
+ @current=@order[0] if @order[0]
40
+ else
41
+ @n=@current
42
+ end
43
+ end
44
+
45
+ def playlist?
46
+ true
47
+ end
48
+
49
+ private
50
+
51
+ def add_zik(file)
52
+ begin
53
+ f=File.open(file, 'r')
54
+ data=f.read
55
+ rescue
56
+ ErrorError.new("#{file} cannot be read.", true)
57
+ ensure
58
+ f.close if f
59
+ end
60
+ begin
61
+ dir=Pathname.new(file).dirname
62
+ data.split(/\n{2}/).each{|song|
63
+ tag={}
64
+ array=song.split(/\n/)
65
+ path=Pathname.new(array.shift)
66
+ path.relative? ? p=dir+path : p=path
67
+ array.each{|a|
68
+ l=a.split('=', 2)
69
+ tag[l[0].to_sym]=l[1]
70
+ }
71
+ tag[:duration]=tag[:duration].to_i; tag[:track]=tag[:track].to_i; tag[:bitrate]=tag[:bitrate].to_i
72
+ tag[:samplerate]=tag[:samplerate].to_i; tag[:channels]=tag[:channels].to_i
73
+ add_file(p.to_s, tag)
74
+ }
75
+ rescue
76
+ ErrorError.new("Error while parsing #{file}.", true)
77
+ end
78
+ end
79
+
80
+ public
81
+
82
+ def save_zik(file, relative=false)
83
+ dir=Pathname.new(file).dirname
84
+ f=File.open(file, 'w')
85
+ @songs.each{|song|
86
+ if relative
87
+ f.puts Pathname.new(song.path).relative_path_from(dir)
88
+ else
89
+ f.puts song.path
90
+ end
91
+ f.puts 'name='+song.name
92
+ f.puts 'title='+song.title
93
+ f.puts 'artist='+song.artist
94
+ f.puts 'album='+song.album
95
+ f.puts 'track='+song.track.to_s
96
+ f.puts 'genre='+song.genre
97
+ f.puts 'duration='+song.duration.to_s
98
+ f.puts 'bitrate='+song.bitrate.to_s
99
+ f.puts 'samplerate='+song.samplerate.to_s
100
+ f.puts 'channels='+song.channels.to_s
101
+ f.puts "\n"
102
+ }
103
+ f.close if f
104
+ ErrorInfo.new("#{file} saved.")
105
+ end
106
+
107
+ def rm(num)
108
+ ret=false
109
+ ret=true if num==@current
110
+ @n-=1 if @order.index(num)<@n
111
+ @order.delete(num)
112
+ @order.each_index{|ind| @order[ind]-=1 if @order[ind]>num}
113
+ @songs.delete_at(num)
114
+ @current-=1 if num<@current
115
+ @n=@current unless @shuffle
116
+ ret
117
+ end
118
+
119
+ def change_to(new)
120
+ current=0; order=[]
121
+ if @songs.empty?
122
+ for i in 0...new.songs.length
123
+ order.push(i)
124
+ end
125
+ else
126
+ i=0
127
+ new.songs.each{|song|
128
+ current=i if song.path==(@songs[@current]).path
129
+ order.push(i)
130
+ i+=1
131
+ }
132
+ end
133
+ @order=order.sort_by{rand}
134
+ @songs=new.songs
135
+ @current=current
136
+ if @shuffle
137
+ @n=@order.index(@current)
138
+ else
139
+ @n=@current
140
+ end
141
+ end
142
+
143
+ end
@@ -0,0 +1,148 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright 2007-2011 Vincent Carmona
4
+ vinc4mai@gmail.com
5
+
6
+ This file is part of ZiK.
7
+
8
+ ZiK is free software; you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation; either version 2 of the License, or
11
+ (at your option) any later version.
12
+
13
+ ZiK is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with ZiK; if not, write to the Free Software
20
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ =end
22
+
23
+ module Radio
24
+ class WebRadio
25
+ attr_accessor :name, :url, :type
26
+ attr_reader :duration
27
+
28
+ def initialize(name, url)
29
+ @name=name
30
+ @url=url
31
+ @duration=-1
32
+ @type=SONG_RADIO
33
+ end
34
+ end
35
+
36
+ class List
37
+ attr_reader :radios
38
+ attr_accessor :current
39
+
40
+ def initialize(file)
41
+ @file=file
42
+ @radios=[]
43
+ @current=0
44
+ read
45
+ end
46
+
47
+ def read
48
+ begin
49
+ f=File.open(@file)
50
+ array=f.readlines
51
+ array.reject!{|a| a =~ /^##/}
52
+ array.reject!{|a| a =~ /^\n/}
53
+ array.each{|a| a.chomp!}
54
+ until array.empty?
55
+ @radios.push(Radio::WebRadio.new(array.shift, array.shift))
56
+ end
57
+ ErrorInfo.new("#{@file} read.")
58
+ rescue
59
+ ErrorWarning.new("#{@file} not found.")
60
+ ensure
61
+ f.close unless f.nil?
62
+ end
63
+ end
64
+
65
+ def write
66
+ begin
67
+ f=File.open(@file,'w')
68
+ f.puts '##Radios'
69
+ @radios.each{|radio|
70
+ f.puts radio.name
71
+ f.puts radio.url
72
+ }
73
+ ErrorInfo.new("List of radios saved.")
74
+ rescue
75
+ ErrorError.new(_('Saving radios.'), true)
76
+ ensure
77
+ f.close unless f.nil?
78
+ end
79
+ end
80
+
81
+ def add(name, url)
82
+ @radios.push(Radio::WebRadio.new(name, url))
83
+ end
84
+
85
+ def rm(i)
86
+ @current==i ? ret=true : ret=false
87
+ @radios.delete_at(i)
88
+ @current-=1 if i<@current
89
+ ret
90
+ end
91
+
92
+ def clear
93
+ @radios.clear
94
+ @current=0
95
+ end
96
+
97
+ def change_to(new)
98
+ current=0
99
+ new.radios.each_with_index{|radio, i| current=i if radio.url==@radios[@current].url}
100
+ @radios=new.radios
101
+ @current=current
102
+ end
103
+
104
+ def import(file)
105
+ begin
106
+ f=File.open(file,'r')
107
+ while line=f.gets
108
+ case line.chomp!
109
+ when /^#EXTINF:/
110
+ name=line.split(',', 2)[1]
111
+ when /^#/
112
+ when /^[:blank:]*$/
113
+ else
114
+ name=_('Uname Radio') if name.nil?
115
+ add(name, line)
116
+ name=nil
117
+ end
118
+ end
119
+ rescue
120
+ ErrorError.new("Cannot import radios list #{file}.", true)
121
+ ensure
122
+ f.close if f
123
+ end
124
+ end
125
+ end
126
+
127
+ class EditList
128
+ #Code looks like Radio::List
129
+ attr_reader :radios
130
+
131
+ def initialize(radios)
132
+ @radios=[]
133
+ @radios.concat(radios)
134
+ end
135
+
136
+ def add(name, url)
137
+ @radios.push(Radio::WebRadio.new(name, url))
138
+ end
139
+
140
+ def rm(i)
141
+ @radios.delete_at(i)
142
+ end
143
+
144
+ def clear
145
+ @radios.clear
146
+ end
147
+ end
148
+ end
data/playlist/song.rb ADDED
@@ -0,0 +1,122 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright 2007-2011 Vincent Carmona
4
+ vinc4mai@gmail.com
5
+
6
+ This file is part of ZiK.
7
+
8
+ ZiK is free software; you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation; either version 2 of the License, or
11
+ (at your option) any later version.
12
+
13
+ ZiK is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with ZiK; if not, write to the Free Software
20
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ =end
22
+
23
+ SongType=[SONG_FILE=0, SONG_CD=1, SONG_RADIO=2]
24
+
25
+ class BadPath < Exception
26
+ end
27
+
28
+ class Song
29
+ attr_reader :path, :name, :bitrate, :samplerate, :channels, :type
30
+ attr_accessor :title, :artist, :album, :track, :genre, :duration
31
+
32
+ def initialize(file, format='Artist - Title', tag=nil)
33
+ raise BadPath.new unless File.exist?(file)
34
+ @type=SONG_FILE
35
+ @path=file
36
+ if tag
37
+ @name=tag[:name]
38
+ @title=tag[:title]; @artist=tag[:artist]; @album=tag[:album]; @track=tag[:track]; @genre=tag[:genre]; @duration=tag[:duration]
39
+ @bitrate=tag[:bitrate]; @samplerate=tag[:samplerate]; @channels=tag[:channels]
40
+ else
41
+ read_tag(@path); refresh_name(format)
42
+ end
43
+ end
44
+
45
+ def refresh_name(format)
46
+ sep=' - '
47
+ @name=""
48
+ format.split(' - ').each{|f|
49
+ case f
50
+ when 'Title'
51
+ unless @title.empty?
52
+ @name+=sep unless @name.empty?
53
+ @name+=@title
54
+ end
55
+ when 'Artist'
56
+ unless @artist.empty?
57
+ @name+=sep unless @name.empty?
58
+ @name+=@artist
59
+ end
60
+ when 'Album'
61
+ unless @album.empty?
62
+ @name+=sep unless @name.empty?
63
+ @name+=@album
64
+ end
65
+ when 'Track'
66
+ unless @track<=0
67
+ @name+=sep unless @name.empty?
68
+ @name+=("%02d" % @track)
69
+ end
70
+ when 'None'
71
+ @name+=""
72
+ else
73
+ ErrorError.new("Parsing format (Song::refresh_name).")
74
+ @name=""
75
+ break
76
+ end
77
+ }
78
+ if @name.empty?
79
+ ext=File.extname(@path);@name=File.basename(@path,ext)
80
+ end
81
+ end
82
+
83
+ def read_tag(file)
84
+ begin
85
+ tag=TagLib::File.new(file)
86
+ @title=tag.title
87
+ @artist=tag.artist
88
+ @album=tag.album
89
+ @track=tag.track
90
+ @genre=tag.genre
91
+ @duration=tag.length
92
+ @bitrate=tag.bitrate
93
+ @samplerate=tag.samplerate
94
+ @channels=tag.channels
95
+ rescue TagLib::BadFile
96
+ ErrorWarning.new("Cannot read #{file}\'s tag.")
97
+ @title||=''; @artist||=''; @album||=''; @track||=-1; @genre||=''; @duration||=-1
98
+ @bitrate||=-1; @samplerate||=-1; @channels||=-1
99
+ rescue TagLib::BadTag
100
+ ErrorWarning.new("Cannot read #{file}\'s tag.")
101
+ @title||=''; @artist||=''; @album||=''; @track||=-1; @genre||=''; @duration||=-1
102
+ @bitrate||=-1; @samplerate||=-1; @channels||=-1
103
+ rescue TagLib::BadAudioProperties
104
+ ErrorWarning.new("Cannot read #{file}\'s audio properties.")
105
+ @bitrate||=-1; @samplerate||=-1; @channels||=-1
106
+ end
107
+ end
108
+
109
+ def write_tag(file)
110
+ begin
111
+ tag=TagLib::File.new(file)
112
+ tag.title=@title
113
+ tag.artist=@artist
114
+ tag.save
115
+ rescue TagLib::BadFile
116
+ ErrorWarning.new("Cannot write #{file}\'s tag.")
117
+ rescue TagLib::BadTag
118
+ ErrorWarning.new("Cannot write #{file}\'s tag.")
119
+ end
120
+ end
121
+
122
+ end
data/po/ZiK.pot ADDED
@@ -0,0 +1,622 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ #, fuzzy
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: PACKAGE VERSION\n"
10
+ "POT-Creation-Date: 2011-03-11 06:26+0100\n"
11
+ "PO-Revision-Date: 2011-03-11 06:26+0100\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
18
+
19
+ #: gui/assistant.rb:31
20
+ msgid "Welcome to ZiK.\nThis assistant will briefly helps you to use and configure ZiK."
21
+ msgstr ""
22
+
23
+ #: gui/assistant.rb:36
24
+ msgid "Introduction (1/6)"
25
+ msgstr ""
26
+
27
+ #: gui/assistant.rb:41
28
+ msgid "ZiK uses the path of your audio files instead of a music library.\nThe browser (1) shows your audio files.\nYour playlist is shown on (3).\nYou can use buttons (2) to add/remove files to/from your playlist.\nThe button (4) is used to hide/show the different part of the window. It is also used to display the radio and the CDs player."
29
+ msgstr ""
30
+
31
+ #: gui/assistant.rb:58
32
+ msgid "Main window (2/6)"
33
+ msgstr ""
34
+
35
+ #: gui/assistant.rb:65
36
+ msgid "The browser displays only the selected directories. \nPlease select at least one Diretory."
37
+ msgstr ""
38
+
39
+ #: gui/assistant.rb:70 gui/preference.rb:229
40
+ msgid "Only files with the given extension are displayed in the browser view. Extensions must be separate by a comma (,)."
41
+ msgstr ""
42
+
43
+ #: gui/assistant.rb:74
44
+ msgid "Later you can change your setting in the Browser/Preferences menu."
45
+ msgstr ""
46
+
47
+ #: gui/assistant.rb:83
48
+ msgid "Configuration (3/6)"
49
+ msgstr ""
50
+
51
+ #: gui/assistant.rb:88
52
+ msgid "ZiK uses GStreamer to play audio files. GStreamer supports a lot of formats. The number of supported formats depends on which gstreamer plug-ins are installed If you cannot play a file you should check which plug-ins are not installed. More informations on http://zik.rubyforge.org/wiki/wiki.pl?Supported_Formats"
53
+ msgstr ""
54
+
55
+ #: gui/assistant.rb:96
56
+ msgid "GStreamer (4/5)"
57
+ msgstr ""
58
+
59
+ #: gui/assistant.rb:101
60
+ msgid "ZiK configuration is done. You can find more options on the preferences window. You can find help or rerun this assistant on the help menu."
61
+ msgstr ""
62
+
63
+ #: gui/assistant.rb:107
64
+ msgid "Conclusion (5/5)"
65
+ msgstr ""
66
+
67
+ #: gui/cdgui.rb:36 gui/preference.rb:407
68
+ msgid "Cd"
69
+ msgstr ""
70
+
71
+ #: gui/config.rb:84
72
+ msgid "Saving configuration."
73
+ msgstr ""
74
+
75
+ #: gui/edit.rb:33 gui/preference.rb:140 gui/preference.rb:253
76
+ #: mod/brainz/dialogs.rb:39
77
+ msgid "Title"
78
+ msgstr ""
79
+
80
+ #: gui/edit.rb:38 gui/preference.rb:141 gui/preference.rb:255
81
+ #: mod/brainz/dialogs.rb:43
82
+ msgid "Artist"
83
+ msgstr ""
84
+
85
+ #: gui/edit.rb:43 gui/preference.rb:142 gui/preference.rb:257
86
+ #: mod/brainz/dialogs.rb:47
87
+ msgid "Album"
88
+ msgstr ""
89
+
90
+ #: gui/edit.rb:48 gui/preference.rb:259
91
+ msgid "Genre"
92
+ msgstr ""
93
+
94
+ #: gui/edit.rb:53 gui/preference.rb:143 mod/brainz/dialogs.rb:51
95
+ msgid "Track"
96
+ msgstr ""
97
+
98
+ #: gui/edit.rb:56 gui/preference.rb:251
99
+ msgid "Path"
100
+ msgstr ""
101
+
102
+ #: gui/edit.rb:60 gui/edit.rb:71 gui/edit.rb:75 gui/edit.rb:79
103
+ msgid "Unknown"
104
+ msgstr ""
105
+
106
+ #: gui/edit.rb:68
107
+ msgid "Duration"
108
+ msgstr ""
109
+
110
+ #: gui/edit.rb:72
111
+ msgid "Bitrate"
112
+ msgstr ""
113
+
114
+ #: gui/edit.rb:76
115
+ msgid "Samplerate"
116
+ msgstr ""
117
+
118
+ #: gui/edit.rb:80
119
+ msgid "Channels"
120
+ msgstr ""
121
+
122
+ #: gui/edit.rb:93
123
+ msgid "<b>Song's tag will be overwrite by clicking Ok.</b>"
124
+ msgstr ""
125
+
126
+ #: gui/edit.rb:132 gui/edit.rb:195 gui/gui.rb:379
127
+ msgid "Edit tag"
128
+ msgstr ""
129
+
130
+ #: gui/edit.rb:165
131
+ msgid "Song name"
132
+ msgstr ""
133
+
134
+ #: gui/edit.rb:185 gui/radiogui.rb:177
135
+ msgid "Move to the top"
136
+ msgstr ""
137
+
138
+ #: gui/edit.rb:190 gui/radiogui.rb:182
139
+ msgid "Move up"
140
+ msgstr ""
141
+
142
+ #: gui/edit.rb:206 gui/radiogui.rb:215
143
+ msgid "Move down"
144
+ msgstr ""
145
+
146
+ #: gui/edit.rb:211 gui/radiogui.rb:220
147
+ msgid "Move to the bottom"
148
+ msgstr ""
149
+
150
+ #: gui/edit.rb:217
151
+ msgid "Add a file"
152
+ msgstr ""
153
+
154
+ #: gui/edit.rb:222 gui/gui.rb:1135
155
+ msgid "Save playlist"
156
+ msgstr ""
157
+
158
+ #: gui/edit.rb:309
159
+ msgid "Add a File"
160
+ msgstr ""
161
+
162
+ #: gui/edit.rb:325
163
+ msgid "Save list"
164
+ msgstr ""
165
+
166
+ #: gui/gui.rb:66 gui/preference.rb:346
167
+ msgid "Shuffle"
168
+ msgstr ""
169
+
170
+ #: gui/gui.rb:69 gui/preference.rb:350
171
+ msgid "Repeat"
172
+ msgstr ""
173
+
174
+ #: gui/gui.rb:122 gui/gui.rb:1156
175
+ msgid "Export songs"
176
+ msgstr ""
177
+
178
+ #: gui/gui.rb:123
179
+ msgid "Copy songs to a directory and write the selected playlist file."
180
+ msgstr ""
181
+
182
+ #: gui/gui.rb:156
183
+ msgid "_Import"
184
+ msgstr ""
185
+
186
+ #: gui/gui.rb:166
187
+ msgid "Assistant"
188
+ msgstr ""
189
+
190
+ #: gui/gui.rb:171
191
+ msgid "Report a bug"
192
+ msgstr ""
193
+
194
+ #: gui/gui.rb:184
195
+ msgid "_Music"
196
+ msgstr ""
197
+
198
+ #: gui/gui.rb:186
199
+ msgid "_Browser"
200
+ msgstr ""
201
+
202
+ #: gui/gui.rb:188
203
+ msgid "Play_list"
204
+ msgstr ""
205
+
206
+ #: gui/gui.rb:191
207
+ msgid "_Radio"
208
+ msgstr ""
209
+
210
+ #: gui/gui.rb:194
211
+ msgid "_Help"
212
+ msgstr ""
213
+
214
+ #: gui/gui.rb:211 gui/preference.rb:404
215
+ msgid "Browser"
216
+ msgstr ""
217
+
218
+ #: gui/gui.rb:278
219
+ msgid "Add selected files to playlist"
220
+ msgstr ""
221
+
222
+ #: gui/gui.rb:289
223
+ msgid "Remove selected songs from playlist"
224
+ msgstr ""
225
+
226
+ #: gui/gui.rb:294
227
+ msgid "Clear playlist"
228
+ msgstr ""
229
+
230
+ #: gui/gui.rb:299
231
+ msgid "Edit playlist"
232
+ msgstr ""
233
+
234
+ #: gui/gui.rb:304
235
+ msgid "Find in playlist"
236
+ msgstr ""
237
+
238
+ #: gui/gui.rb:313 gui/preference.rb:405
239
+ msgid "Playlist"
240
+ msgstr ""
241
+
242
+ #: gui/gui.rb:440 gui/radiogui.rb:110 gui/radiogui.rb:226 gui/radiogui.rb:379
243
+ msgid "Add a radio"
244
+ msgstr ""
245
+
246
+ #: gui/gui.rb:444 gui/radiogui.rb:187
247
+ msgid "Remove selection"
248
+ msgstr ""
249
+
250
+ #: gui/gui.rb:453 gui/radiogui.rb:231
251
+ msgid "Clear radios list"
252
+ msgstr ""
253
+
254
+ #: gui/gui.rb:461 gui/radiogui.rb:81 gui/radiogui.rb:192 gui/radiogui.rb:198
255
+ msgid "Edit a radio"
256
+ msgstr ""
257
+
258
+ #: gui/gui.rb:915
259
+ msgid "Loading new plugins. Please wait..."
260
+ msgstr ""
261
+
262
+ #: gui/gui.rb:1118
263
+ msgid "Import a file"
264
+ msgstr ""
265
+
266
+ #: gui/gui.rb:1162
267
+ msgid "Export all songs in this directory."
268
+ msgstr ""
269
+
270
+ #: gui/gui.rb:1163
271
+ msgid "Recreate songs tree under the destination directory."
272
+ msgstr ""
273
+
274
+ #: gui/gui.rb:1175
275
+ msgid "Copying audio files..."
276
+ msgstr ""
277
+
278
+ #: gui/gui.rb:1197
279
+ msgid "An error occured while exporting songs.\n"
280
+ msgid_plural "Some errors occured while exporting songs.\n"
281
+ msgstr[0] ""
282
+ msgstr[1] ""
283
+
284
+ #: gui/gui.rb:1315
285
+ msgid "Do not forget to validate your changes after editing the playlist."
286
+ msgstr ""
287
+
288
+ #: gui/gui.rb:1376
289
+ msgid "Audio player"
290
+ msgstr ""
291
+
292
+ #: gui/mod.rb:61
293
+ msgid "Some module cannot be loaded."
294
+ msgstr ""
295
+
296
+ #: gui/mod.rb:125 gui/mod.rb:156 gui/mod.rb:175 gui/preference.rb:408
297
+ msgid "Modules"
298
+ msgstr ""
299
+
300
+ #: gui/preference.rb:33
301
+ msgid "Add a directory."
302
+ msgstr ""
303
+
304
+ #: gui/preference.rb:35
305
+ msgid "Directories"
306
+ msgstr ""
307
+
308
+ #: gui/preference.rb:50 gui/preference.rb:111
309
+ msgid "Delete this directory."
310
+ msgstr ""
311
+
312
+ #: gui/preference.rb:58
313
+ msgid "Add a directory"
314
+ msgstr ""
315
+
316
+ #: gui/preference.rb:85 gui/preference.rb:299 gui/preference.rb:357
317
+ msgid "Default"
318
+ msgstr ""
319
+
320
+ #: gui/preference.rb:86 gui/preference.rb:300 gui/preference.rb:358
321
+ msgid "Reset to default."
322
+ msgstr ""
323
+
324
+ #: gui/preference.rb:94
325
+ msgid "Add an extension."
326
+ msgstr ""
327
+
328
+ #: gui/preference.rb:96
329
+ msgid "Extensions"
330
+ msgstr ""
331
+
332
+ #: gui/preference.rb:139
333
+ msgid "None"
334
+ msgstr ""
335
+
336
+ #: gui/preference.rb:224
337
+ msgid "List of directories displayed in the browser view."
338
+ msgstr ""
339
+
340
+ #: gui/preference.rb:233
341
+ msgid "Refresh browser view on start"
342
+ msgstr ""
343
+
344
+ #: gui/preference.rb:235
345
+ msgid "Uncheck to use previous view (faster)."
346
+ msgstr ""
347
+
348
+ #: gui/preference.rb:242
349
+ msgid "Directories before files"
350
+ msgstr ""
351
+
352
+ #: gui/preference.rb:244
353
+ msgid "Case sensitive"
354
+ msgstr ""
355
+
356
+ #: gui/preference.rb:246 gui/preference.rb:325
357
+ msgid "Sort options"
358
+ msgstr ""
359
+
360
+ #: gui/preference.rb:261
361
+ msgid "Check entries used for search. Use only path for speed."
362
+ msgstr ""
363
+
364
+ #: gui/preference.rb:273 gui/search.rb:186
365
+ msgid "Search"
366
+ msgstr ""
367
+
368
+ #: gui/preference.rb:284
369
+ msgid "Single"
370
+ msgstr ""
371
+
372
+ #: gui/preference.rb:285
373
+ msgid "Multi"
374
+ msgstr ""
375
+
376
+ #: gui/preference.rb:288
377
+ msgid "Session"
378
+ msgstr ""
379
+
380
+ #: gui/preference.rb:293
381
+ msgid "Format used to display songs' name. Set all to None if you want to use file name."
382
+ msgstr ""
383
+
384
+ #: gui/preference.rb:295
385
+ msgid "Format"
386
+ msgstr ""
387
+
388
+ #: gui/preference.rb:305 mod/notify/configwidget.rb:44 mod/notify/configwidget.rb:52
389
+ msgid "Select a color."
390
+ msgstr ""
391
+
392
+ #: gui/preference.rb:307
393
+ msgid "Color used to highlight the current song."
394
+ msgstr ""
395
+
396
+ #: gui/preference.rb:309
397
+ msgid "Color"
398
+ msgstr ""
399
+
400
+ #: gui/preference.rb:313 gui/preference.rb:317
401
+ msgid "Compact view"
402
+ msgstr ""
403
+
404
+ #: gui/preference.rb:315
405
+ msgid "Show more tracks in playlist."
406
+ msgstr ""
407
+
408
+ #: gui/preference.rb:321
409
+ msgid "Sort by track"
410
+ msgstr ""
411
+
412
+ #: gui/preference.rb:323
413
+ msgid "Try to sort files by track numbers when adding a directory."
414
+ msgstr ""
415
+
416
+ #: gui/preference.rb:329
417
+ msgid "Relative paths"
418
+ msgstr ""
419
+
420
+ #: gui/preference.rb:331
421
+ msgid "Use relative paths when saving playlist."
422
+ msgstr ""
423
+
424
+ #: gui/preference.rb:333
425
+ msgid "Relative path"
426
+ msgstr ""
427
+
428
+ #: gui/preference.rb:342
429
+ msgid "Play on start"
430
+ msgstr ""
431
+
432
+ #: gui/preference.rb:362
433
+ msgid "Device"
434
+ msgstr ""
435
+
436
+ #: gui/preference.rb:366
437
+ msgid "Search for the songs title on the web."
438
+ msgstr ""
439
+
440
+ #: gui/preference.rb:387
441
+ msgid "Configuration"
442
+ msgstr ""
443
+
444
+ #: gui/preference.rb:406
445
+ msgid "Player"
446
+ msgstr ""
447
+
448
+ #: gui/preference.rb:482
449
+ msgid "Preferences"
450
+ msgstr ""
451
+
452
+ #: gui/radiogui.rb:27
453
+ msgid "Name"
454
+ msgstr ""
455
+
456
+ #: gui/radiogui.rb:30
457
+ msgid "Url"
458
+ msgstr ""
459
+
460
+ #: gui/radiogui.rb:67 gui/radiogui.rb:161
461
+ msgid "Radio"
462
+ msgstr ""
463
+
464
+ #: gui/radiogui.rb:134
465
+ msgid "Import a radios list"
466
+ msgstr ""
467
+
468
+ #: gui/radiogui.rb:274
469
+ msgid "Edit radios list"
470
+ msgstr ""
471
+
472
+ #: gui/search.rb:50
473
+ msgid "Searching (ListSearchWidget)."
474
+ msgstr ""
475
+
476
+ #: gui/search.rb:149
477
+ msgid "Searching (BrowseSearchWindow)"
478
+ msgstr ""
479
+
480
+ #: gui/search.rb:157
481
+ msgid "Results"
482
+ msgstr ""
483
+
484
+ #: playlist/radiolist.rb:75
485
+ msgid "Saving radios."
486
+ msgstr ""
487
+
488
+ #: playlist/radiolist.rb:114
489
+ msgid "Uname Radio"
490
+ msgstr ""
491
+
492
+ #: mod/brainz.rb:25
493
+ msgid "Retrieve track infos from the web."
494
+ msgstr ""
495
+
496
+ #: mod/brainz.rb:58
497
+ msgid "Cannot find ofa element. Please install ofa Gstreamer plugins."
498
+ msgstr ""
499
+
500
+ #: mod/cover.rb:25
501
+ msgid "Display album covers."
502
+ msgstr ""
503
+
504
+ #: mod/hotkeys.rb:31
505
+ msgid "Set global hotkeys."
506
+ msgstr ""
507
+
508
+ #: mod/hotkeys.rb:67
509
+ msgid "Cannot find rghk. Please install it."
510
+ msgstr ""
511
+
512
+ #: mod/hotkeys.rb:89
513
+ msgid "Module not loaded. Cannot display configuration."
514
+ msgstr ""
515
+
516
+ #: mod/notify.rb:25
517
+ msgid "Display a notification when playing a new song."
518
+ msgstr ""
519
+
520
+ #: mod/notify.rb:49
521
+ msgid "Cannot use system notification. Please install ruby-libnotify."
522
+ msgstr ""
523
+
524
+ #: mod/notify.rb:64 mod/notify.rb:66 mod/notify/window.rb:34
525
+ msgid "Playing"
526
+ msgstr ""
527
+
528
+ #: mod/trayicon.rb:25
529
+ msgid "Display an icon in the system tray."
530
+ msgstr ""
531
+
532
+ #: mod/brainz/dialogs.rb:111
533
+ msgid "Id (Original tags)"
534
+ msgstr ""
535
+
536
+ #: mod/brainz/functions.rb:46
537
+ msgid "Cannot retrieve song id (parse error)."
538
+ msgstr ""
539
+
540
+ #: mod/brainz/functions.rb:48
541
+ msgid "Cannot retrieve song id."
542
+ msgstr ""
543
+
544
+ #: mod/brainz/functions.rb:51
545
+ msgid "Only files are supported."
546
+ msgstr ""
547
+
548
+ #: mod/brainz/song.rb:58
549
+ msgid "Http error"
550
+ msgstr ""
551
+
552
+ #: mod/brainz/song.rb:91
553
+ msgid "musicdns error.\n"
554
+ msgstr ""
555
+
556
+ #: mod/hotkeys/configwidget.rb:29
557
+ msgid "Previous: "
558
+ msgstr ""
559
+
560
+ #: mod/hotkeys/configwidget.rb:39
561
+ msgid "Stop: "
562
+ msgstr ""
563
+
564
+ #: mod/hotkeys/configwidget.rb:49
565
+ msgid "Play/pause: "
566
+ msgstr ""
567
+
568
+ #: mod/hotkeys/configwidget.rb:59
569
+ msgid "Next: "
570
+ msgstr ""
571
+
572
+ #: mod/notify/configwidget.rb:30
573
+ msgid "Display time"
574
+ msgstr ""
575
+
576
+ #: mod/notify/configwidget.rb:33
577
+ msgid "Use native notifications"
578
+ msgstr ""
579
+
580
+ #: mod/notify/configwidget.rb:39
581
+ msgid "Use system notifications"
582
+ msgstr ""
583
+
584
+ #: mod/notify/configwidget.rb:46
585
+ msgid "Background color"
586
+ msgstr ""
587
+
588
+ #: mod/notify/configwidget.rb:54
589
+ msgid "Foreground color"
590
+ msgstr ""
591
+
592
+ #: mod/trayicon/configwidget.rb:28
593
+ msgid "Check to add interactions with third button mouse.\ndown : next song.\nup : previous song.\nCtrl+down : decrease volume.\nCtrl+up : increase volume."
594
+ msgstr ""
595
+
596
+ #: mod/trayicon/configwidget.rb:31
597
+ msgid "Scroll actions"
598
+ msgstr ""
599
+
600
+ #: mod/trayicon/icon.rb:40
601
+ msgid "Main window"
602
+ msgstr ""
603
+
604
+ #: mod/cover/configwidget.rb:28
605
+ msgid "Check to hide cover area when no cover is found."
606
+ msgstr ""
607
+
608
+ #: mod/cover/configwidget.rb:31
609
+ msgid "Hide"
610
+ msgstr ""
611
+
612
+ #: mod/cover/widget.rb:40 mod/cover/widget.rb:56 mod/cover/widget.rb:71
613
+ msgid "Title: "
614
+ msgstr ""
615
+
616
+ #: mod/cover/widget.rb:41 mod/cover/widget.rb:56 mod/cover/widget.rb:72
617
+ msgid "Artist: "
618
+ msgstr ""
619
+
620
+ #: mod/cover/widget.rb:42 mod/cover/widget.rb:56 mod/cover/widget.rb:73
621
+ msgid "Album: "
622
+ msgstr ""