i18n support
This commit is contained in:
parent
3975234566
commit
e117b7eb15
@ -8,7 +8,7 @@ About::About(QWidget *parent)
|
||||
{
|
||||
ui_.setupUi(this);
|
||||
|
||||
setWindowTitle("About " + QCoreApplication::applicationName());
|
||||
setWindowTitle(tr("About %1").arg(QCoreApplication::applicationName()));
|
||||
ui_.title->setText(QCoreApplication::applicationName());
|
||||
ui_.version->setText("Version " + QCoreApplication::applicationVersion());
|
||||
ui_.version->setText(tr("Version %1").arg(QCoreApplication::applicationVersion()));
|
||||
}
|
||||
|
BIN
src/clementine_el.qm
Normal file
BIN
src/clementine_el.qm
Normal file
Binary file not shown.
724
src/clementine_el.ts
Normal file
724
src/clementine_el.ts
Normal file
@ -0,0 +1,724 @@
|
||||
<!DOCTYPE TS><TS>
|
||||
<context>
|
||||
<name>About</name>
|
||||
<message>
|
||||
<source>#line {
|
||||
color: lightgrey;
|
||||
}
|
||||
|
||||
#title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#version {
|
||||
font-style: italic;
|
||||
font-size: 10px;
|
||||
}
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://code.google.com/p/clementine-player/"><span style=" text-decoration: underline; color:#0057ae;">http://code.google.com/p/clementine-player/</span></a></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">David Sansome &lt;<a href="mailto:me@davidsansome.com"><span style=" text-decoration: underline; color:#0057ae;">me@davidsansome.com</span></a>&gt;</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Thanks to:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mark Kretschmann &lt;<a href="mailto:markey@web.de"><span style=" text-decoration: underline; color:#0057ae;">markey@web.de</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Max Howell &lt;<a href="mailto:max.howell@methylblue.com"><span style=" text-decoration: underline; color:#0057ae;">max.howell@methylblue.com</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">... and all the Amarok contributors</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditTagDialog</name>
|
||||
<message>
|
||||
<source>Edit track information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>QLineEdit {
|
||||
<byte value="x9"/>background-color: transparent;
|
||||
}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[click to edit]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileView</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileViewList</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Move to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfig</name>
|
||||
<message>
|
||||
<source>Enter your Last.fm details below:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm username</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Scrobble tracks that I listen to</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note that you must be a <span style=" font-weight:600;">paid subscriber</span> to listen to Last.fm radio from within Clementine.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authenticating...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Last.fm credentials were incorrect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfigDialog</name>
|
||||
<message>
|
||||
<source>Last,fm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play artist radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play tag radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Last.fm...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Recommendations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Neighbourhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighborhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Recommended Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighbour Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Similar Artists to %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag Radio: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid service</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid method</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid resource specified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Operation failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid session key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid API key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Service offline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This stream is for paid subscribers only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm is currently busy, please try again in a few minutes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough members</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough fans</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Malformed response</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMStationDialog</name>
|
||||
<message>
|
||||
<source>Play Artist or Tag</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Library</name>
|
||||
<message>
|
||||
<source>Various Artists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfig</name>
|
||||
<message>
|
||||
<source>These folders will be scanned for music to make up your library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add new folder...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add directory...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfigDialog</name>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryView</name>
|
||||
<message>
|
||||
<source>Your library is empty!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click here to add some music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<source>Clementine</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Previous track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Next track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop after this track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Entire collection</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added today</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this week</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added within three months</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this month</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Love</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ban</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit track information...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Clementine...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Clementine...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Shuffle playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultiLoadingIndicator</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading audio engine</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Updating library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Getting channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading stream</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Last.fm radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OSD</name>
|
||||
<message>
|
||||
<source>Paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist finished</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Volume %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Playlist</name>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BPM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bit rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sample rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PlaylistHeader</name>
|
||||
<message>
|
||||
<source>Hide...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show section</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hide %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RadioPlaylistItem</name>
|
||||
<message>
|
||||
<source>Radio service couldn't be loaded :-(</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notifications</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No fadeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout duration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> ms</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clementine can show a message when the track changes.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Don't show notifications</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a native desktop notification</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a popup from the system tray</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Popup duration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SomaFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open somafm.com in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Refresh channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrackSlider</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>0:00:00</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
BIN
src/clementine_es.qm
Normal file
BIN
src/clementine_es.qm
Normal file
Binary file not shown.
737
src/clementine_es.ts
Normal file
737
src/clementine_es.ts
Normal file
@ -0,0 +1,737 @@
|
||||
<!DOCTYPE TS><TS>
|
||||
<defaultcodec>UTF-8</defaultcodec>
|
||||
<context>
|
||||
<name>About</name>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation>Título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Versión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://code.google.com/p/clementine-player/"><span style=" text-decoration: underline; color:#0057ae;">http://code.google.com/p/clementine-player/</span></a></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">David Sansome &lt;<a href="mailto:me@davidsansome.com"><span style=" text-decoration: underline; color:#0057ae;">me@davidsansome.com</span></a>&gt;</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Thanks to:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mark Kretschmann &lt;<a href="mailto:markey@web.de"><span style=" text-decoration: underline; color:#0057ae;">markey@web.de</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Max Howell &lt;<a href="mailto:max.howell@methylblue.com"><span style=" text-decoration: underline; color:#0057ae;">max.howell@methylblue.com</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">... and all the Amarok contributors</p></body></html></source>
|
||||
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://code.google.com/p/clementine-player/"><span style=" text-decoration: underline; color:#0057ae;">http://code.google.com/p/clementine-player/</span></a></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Autores:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">David Sansome &lt;<a href="mailto:me@davidsansome.com"><span style=" text-decoration: underline; color:#0057ae;">me@davidsansome.com</span></a>&gt;</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Gracias a:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mark Kretschmann &lt;<a href="mailto:markey@web.de"><span style=" text-decoration: underline; color:#0057ae;">markey@web.de</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Max Howell &lt;<a href="mailto:max.howell@methylblue.com"><span style=" text-decoration: underline; color:#0057ae;">max.howell@methylblue.com</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">... y todos los que contribuyeron con Amarok</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>#line {
|
||||
color: lightgrey;
|
||||
}
|
||||
|
||||
#title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#version {
|
||||
font-style: italic;
|
||||
font-size: 10px;
|
||||
}
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditTagDialog</name>
|
||||
<message>
|
||||
<source>Edit track information</source>
|
||||
<translation>Editar información de la pista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation>Título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation>Álbum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation>Artista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation>Género</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation>Pista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation>Año</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comment</source>
|
||||
<translation>Comentario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>QLineEdit {
|
||||
<byte value="x9"/>background-color: transparent;
|
||||
}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[click to edit]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileView</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Form</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>...</source>
|
||||
<translation>...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileViewList</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Move to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfig</name>
|
||||
<message>
|
||||
<source>Enter your Last.fm details below:</source>
|
||||
<translation>Ingrese su información de Last.fm debajo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm username</source>
|
||||
<translation>Usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm password</source>
|
||||
<translation>Contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Scrobble tracks that I listen to</source>
|
||||
<translation>Enviar las pistas que reproduzco</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note that you must be a <span style=" font-weight:600;">paid subscriber</span> to listen to Last.fm radio from within Clementine.</source>
|
||||
<translation>Recuerda que tienes que tener una <span style=" font-weight:600;">suscripcion paga</span> para escuchar la radio de Last.fm desde Clementine.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authenticating...</source>
|
||||
<translation>Autenticando...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Last.fm credentials were incorrect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfigDialog</name>
|
||||
<message>
|
||||
<source>Last,fm</source>
|
||||
<translation>Last.fm</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play artist radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play tag radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Last.fm...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Recommendations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Neighbourhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighborhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Recommended Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighbour Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Similar Artists to %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag Radio: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid service</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid method</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid resource specified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Operation failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid session key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid API key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Service offline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This stream is for paid subscribers only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm is currently busy, please try again in a few minutes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough members</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough fans</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Malformed response</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMStationDialog</name>
|
||||
<message>
|
||||
<source>Play Artist or Tag</source>
|
||||
<translation>Reproducir Artista o Género</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio.</source>
|
||||
<translation>Ingrese un <b>artista</b> o <b>género</b> para escuchar la radio de Last.fm.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation>Artista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag</source>
|
||||
<translation>Género</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Library</name>
|
||||
<message>
|
||||
<source>Various Artists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfig</name>
|
||||
<message>
|
||||
<source>These folders will be scanned for music to make up your library</source>
|
||||
<translation>Estas carpetas seran analizadas en busca de medios para crear su colección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add new folder...</source>
|
||||
<translation>Añadir nueva carpeta...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove folder</source>
|
||||
<translation>Remover carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add directory...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfigDialog</name>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation>Colección de Música</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryView</name>
|
||||
<message>
|
||||
<source>Your library is empty!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click here to add some music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<source>Clementine</source>
|
||||
<translation>Clementine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Library</source>
|
||||
<translation>Colección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Radio</source>
|
||||
<translation>Radio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Files</source>
|
||||
<translation>Archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music</source>
|
||||
<translation>Música</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist</source>
|
||||
<translation>Lista de reproducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Preferencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Ayuda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Previous track</source>
|
||||
<translation>Pista Anterior</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play</source>
|
||||
<translation>Reproducir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<translation>Detener</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Next track</source>
|
||||
<translation>Pista siguiente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Quit</source>
|
||||
<translation>&Salir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation>Ctrl+Q</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop after this track</source>
|
||||
<translation>Detener reproducción al finalizar la pista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Entire collection</source>
|
||||
<translation>Colección completa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added today</source>
|
||||
<translation>Añadido hoy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this week</source>
|
||||
<translation>Añadido la última semana</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added within three months</source>
|
||||
<translation>Añadido los últimos tres meses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this year</source>
|
||||
<translation>Añadido el último año</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this month</source>
|
||||
<translation>Añadido el último mes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Love</source>
|
||||
<translation>Agregar a Favoritos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ban</source>
|
||||
<translation>Quitar de Favoritos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear playlist</source>
|
||||
<translation>Limpiar lista de reproducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit track information...</source>
|
||||
<translation>Editar información de la pista...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Clementine...</source>
|
||||
<translation>Configurar Clementine...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Clementine...</source>
|
||||
<translation>Sobre Clementine...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Shuffle playlist</source>
|
||||
<translation>Barajar lista de reproducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultiLoadingIndicator</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading audio engine</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Updating library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Getting channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading stream</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Last.fm radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OSD</name>
|
||||
<message>
|
||||
<source>Paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist finished</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Volume %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Playlist</name>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished">Título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished">Artista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation type="unfinished">Álbum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation type="unfinished">Pista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation type="unfinished">Año</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation type="unfinished">Género</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BPM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bit rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sample rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PlaylistHeader</name>
|
||||
<message>
|
||||
<source>Hide...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show section</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hide %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RadioPlaylistItem</name>
|
||||
<message>
|
||||
<source>Radio service couldn't be loaded :-(</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Preferencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation>Reproducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notifications</source>
|
||||
<translation>Notificaciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation>Colección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm</source>
|
||||
<translation>Last.fm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout</source>
|
||||
<translation>Fundido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No fadeout</source>
|
||||
<translation>Sin fundido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout duration</source>
|
||||
<translation>Duración del fundido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> ms</source>
|
||||
<translation>ms</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clementine can show a message when the track changes.</source>
|
||||
<translation>Clementine puede mostrar un mensaje cuando la pista cambia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Don't show notifications</source>
|
||||
<translation>No mostrar notificaciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a native desktop notification</source>
|
||||
<translation>Mostrar la notificacion propia del escritorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a popup from the system tray</source>
|
||||
<translation>Mostrar la notificación en la bandeja de sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Popup duration</source>
|
||||
<translation>Duracion de la notificación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> seconds</source>
|
||||
<translation>segundos</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SomaFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open somafm.com in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Refresh channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrackSlider</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>0:00:00</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
BIN
src/clementine_ru.qm
Normal file
BIN
src/clementine_ru.qm
Normal file
Binary file not shown.
724
src/clementine_ru.ts
Normal file
724
src/clementine_ru.ts
Normal file
@ -0,0 +1,724 @@
|
||||
<!DOCTYPE TS><TS>
|
||||
<context>
|
||||
<name>About</name>
|
||||
<message>
|
||||
<source>#line {
|
||||
color: lightgrey;
|
||||
}
|
||||
|
||||
#title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#version {
|
||||
font-style: italic;
|
||||
font-size: 10px;
|
||||
}
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://code.google.com/p/clementine-player/"><span style=" text-decoration: underline; color:#0057ae;">http://code.google.com/p/clementine-player/</span></a></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">David Sansome &lt;<a href="mailto:me@davidsansome.com"><span style=" text-decoration: underline; color:#0057ae;">me@davidsansome.com</span></a>&gt;</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Thanks to:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mark Kretschmann &lt;<a href="mailto:markey@web.de"><span style=" text-decoration: underline; color:#0057ae;">markey@web.de</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Max Howell &lt;<a href="mailto:max.howell@methylblue.com"><span style=" text-decoration: underline; color:#0057ae;">max.howell@methylblue.com</span></a>&gt;</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">... and all the Amarok contributors</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditTagDialog</name>
|
||||
<message>
|
||||
<source>Edit track information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>QLineEdit {
|
||||
<byte value="x9"/>background-color: transparent;
|
||||
}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[click to edit]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileView</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FileViewList</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Move to library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfig</name>
|
||||
<message>
|
||||
<source>Enter your Last.fm details below:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm username</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Scrobble tracks that I listen to</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note that you must be a <span style=" font-weight:600;">paid subscriber</span> to listen to Last.fm radio from within Clementine.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authenticating...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Last.fm credentials were incorrect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMConfigDialog</name>
|
||||
<message>
|
||||
<source>Last,fm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play artist radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play tag radio...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Last.fm...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Recommendations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>My Neighbourhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Radio Station</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Loved Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighborhood</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Recommended Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Neighbour Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1's Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Similar Artists to %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag Radio: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid service</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid method</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authentication failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid resource specified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Operation failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid session key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid API key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Service offline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This stream is for paid subscribers only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm is currently busy, please try again in a few minutes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough members</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough fans</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not enough neighbours</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Malformed response</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LastFMStationDialog</name>
|
||||
<message>
|
||||
<source>Play Artist or Tag</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Library</name>
|
||||
<message>
|
||||
<source>Various Artists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfig</name>
|
||||
<message>
|
||||
<source>These folders will be scanned for music to make up your library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add new folder...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add directory...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryConfigDialog</name>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LibraryView</name>
|
||||
<message>
|
||||
<source>Your library is empty!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click here to add some music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<source>Clementine</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Previous track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Play</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Next track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop after this track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Entire collection</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added today</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this week</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added within three months</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Added this month</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Love</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ban</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit track information...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure Clementine...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Clementine...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Shuffle playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure library...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultiLoadingIndicator</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading audio engine</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Updating library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Getting channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading stream</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Last.fm radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OSD</name>
|
||||
<message>
|
||||
<source>Paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playlist finished</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Volume %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Playlist</name>
|
||||
<message>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Artist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Album</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Track</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Year</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genre</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BPM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bit rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sample rate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PlaylistHeader</name>
|
||||
<message>
|
||||
<source>Hide...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show section</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hide %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RadioPlaylistItem</name>
|
||||
<message>
|
||||
<source>Radio service couldn't be loaded :-(</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notifications</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Music Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last.fm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No fadeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fadeout duration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> ms</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clementine can show a message when the track changes.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Don't show notifications</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a native desktop notification</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show a popup from the system tray</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Popup duration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SomaFMService</name>
|
||||
<message>
|
||||
<source>Add to playlist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open somafm.com in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Refresh channels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrackSlider</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>0:00:00</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -8,10 +8,10 @@ EditTagDialog::EditTagDialog(QWidget* parent)
|
||||
{
|
||||
ui_.setupUi(this);
|
||||
|
||||
static const char* kHintText = "[click to edit]";
|
||||
ui_.album->SetHint(kHintText);
|
||||
ui_.artist->SetHint(kHintText);
|
||||
ui_.genre->SetHint(kHintText);
|
||||
QString hint_text(tr("[click to edit]"));
|
||||
ui_.album->SetHint(hint_text);
|
||||
ui_.artist->SetHint(hint_text);
|
||||
ui_.genre->SetHint(hint_text);
|
||||
}
|
||||
|
||||
bool EditTagDialog::SetSongs(const SongList &s) {
|
||||
@ -70,7 +70,7 @@ bool EditTagDialog::SetSongs(const SongList &s) {
|
||||
ui_.genre->setText(genre);
|
||||
ui_.year->setValue(year);
|
||||
|
||||
ui_.filename->setText("Editing " + QString::number(songs.count()) + " tracks");
|
||||
ui_.filename->setText(tr("Editing %n tracks", "", songs.count()));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -9,12 +9,12 @@ FileViewList::FileViewList(QWidget* parent)
|
||||
: QListView(parent),
|
||||
menu_(new QMenu(this))
|
||||
{
|
||||
menu_->addAction(QIcon(":media-playback-start.png"), "Add to playlist",
|
||||
menu_->addAction(QIcon(":media-playback-start.png"), tr("Add to playlist"),
|
||||
this, SLOT(AddToPlaylistSlot()));
|
||||
menu_->addSeparator();
|
||||
menu_->addAction(QIcon(":copy.png"), "Copy to library...",
|
||||
menu_->addAction(QIcon(":copy.png"), tr("Copy to library..."),
|
||||
this, SLOT(CopyToLibrarySlot()));
|
||||
menu_->addAction(QIcon(":move.png"),"Move to library...",
|
||||
menu_->addAction(QIcon(":move.png"), tr("Move to library..."),
|
||||
this, SLOT(MoveToLibrarySlot()));
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ void LastFMConfig::AuthenticationComplete(bool success) {
|
||||
ui_.username->setText(lastfm::ws::Username);
|
||||
ui_.password->clear();
|
||||
} else {
|
||||
QMessageBox::warning(this, "Authentication failed", "Your Last.fm credentials were incorrect");
|
||||
QMessageBox::warning(this, tr("Authentication failed"), tr("Your Last.fm credentials were incorrect"));
|
||||
}
|
||||
|
||||
emit ValidationComplete(success);
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
const char* LastFMService::kServiceName = "Last.fm";
|
||||
const char* LastFMService::kSettingsGroup = "Last.fm";
|
||||
const char* LastFMService::kLoadingText = "Loading Last.fm radio";
|
||||
const char* LastFMService::kAudioscrobblerClientId = "tng";
|
||||
const char* LastFMService::kApiKey = "75d20fb472be99275392aefa2760ea09";
|
||||
const char* LastFMService::kSecret = "d3072b60ae626be12be69448f5c46e70";
|
||||
@ -38,13 +37,17 @@ LastFMService::LastFMService(QObject* parent)
|
||||
|
||||
ReloadSettings();
|
||||
|
||||
play_action_ = context_menu_->addAction(QIcon(":media-playback-start.png"), "Add to playlist", this, SLOT(AddToPlaylist()));
|
||||
remove_action_ = context_menu_->addAction(QIcon(":list-remove.png"), "Remove", this, SLOT(Remove()));
|
||||
play_action_ = context_menu_->addAction(
|
||||
QIcon(":media-playback-start.png"), tr("Add to playlist"), this, SLOT(AddToPlaylist()));
|
||||
remove_action_ = context_menu_->addAction(
|
||||
QIcon(":list-remove.png"), tr("Remove"), this, SLOT(Remove()));
|
||||
context_menu_->addSeparator();
|
||||
add_artist_action_ = context_menu_->addAction(QIcon(":last.fm/icon_radio.png"), "Play artist radio...", this, SLOT(AddArtistRadio()));
|
||||
add_tag_action_ = context_menu_->addAction(QIcon(":last.fm/icon_tag.png"), "Play tag radio...", this, SLOT(AddTagRadio()));
|
||||
context_menu_->addAction(QIcon(":configure.png"), "Configure Last.fm...",
|
||||
this, SLOT(ShowConfig()));
|
||||
add_artist_action_ = context_menu_->addAction(
|
||||
QIcon(":last.fm/icon_radio.png"), tr("Play artist radio..."), this, SLOT(AddArtistRadio()));
|
||||
add_tag_action_ = context_menu_->addAction(
|
||||
QIcon(":last.fm/icon_tag.png"), tr("Play tag radio..."), this, SLOT(AddTagRadio()));
|
||||
context_menu_->addAction(
|
||||
QIcon(":configure.png"), tr("Configure Last.fm..."), this, SLOT(ShowConfig()));
|
||||
|
||||
remove_action_->setEnabled(false);
|
||||
add_artist_action_->setEnabled(false);
|
||||
@ -89,27 +92,27 @@ void LastFMService::LazyPopulate(RadioItem *item) {
|
||||
switch (item->type) {
|
||||
case RadioItem::Type_Service:
|
||||
// Normal radio types
|
||||
CreateStationItem(Type_MyRecommendations, "My Recommendations", ":last.fm/recommended_radio.png", item);
|
||||
CreateStationItem(Type_MyRadio, "My Radio Station", ":last.fm/personal_radio.png", item);
|
||||
CreateStationItem(Type_MyLoved, "My Loved Tracks", ":last.fm/loved_radio.png", item);
|
||||
CreateStationItem(Type_MyNeighbourhood, "My Neighbourhood", ":last.fm/neighbour_radio.png", item);
|
||||
CreateStationItem(Type_MyRecommendations, tr("My Recommendations"), ":last.fm/recommended_radio.png", item);
|
||||
CreateStationItem(Type_MyRadio, tr("My Radio Station"), ":last.fm/personal_radio.png", item);
|
||||
CreateStationItem(Type_MyLoved, tr("My Loved Tracks"), ":last.fm/loved_radio.png", item);
|
||||
CreateStationItem(Type_MyNeighbourhood, tr("My Neighbourhood"), ":last.fm/neighbour_radio.png", item);
|
||||
|
||||
// Types that have children
|
||||
artist_list_ = new RadioItem(this, Type_ArtistRadio, "Artist radio", item);
|
||||
artist_list_ = new RadioItem(this, Type_ArtistRadio, tr("Artist radio"), item);
|
||||
artist_list_->icon = QIcon(":last.fm/icon_radio.png");
|
||||
artist_list_->lazy_loaded = true;
|
||||
|
||||
tag_list_ = new RadioItem(this, Type_TagRadio, "Tag radio", item);
|
||||
tag_list_ = new RadioItem(this, Type_TagRadio, tr("Tag radio"), item);
|
||||
tag_list_->icon = QIcon(":last.fm/icon_tag.png");
|
||||
tag_list_->lazy_loaded = true;
|
||||
|
||||
RestoreList("artists", Type_Artist, QIcon(":last.fm/icon_radio.png"), artist_list_);
|
||||
RestoreList("tags", Type_Tag, QIcon(":last.fm/icon_tag.png"), tag_list_);
|
||||
|
||||
friends_list_ = new RadioItem(this, Type_MyFriends, "Friends", item);
|
||||
friends_list_ = new RadioItem(this, Type_MyFriends, tr("Friends"), item);
|
||||
friends_list_->icon = QIcon(":last.fm/my_friends.png");
|
||||
|
||||
neighbours_list_ = new RadioItem(this, Type_MyNeighbours, "Neighbours", item);
|
||||
neighbours_list_ = new RadioItem(this, Type_MyNeighbours, tr("Neighbours"), item);
|
||||
neighbours_list_->icon = QIcon(":last.fm/my_neighbours.png");
|
||||
|
||||
if (!IsAuthenticated())
|
||||
@ -129,11 +132,11 @@ void LastFMService::LazyPopulate(RadioItem *item) {
|
||||
|
||||
case Type_OtherUser:
|
||||
CreateStationItem(Type_OtherUserRadio, item->key, ":last.fm/recommended_radio.png", item)
|
||||
->display_text = item->key + "'s Radio Station";
|
||||
->display_text = tr("%1's Radio Station").arg(item->key);
|
||||
CreateStationItem(Type_OtherUserLoved, item->key, ":last.fm/loved_radio.png", item)
|
||||
->display_text = item->key + "'s Loved Tracks";
|
||||
->display_text = tr("%1's Loved Tracks").arg(item->key);
|
||||
CreateStationItem(Type_OtherUserNeighbourhood, item->key, ":last.fm/neighbour_radio.png", item)
|
||||
->display_text = item->key + "'s Neighbourhood";
|
||||
->display_text = tr("%1's Neighborhood").arg(item->key);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -232,16 +235,16 @@ QString LastFMService::TitleForItem(const RadioItem* item) const {
|
||||
const QString me(lastfm::ws::Username);
|
||||
|
||||
switch (item->type) {
|
||||
case Type_MyRecommendations: return me + "'s Recommended Radio";
|
||||
case Type_MyLoved: return me + "'s Loved Tracks";
|
||||
case Type_MyNeighbourhood: return me + "'s Neighbour Radio";
|
||||
case Type_MyRadio: return me + "'s Library";
|
||||
case Type_MyRecommendations: return tr("%1's Recommended Radio").arg(me);
|
||||
case Type_MyLoved: return tr("%1's Loved Tracks").arg(me);
|
||||
case Type_MyNeighbourhood: return tr("%1's Neighbour Radio").arg(me);
|
||||
case Type_MyRadio: return tr("%1's Library").arg(me);
|
||||
case Type_OtherUser:
|
||||
case Type_OtherUserRadio: return item->key + "'s Library";
|
||||
case Type_OtherUserLoved: return item->key + "'s Loved Tracks";
|
||||
case Type_OtherUserNeighbourhood: return item->key + "'s Neighbour Radio";
|
||||
case Type_Artist: return "Similar artists to " + item->key;
|
||||
case Type_Tag: return "Tag radio: " + item->key;
|
||||
case Type_OtherUserRadio: return tr("%1's Library").arg(item->key);
|
||||
case Type_OtherUserLoved: return tr("%1's Loved Tracks").arg(item->key);
|
||||
case Type_OtherUserNeighbourhood: return tr("%1's Neighbour Radio").arg(item->key);
|
||||
case Type_Artist: return tr("Similar Artists to %1").arg(item->key);
|
||||
case Type_Tag: return tr("Tag Radio: %1").arg(item->key);
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
@ -252,7 +255,7 @@ void LastFMService::StartLoading(const QUrl& url) {
|
||||
if (!IsAuthenticated())
|
||||
return;
|
||||
|
||||
emit TaskStarted(kLoadingText);
|
||||
emit TaskStarted(MultiLoadingIndicator::LoadingLastFM);
|
||||
|
||||
delete tuner_;
|
||||
|
||||
@ -284,7 +287,7 @@ void LastFMService::TunerError(lastfm::ws::Error error) {
|
||||
if (!initial_tune_)
|
||||
return;
|
||||
|
||||
emit TaskFinished(kLoadingText);
|
||||
emit TaskFinished(MultiLoadingIndicator::LoadingLastFM);
|
||||
|
||||
if (error == lastfm::ws::NotEnoughContent) {
|
||||
emit StreamFinished();
|
||||
@ -296,36 +299,36 @@ void LastFMService::TunerError(lastfm::ws::Error error) {
|
||||
|
||||
QString LastFMService::ErrorString(lastfm::ws::Error error) const {
|
||||
switch (error) {
|
||||
case lastfm::ws::InvalidService: return "Invalid service";
|
||||
case lastfm::ws::InvalidMethod: return "Invalid method";
|
||||
case lastfm::ws::AuthenticationFailed: return "Authentication failed";
|
||||
case lastfm::ws::InvalidFormat: return "Invalid format";
|
||||
case lastfm::ws::InvalidParameters: return "Invalid parameters";
|
||||
case lastfm::ws::InvalidResourceSpecified: return "Invalid resource specified";
|
||||
case lastfm::ws::OperationFailed: return "Operation failed";
|
||||
case lastfm::ws::InvalidSessionKey: return "Invalid session key";
|
||||
case lastfm::ws::InvalidApiKey: return "Invalid API key";
|
||||
case lastfm::ws::ServiceOffline: return "Service offline";
|
||||
case lastfm::ws::SubscribersOnly: return "This stream is for paid subscribers only";
|
||||
case lastfm::ws::InvalidService: return tr("Invalid service");
|
||||
case lastfm::ws::InvalidMethod: return tr("Invalid method");
|
||||
case lastfm::ws::AuthenticationFailed: return tr("Authentication failed");
|
||||
case lastfm::ws::InvalidFormat: return tr("Invalid format");
|
||||
case lastfm::ws::InvalidParameters: return tr("Invalid parameters");
|
||||
case lastfm::ws::InvalidResourceSpecified: return tr("Invalid resource specified");
|
||||
case lastfm::ws::OperationFailed: return tr("Operation failed");
|
||||
case lastfm::ws::InvalidSessionKey: return tr("Invalid session key");
|
||||
case lastfm::ws::InvalidApiKey: return tr("Invalid API key");
|
||||
case lastfm::ws::ServiceOffline: return tr("Service offline");
|
||||
case lastfm::ws::SubscribersOnly: return tr("This stream is for paid subscribers only");
|
||||
|
||||
case lastfm::ws::TryAgainLater: return "Last.fm is currently busy, please try again in a few minutes";
|
||||
case lastfm::ws::TryAgainLater: return tr("Last.fm is currently busy, please try again in a few minutes");
|
||||
|
||||
case lastfm::ws::NotEnoughContent: return "Not enough content";
|
||||
case lastfm::ws::NotEnoughMembers: return "Not enough members";
|
||||
case lastfm::ws::NotEnoughFans: return "Not enough fans";
|
||||
case lastfm::ws::NotEnoughNeighbours: return "Not enough neighbours";
|
||||
case lastfm::ws::NotEnoughContent: return tr("Not enough content");
|
||||
case lastfm::ws::NotEnoughMembers: return tr("Not enough members");
|
||||
case lastfm::ws::NotEnoughFans: return tr("Not enough fans");
|
||||
case lastfm::ws::NotEnoughNeighbours: return tr("Not enough neighbours");
|
||||
|
||||
case lastfm::ws::MalformedResponse: return "Malformed response";
|
||||
case lastfm::ws::MalformedResponse: return tr("Malformed response");
|
||||
|
||||
case lastfm::ws::UnknownError:
|
||||
default:
|
||||
return "Unknown error";
|
||||
return tr("Unknown error");
|
||||
}
|
||||
}
|
||||
|
||||
void LastFMService::TunerTrackAvailable() {
|
||||
if (initial_tune_) {
|
||||
emit TaskFinished(kLoadingText);
|
||||
emit TaskFinished(MultiLoadingIndicator::LoadingLastFM);
|
||||
|
||||
LoadNext(last_url_);
|
||||
initial_tune_ = false;
|
||||
|
@ -21,7 +21,6 @@ class LastFMService : public RadioService {
|
||||
|
||||
static const char* kServiceName;
|
||||
static const char* kSettingsGroup;
|
||||
static const char* kLoadingText;
|
||||
static const char* kAudioscrobblerClientId;
|
||||
static const char* kApiKey;
|
||||
static const char* kSecret;
|
||||
|
@ -118,7 +118,7 @@ LibraryItem* Library::CreateCompilationArtistNode(bool signal) {
|
||||
beginInsertRows(ItemToIndex(parent), parent->children.count(), parent->children.count());
|
||||
|
||||
compilation_artist_node_ =
|
||||
new LibraryItem(LibraryItem::Type_CompilationArtist, "Various Artists", parent);
|
||||
new LibraryItem(LibraryItem::Type_CompilationArtist, tr("Various Artists"), parent);
|
||||
compilation_artist_node_->sort_text = " various";
|
||||
|
||||
if (signal)
|
||||
@ -382,7 +382,7 @@ void Library::Reset() {
|
||||
|
||||
QString Library::PrettyArtist(QString artist) const {
|
||||
if (artist.isEmpty()) {
|
||||
artist = "Unknown";
|
||||
artist = tr("Unknown");
|
||||
}
|
||||
|
||||
return artist;
|
||||
@ -400,7 +400,7 @@ QString Library::SortTextForArtist(QString artist) const {
|
||||
|
||||
QString Library::PrettyAlbum(QString album) const {
|
||||
if (album.isEmpty()) {
|
||||
album = "Unknown";
|
||||
album = tr("Unknown");
|
||||
}
|
||||
|
||||
return album;
|
||||
|
@ -37,7 +37,7 @@ void LibraryConfig::Add() {
|
||||
settings.beginGroup(kSettingsGroup);
|
||||
|
||||
QString path(settings.value("last_path", QDir::homePath()).toString());
|
||||
path = QFileDialog::getExistingDirectory(this, "Add directory...", path);
|
||||
path = QFileDialog::getExistingDirectory(this, tr("Add directory..."), path);
|
||||
|
||||
if (!path.isNull()) {
|
||||
model_->AddDirectory(path);
|
||||
|
@ -106,13 +106,13 @@ void LibraryView::paintEvent(QPaintEvent* event) {
|
||||
QFontMetrics metrics(bold_font);
|
||||
|
||||
QRect title_rect(0, image_rect.bottom() + 20, rect.width(), metrics.height());
|
||||
p.drawText(title_rect, Qt::AlignHCenter, "Your library is empty!");
|
||||
p.drawText(title_rect, Qt::AlignHCenter, tr("Your library is empty!"));
|
||||
|
||||
// Draw the other text
|
||||
p.setFont(QFont());
|
||||
|
||||
QRect text_rect(0, title_rect.bottom() + 5, rect.width(), metrics.height());
|
||||
p.drawText(text_rect, Qt::AlignHCenter, "Click here to add some music");
|
||||
p.drawText(text_rect, Qt::AlignHCenter, tr("Click here to add some music"));
|
||||
}
|
||||
}
|
||||
|
||||
|
13
src/main.cpp
13
src/main.cpp
@ -10,6 +10,8 @@
|
||||
|
||||
#include <QtSingleApplication>
|
||||
#include <QtDebug>
|
||||
#include <QLibraryInfo>
|
||||
#include <QTranslator>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
QCoreApplication::setApplicationName("Clementine");
|
||||
@ -29,6 +31,17 @@ int main(int argc, char *argv[]) {
|
||||
// Couldn't send the message so start anyway
|
||||
}
|
||||
|
||||
// Translations
|
||||
QTranslator qt_translator;
|
||||
qt_translator.load("qt_" + QLocale::system().name(),
|
||||
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||
a.installTranslator(&qt_translator);
|
||||
|
||||
QTranslator clementine_translator;
|
||||
clementine_translator.load("clementine_" + QLocale::system().name(), ":/translations");
|
||||
a.installTranslator(&clementine_translator);
|
||||
|
||||
// Window
|
||||
MainWindow w;
|
||||
a.setActivationWindow(&w);
|
||||
|
||||
|
@ -63,7 +63,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
connect(track_position_timer_, SIGNAL(timeout()), SLOT(UpdateTrackPosition()));
|
||||
|
||||
// Start initialising the player
|
||||
multi_loading_indicator_->TaskStarted("Loading audio engine");
|
||||
multi_loading_indicator_->TaskStarted(MultiLoadingIndicator::LoadingAudioEngine);
|
||||
player_->Init();
|
||||
|
||||
// Models
|
||||
@ -187,21 +187,21 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
QMenu* library_menu = new QMenu(this);
|
||||
library_menu->addActions(filter_age_group->actions());
|
||||
library_menu->addSeparator();
|
||||
library_menu->addAction("Configure library...", library_config_dialog_, SLOT(show()));
|
||||
library_menu->addAction(tr("Configure library..."), library_config_dialog_, SLOT(show()));
|
||||
ui_.library_options->setMenu(library_menu);
|
||||
|
||||
// Playlist menu
|
||||
playlist_play_pause_ = playlist_menu_->addAction("Play", this, SLOT(PlaylistPlay()));
|
||||
playlist_play_pause_ = playlist_menu_->addAction(tr("Play"), this, SLOT(PlaylistPlay()));
|
||||
playlist_menu_->addAction(ui_.action_stop);
|
||||
playlist_stop_after_ = playlist_menu_->addAction(QIcon(":media-playback-stop.png"), "Stop after this track", this, SLOT(PlaylistStopAfter()));
|
||||
playlist_stop_after_ = playlist_menu_->addAction(QIcon(":media-playback-stop.png"), tr("Stop after this track"), this, SLOT(PlaylistStopAfter()));
|
||||
playlist_menu_->addAction(ui_.action_edit_track);
|
||||
playlist_menu_->addSeparator();
|
||||
playlist_menu_->addAction(ui_.action_clear_playlist);
|
||||
playlist_menu_->addAction(ui_.action_shuffle);
|
||||
|
||||
// Radio connections
|
||||
connect(radio_model_, SIGNAL(TaskStarted(QString)), multi_loading_indicator_, SLOT(TaskStarted(QString)));
|
||||
connect(radio_model_, SIGNAL(TaskFinished(QString)), multi_loading_indicator_, SLOT(TaskFinished(QString)));
|
||||
connect(radio_model_, SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType)), multi_loading_indicator_, SLOT(TaskStarted(MultiLoadingIndicator::TaskType)));
|
||||
connect(radio_model_, SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType)), multi_loading_indicator_, SLOT(TaskFinished(MultiLoadingIndicator::TaskType)));
|
||||
connect(radio_model_, SIGNAL(StreamError(QString)), SLOT(ReportError(QString)));
|
||||
connect(radio_model_, SIGNAL(StreamFinished()), player_, SLOT(NextItem()));
|
||||
connect(radio_model_, SIGNAL(StreamReady(QUrl,QUrl)), player_, SLOT(StreamReady(QUrl,QUrl)));
|
||||
@ -296,7 +296,7 @@ void MainWindow::MediaStopped() {
|
||||
ui_.action_stop->setEnabled(false);
|
||||
ui_.action_stop_after_this_track->setEnabled(false);
|
||||
ui_.action_play_pause->setIcon(QIcon(":media-playback-start.png"));
|
||||
ui_.action_play_pause->setText("Play");
|
||||
ui_.action_play_pause->setText(tr("Play"));
|
||||
|
||||
ui_.action_play_pause->setEnabled(true);
|
||||
|
||||
@ -312,7 +312,7 @@ void MainWindow::MediaPaused() {
|
||||
ui_.action_stop->setEnabled(true);
|
||||
ui_.action_stop_after_this_track->setEnabled(true);
|
||||
ui_.action_play_pause->setIcon(QIcon(":media-playback-start.png"));
|
||||
ui_.action_play_pause->setText("Play");
|
||||
ui_.action_play_pause->setText(tr("Play"));
|
||||
|
||||
ui_.action_play_pause->setEnabled(true);
|
||||
|
||||
@ -323,7 +323,7 @@ void MainWindow::MediaPlaying() {
|
||||
ui_.action_stop->setEnabled(true);
|
||||
ui_.action_stop_after_this_track->setEnabled(true);
|
||||
ui_.action_play_pause->setIcon(QIcon(":media-playback-pause.png"));
|
||||
ui_.action_play_pause->setText("Pause");
|
||||
ui_.action_play_pause->setText(tr("Pause"));
|
||||
|
||||
ui_.action_play_pause->setEnabled(
|
||||
! (player_->GetCurrentItemOptions() & PlaylistItem::PauseDisabled));
|
||||
@ -478,10 +478,10 @@ void MainWindow::PlaylistRightClick(const QPoint& global_pos, const QModelIndex&
|
||||
playlist_menu_index_ = index;
|
||||
|
||||
if (playlist_->current_index() == index.row() && player_->GetState() == Engine::Playing) {
|
||||
playlist_play_pause_->setText("Pause");
|
||||
playlist_play_pause_->setText(tr("Pause"));
|
||||
playlist_play_pause_->setIcon(QIcon(":media-playback-pause.png"));
|
||||
} else {
|
||||
playlist_play_pause_->setText("Play");
|
||||
playlist_play_pause_->setText(tr("Play"));
|
||||
playlist_play_pause_->setIcon(QIcon(":media-playback-start.png"));
|
||||
}
|
||||
|
||||
@ -547,13 +547,13 @@ void MainWindow::EditTracks() {
|
||||
}
|
||||
|
||||
void MainWindow::LibraryScanStarted() {
|
||||
multi_loading_indicator_->TaskStarted("Updating library");
|
||||
multi_loading_indicator_->TaskStarted(MultiLoadingIndicator::UpdatingLibrary);
|
||||
}
|
||||
|
||||
void MainWindow::LibraryScanFinished() {
|
||||
multi_loading_indicator_->TaskFinished("Updating library");
|
||||
multi_loading_indicator_->TaskFinished(MultiLoadingIndicator::UpdatingLibrary);
|
||||
}
|
||||
|
||||
void MainWindow::PlayerInitFinished() {
|
||||
multi_loading_indicator_->TaskFinished("Loading audio engine");
|
||||
multi_loading_indicator_->TaskFinished(MultiLoadingIndicator::LoadingAudioEngine);
|
||||
}
|
||||
|
@ -6,18 +6,18 @@ MultiLoadingIndicator::MultiLoadingIndicator(QWidget *parent)
|
||||
ui_.setupUi(this);
|
||||
}
|
||||
|
||||
void MultiLoadingIndicator::TaskStarted(const QString &name) {
|
||||
if (tasks_.contains(name))
|
||||
void MultiLoadingIndicator::TaskStarted(TaskType type) {
|
||||
if (tasks_.contains(type))
|
||||
return;
|
||||
|
||||
tasks_ << name;
|
||||
tasks_ << type;
|
||||
|
||||
UpdateText();
|
||||
show();
|
||||
}
|
||||
|
||||
void MultiLoadingIndicator::TaskFinished(const QString &name) {
|
||||
tasks_.removeAll(name);
|
||||
void MultiLoadingIndicator::TaskFinished(TaskType type) {
|
||||
tasks_.removeAll(type);
|
||||
|
||||
UpdateText();
|
||||
if (tasks_.count() == 0)
|
||||
@ -26,10 +26,8 @@ void MultiLoadingIndicator::TaskFinished(const QString &name) {
|
||||
|
||||
void MultiLoadingIndicator::UpdateText() {
|
||||
QStringList strings;
|
||||
foreach (QString task, tasks_) {
|
||||
if (task.isEmpty())
|
||||
continue;
|
||||
|
||||
foreach (TaskType type, tasks_) {
|
||||
QString task(TaskTypeToString(type));
|
||||
task[0] = task[0].toLower();
|
||||
strings << task;
|
||||
}
|
||||
@ -41,3 +39,15 @@ void MultiLoadingIndicator::UpdateText() {
|
||||
|
||||
ui_.text->setText(text + "...");
|
||||
}
|
||||
|
||||
QString MultiLoadingIndicator::TaskTypeToString(TaskType type) {
|
||||
switch (type) {
|
||||
case LoadingAudioEngine: return tr("Loading audio engine");
|
||||
case UpdatingLibrary: return tr("Updating library");
|
||||
case GettingChannels: return tr("Getting channels");
|
||||
case LoadingStream: return tr("Loading stream");
|
||||
case LoadingLastFM: return tr("Loading Last.fm radio");
|
||||
|
||||
default: return QString::null;
|
||||
}
|
||||
}
|
||||
|
@ -11,17 +11,26 @@ class MultiLoadingIndicator : public QWidget {
|
||||
public:
|
||||
MultiLoadingIndicator(QWidget* parent = 0);
|
||||
|
||||
enum TaskType {
|
||||
LoadingAudioEngine,
|
||||
UpdatingLibrary,
|
||||
GettingChannels,
|
||||
LoadingStream,
|
||||
LoadingLastFM,
|
||||
};
|
||||
|
||||
public slots:
|
||||
void TaskStarted(const QString& name);
|
||||
void TaskFinished(const QString& name);
|
||||
void TaskStarted(MultiLoadingIndicator::TaskType type);
|
||||
void TaskFinished(MultiLoadingIndicator::TaskType type);
|
||||
|
||||
private:
|
||||
void UpdateText();
|
||||
static QString TaskTypeToString(TaskType type);
|
||||
|
||||
private:
|
||||
Ui::MultiLoadingIndicator ui_;
|
||||
|
||||
QStringList tasks_;
|
||||
QList<TaskType> tasks_;
|
||||
};
|
||||
|
||||
#endif // MULTILOADINGINDICATOR_H
|
||||
|
@ -43,15 +43,15 @@ void OSD::SongChanged(const Song &song) {
|
||||
}
|
||||
|
||||
void OSD::Paused() {
|
||||
ShowMessage(QCoreApplication::applicationName(), "Paused");
|
||||
ShowMessage(QCoreApplication::applicationName(), tr("Paused"));
|
||||
}
|
||||
|
||||
void OSD::Stopped() {
|
||||
ShowMessage(QCoreApplication::applicationName(), "Playlist finished");
|
||||
ShowMessage(QCoreApplication::applicationName(), tr("Playlist finished"));
|
||||
}
|
||||
|
||||
void OSD::VolumeChanged(int value) {
|
||||
ShowMessage(QCoreApplication::applicationName(), QString("Volume %1%").arg(value));
|
||||
ShowMessage(QCoreApplication::applicationName(), tr("Volume %1%").arg(value));
|
||||
}
|
||||
|
||||
void OSD::ShowMessage(const QString& summary,
|
||||
|
@ -36,20 +36,20 @@ QVariant Playlist::headerData(int section, Qt::Orientation, int role) const {
|
||||
return QVariant();
|
||||
|
||||
switch (section) {
|
||||
case Column_Title: return "Title";
|
||||
case Column_Artist: return "Artist";
|
||||
case Column_Album: return "Album";
|
||||
case Column_Length: return "Length";
|
||||
case Column_Track: return "Track";
|
||||
case Column_Disc: return "Disc";
|
||||
case Column_Year: return "Year";
|
||||
case Column_Genre: return "Genre";
|
||||
case Column_Title: return tr("Title");
|
||||
case Column_Artist: return tr("Artist");
|
||||
case Column_Album: return tr("Album");
|
||||
case Column_Length: return tr("Length");
|
||||
case Column_Track: return tr("Track");
|
||||
case Column_Disc: return tr("Disc");
|
||||
case Column_Year: return tr("Year");
|
||||
case Column_Genre: return tr("Genre");
|
||||
|
||||
case Column_BPM: return "BPM";
|
||||
case Column_Bitrate: return "Bit rate";
|
||||
case Column_Samplerate: return "Sample rate";
|
||||
case Column_Filename: return "File name";
|
||||
case Column_Filesize: return "File size";
|
||||
case Column_BPM: return tr("BPM");
|
||||
case Column_Bitrate: return tr("Bit rate");
|
||||
case Column_Samplerate: return tr("Sample rate");
|
||||
case Column_Filename: return tr("File name");
|
||||
case Column_Filesize: return tr("File size");
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
|
@ -11,8 +11,8 @@ PlaylistHeader::PlaylistHeader(Qt::Orientation orientation, QWidget* parent)
|
||||
show_menu_(new QMenu(this)),
|
||||
show_mapper_(new QSignalMapper(this))
|
||||
{
|
||||
hide_action_ = menu_->addAction("Hide...", this, SLOT(HideCurrent()));
|
||||
QAction* show_action = menu_->addAction("Show section");
|
||||
hide_action_ = menu_->addAction(tr("Hide..."), this, SLOT(HideCurrent()));
|
||||
QAction* show_action = menu_->addAction(tr("Show section"));
|
||||
show_action->setMenu(show_menu_);
|
||||
|
||||
connect(show_mapper_, SIGNAL(mapped(int)), SLOT(ToggleVisible(int)));
|
||||
@ -28,7 +28,7 @@ void PlaylistHeader::contextMenuEvent(QContextMenuEvent* e) {
|
||||
hide_action_->setVisible(true);
|
||||
|
||||
QString title(model()->headerData(menu_section_, Qt::Horizontal).toString());
|
||||
hide_action_->setText("Hide " + title);
|
||||
hide_action_->setText(tr("Hide %1").arg(title));
|
||||
}
|
||||
|
||||
show_menu_->clear();
|
||||
|
@ -24,8 +24,8 @@ void RadioModel::AddService(RadioService *service) {
|
||||
sServices[service->name()] = service;
|
||||
service->CreateRootItem(root_);
|
||||
|
||||
connect(service, SIGNAL(TaskStarted(QString)), SIGNAL(TaskStarted(QString)));
|
||||
connect(service, SIGNAL(TaskFinished(QString)), SIGNAL(TaskFinished(QString)));
|
||||
connect(service, SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType)), SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType)));
|
||||
connect(service, SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType)), SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType)));
|
||||
connect(service, SIGNAL(StreamReady(QUrl,QUrl)), SIGNAL(StreamReady(QUrl,QUrl)));
|
||||
connect(service, SIGNAL(StreamFinished()), SIGNAL(StreamFinished()));
|
||||
connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString)));
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "radioitem.h"
|
||||
#include "simpletreemodel.h"
|
||||
#include "multiloadingindicator.h"
|
||||
|
||||
class RadioService;
|
||||
class LastFMService;
|
||||
@ -36,8 +37,8 @@ class RadioModel : public SimpleTreeModel<RadioItem> {
|
||||
void ReloadSettings();
|
||||
|
||||
signals:
|
||||
void TaskStarted(const QString&);
|
||||
void TaskFinished(const QString&);
|
||||
void TaskStarted(MultiLoadingIndicator::TaskType);
|
||||
void TaskFinished(MultiLoadingIndicator::TaskType);
|
||||
void StreamReady(const QUrl& original_url, const QUrl& media_url);
|
||||
void StreamFinished();
|
||||
void StreamError(const QString& message);
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "radiomodel.h"
|
||||
|
||||
#include <QSettings>
|
||||
#include <QApplication>
|
||||
|
||||
RadioPlaylistItem::RadioPlaylistItem()
|
||||
: service_(NULL)
|
||||
@ -37,7 +38,7 @@ void RadioPlaylistItem::Restore(const QSettings& settings) {
|
||||
|
||||
void RadioPlaylistItem::InitMetadata() {
|
||||
if (!service_)
|
||||
metadata_.set_title("Radio service couldn't be loaded :-(");
|
||||
metadata_.set_title(QApplication::translate("RadioPlaylistItem", "Radio service couldn't be loaded :-("));
|
||||
else if (!title_.isEmpty())
|
||||
metadata_.set_title(title_);
|
||||
else
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <QUrl>
|
||||
|
||||
#include "radioitem.h"
|
||||
#include "multiloadingindicator.h"
|
||||
|
||||
class Song;
|
||||
|
||||
@ -37,8 +38,8 @@ class RadioService : public QObject {
|
||||
virtual void ReloadSettings() {}
|
||||
|
||||
signals:
|
||||
void TaskStarted(const QString& name);
|
||||
void TaskFinished(const QString& name);
|
||||
void TaskStarted(MultiLoadingIndicator::TaskType);
|
||||
void TaskFinished(MultiLoadingIndicator::TaskType);
|
||||
|
||||
void StreamReady(const QUrl& original_url, const QUrl& media_url);
|
||||
void StreamFinished();
|
||||
|
@ -12,8 +12,6 @@
|
||||
#include <QtDebug>
|
||||
|
||||
const char* SomaFMService::kServiceName = "SomaFM";
|
||||
const char* SomaFMService::kLoadingChannelsText = "Getting channels";
|
||||
const char* SomaFMService::kLoadingStreamText = "Loading stream";
|
||||
const char* SomaFMService::kChannelListUrl = "http://somafm.com/channels.xml";
|
||||
const char* SomaFMService::kHomepage = "http://somafm.com";
|
||||
|
||||
@ -23,10 +21,10 @@ SomaFMService::SomaFMService(QObject* parent)
|
||||
context_menu_(new QMenu),
|
||||
network_(new QNetworkAccessManager(this))
|
||||
{
|
||||
context_menu_->addAction(QIcon(":media-playback-start.png"), "Add to playlist", this, SLOT(AddToPlaylist()));
|
||||
context_menu_->addAction(QIcon(":media-playback-start.png"), tr("Add to playlist"), this, SLOT(AddToPlaylist()));
|
||||
context_menu_->addSeparator();
|
||||
context_menu_->addAction(QIcon(":web.png"), "Open somafm.com in browser", this, SLOT(Homepage()));
|
||||
context_menu_->addAction(QIcon(":refresh.png"), "Refresh channels", this, SLOT(RefreshChannels()));
|
||||
context_menu_->addAction(QIcon(":web.png"), tr("Open somafm.com in browser"), this, SLOT(Homepage()));
|
||||
context_menu_->addAction(QIcon(":refresh.png"), tr("Refresh channels"), this, SLOT(RefreshChannels()));
|
||||
}
|
||||
|
||||
SomaFMService::~SomaFMService() {
|
||||
@ -66,12 +64,12 @@ void SomaFMService::StartLoading(const QUrl& url) {
|
||||
QNetworkReply* reply = network_->get(request);
|
||||
connect(reply, SIGNAL(finished()), SLOT(LoadPlaylistFinished()));
|
||||
|
||||
emit TaskStarted(kLoadingStreamText);
|
||||
emit TaskStarted(MultiLoadingIndicator::LoadingStream);
|
||||
}
|
||||
|
||||
void SomaFMService::LoadPlaylistFinished() {
|
||||
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
|
||||
emit TaskFinished(kLoadingStreamText);
|
||||
emit TaskFinished(MultiLoadingIndicator::LoadingStream);
|
||||
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
// TODO: Error handling
|
||||
@ -99,12 +97,12 @@ void SomaFMService::RefreshChannels() {
|
||||
QNetworkReply* reply = network_->get(request);
|
||||
connect(reply, SIGNAL(finished()), SLOT(RefreshChannelsFinished()));
|
||||
|
||||
emit TaskStarted(kLoadingChannelsText);
|
||||
emit TaskStarted(MultiLoadingIndicator::GettingChannels);
|
||||
}
|
||||
|
||||
void SomaFMService::RefreshChannelsFinished() {
|
||||
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
|
||||
emit TaskFinished(kLoadingChannelsText);
|
||||
emit TaskFinished(MultiLoadingIndicator::GettingChannels);
|
||||
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
// TODO: Error handling
|
||||
|
@ -20,8 +20,6 @@ class SomaFMService : public RadioService {
|
||||
};
|
||||
|
||||
static const char* kServiceName;
|
||||
static const char* kLoadingChannelsText;
|
||||
static const char* kLoadingStreamText;
|
||||
static const char* kChannelListUrl;
|
||||
static const char* kHomepage;
|
||||
|
||||
|
20
src/src.pro
20
src/src.pro
@ -116,18 +116,22 @@ FORMS += mainwindow.ui \
|
||||
libraryconfigdialog.ui \
|
||||
lastfmconfigdialog.ui \
|
||||
about.ui
|
||||
RESOURCES += ../data/data.qrc
|
||||
RESOURCES += ../data/data.qrc \
|
||||
translations.qrc
|
||||
OTHER_FILES += ../data/schema.sql \
|
||||
../data/mainwindow.css
|
||||
RC_FILE += ../dist/windres.rc
|
||||
TRANSLATIONS = clementine_ru.ts \
|
||||
clementine_es.ts \
|
||||
clementine_el.ts
|
||||
|
||||
# Xine on unix, phonon on windows
|
||||
win32|fedora-win32-cross {
|
||||
win32|fedora-win32-cross {
|
||||
QT += phonon
|
||||
SOURCES += phononengine.cpp
|
||||
HEADERS += phononengine.h
|
||||
}
|
||||
!win32:!fedora-win32-cross {
|
||||
!win32:!fedora-win32-cross {
|
||||
SOURCES += xine-engine.cpp \
|
||||
xine-scope.c
|
||||
HEADERS += xine-engine.h \
|
||||
@ -161,11 +165,9 @@ win32|fedora-win32-cross:LIBS += -ltag \
|
||||
-lpthreadGC2
|
||||
|
||||
# OSD
|
||||
unix:!macx:!fedora-win32-cross {
|
||||
nolibnotify {
|
||||
SOURCES += osd_win.cpp
|
||||
}
|
||||
!nolibnotify {
|
||||
unix:!macx:!fedora-win32-cross {
|
||||
nolibnotify:SOURCES += osd_win.cpp
|
||||
!nolibnotify {
|
||||
SOURCES += osd_x11.cpp
|
||||
QMAKE_CXXFLAGS += $$system(pkg-config --cflags libnotify)
|
||||
LIBS += $$system(pkg-config --libs libnotify)
|
||||
@ -201,8 +203,8 @@ win32|fedora-win32-cross:SOURCES += ../3rdparty/qtsingleapplication/qtlockedfile
|
||||
|
||||
# Hide the console on windows
|
||||
win32|fedora-win32-cross:LIBS += -Wl,-subsystem,windows
|
||||
#CONFIG += console
|
||||
|
||||
# CONFIG += console
|
||||
# Installs
|
||||
target.path = $${install_prefix}/bin/
|
||||
desktop.path = dummy
|
||||
|
7
src/translations.qrc
Normal file
7
src/translations.qrc
Normal file
@ -0,0 +1,7 @@
|
||||
<RCC>
|
||||
<qresource prefix="/translations">
|
||||
<file>clementine_el.qm</file>
|
||||
<file>clementine_es.qm</file>
|
||||
<file>clementine_ru.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
Loading…
x
Reference in New Issue
Block a user