nuvola-player-builders team mailing list archive
-
nuvola-player-builders team
-
Mailing list archive
-
Message #00000
[Merge] lp:nuvola-player/releases-1.x into lp:nuvola-player
Jiří Janoušek has proposed merging lp:nuvola-player/releases-1.x into lp:nuvola-player.
Requested reviews:
Jiří Janoušek (fenryxo)
For more details, see:
https://code.launchpad.net/~fenryxo/nuvola-player/releases-1.x/+merge/110546
--
https://code.launchpad.net/~fenryxo/nuvola-player/releases-1.x/+merge/110546
Your team Nuvola Player Builders is subscribed to branch lp:nuvola-player.
=== modified file 'CHANGELOG'
--- CHANGELOG 2012-02-18 10:58:29 +0000
+++ CHANGELOG 2012-06-15 15:20:27 +0000
@@ -5,38 +5,125 @@
tray icon and notifications). It also remembers last session
and the current view (album, genre list, ...).
-
-=== 1.0.2 - February 13, 2012 ===
-
-Bug fix release. Changes since 1.0.1:
-
- * Updated link to development changelog
- * Track GNOME/XFCE session to quit properly. Fixes lp:909430
- * Cache is no longer flushed to disk, only dumped.
- * Executable rsvg-convert is used instead of rsvg to generate PNG images
- from SVG source images
- * Fixed Google Music sandbox pattern. Fixes lp:928535
- * Updated field "maintainer_link" of services' metadata.
- * Updated translations.
-
-=== 1.0.1 - January 4, 2012 ==
-
-Bug fix release with patches from Debian Mentors review process. Changes since 1.0.0:
-
- * Removed build flags --with-unity-quick-list, --with-browser-cache
- and --deprecated-ppa.
- * PNG files are generated from source SVG files. New build dependency: rsvg
- * Removed deprecated Encoding field in desktop file
- * Clean-up and fixed typo
- * VAPI for Gee shipped with Nuvola Player is used only for libgee < 0.6
- * Unsupported MPRIS properties are not exported.
- * Crash dialog has option to disable crash dialog.
- * Updated translations.
-
-
-=== 1.0 - December 23, 2011 ===
-
-Feature release. Changes since 0.3.2:
+<<<<<<< TREE
+
+=== 1.0.2 - February 13, 2012 ===
+
+Bug fix release. Changes since 1.0.1:
+
+ * Updated link to development changelog
+ * Track GNOME/XFCE session to quit properly. Fixes lp:909430
+ * Cache is no longer flushed to disk, only dumped.
+ * Executable rsvg-convert is used instead of rsvg to generate PNG images
+ from SVG source images
+ * Fixed Google Music sandbox pattern. Fixes lp:928535
+ * Updated field "maintainer_link" of services' metadata.
+ * Updated translations.
+
+=== 1.0.1 - January 4, 2012 ==
+
+Bug fix release with patches from Debian Mentors review process. Changes since 1.0.0:
+
+ * Removed build flags --with-unity-quick-list, --with-browser-cache
+ and --deprecated-ppa.
+ * PNG files are generated from source SVG files. New build dependency: rsvg
+ * Removed deprecated Encoding field in desktop file
+ * Clean-up and fixed typo
+ * VAPI for Gee shipped with Nuvola Player is used only for libgee < 0.6
+ * Unsupported MPRIS properties are not exported.
+ * Crash dialog has option to disable crash dialog.
+ * Updated translations.
+
+
+=== 1.0 - December 23, 2011 ===
+
+Feature release. Changes since 0.3.2:
+=======
+=== 1.0.5 - April 4, 2012 ===
+
+Nuvola Player 1.0.5 contains modified workaround for bug[1][2] present
+in the latest stable WebKitGTK release (1.8) that causes some Flash-dependent
+pages are not rendered properly, do not update and are unresponsive to user
+actions. Unfortunately, this bug affects also Google Play, Grooveshark
+and Pandora Radio and makes them unusable in Nuvola Player.
+
+The latest stable Nuvola Player release 1.0.5 contains simple workaround
+that sets window size to magic values that worked during my tests. However,
+these values may be dependent on user settings, e.g. GTK theme, window manager,
+font sizes, whatever. If the default workaround does not work for you, you can
+try to set your own magic values:
+
+1) Quit Nuvola Player (hiding the window is not enough).
+2) Open or create file .config/nuvolaplayer/ui_state.conf
+3) Append following lines:
+bug958154_window_w = 1010
+bug958154_window_h = 534
+5) Replace “1010” with your magic window width and “534” with your magic window
+ height.
+4) Save the file
+5) Launch Nuvola Player
+6) If the values don’t work, go to 1.
+
+If you are affected by that bug, I encourage you to add some “heat”
+to the Ubuntu bug[2] or upstream bug[1].
+
+[1] https://bugs.webkit.org/show_bug.cgi?id=81450
+[2] https://bugs.launchpad.net/webkit/+bug/973719
+
+=== 1.0.4 - March 31, 2012 ===
+
+Bug fix release. Changes since 1.0.3:
+
+ * Fall back to classic key bindings manager if GNOME Settings Daemon
+ is present, but doesn't handle multimedia keys. LP:940504
+ * Added workaround for WebKitGTK 1.8 rendering bug. LP:958154
+ * Added integration of Rdio by Stefan Lohmaier.
+ * Added integration of Pandora Radio by Adam Wolfe Gordon.
+ * Updated translations.
+
+=== 1.0.3 - March 17, 2012 ===
+
+Bug fix release. Changes since 1.0.2:
+
+ * Fixed Menu and MenuItem conflicts in namespace GLib/Gtk (GNOME 3.3).
+ Patch by Vincent Untz. LP:940456
+ * Compatibility with Valac 0.15. Patch by Vincent Untz. LP:940456
+ * Added option to disable usage of space key in keybindings. LP:934182.
+ * Google Music is now a part of Google Play. Fixes LP:948760
+ * Updated translations.
+
+=== 1.0.2 - February 13, 2012 ===
+
+Bug fix release. Changes since 1.0.1:
+
+ * Updated link to development changelog
+ * Track GNOME/XFCE session to quit properly. Fixes lp:909430
+ * Cache is no longer flushed to disk, only dumped.
+ * Executable rsvg-convert is used instead of rsvg to generate PNG images
+ from SVG source images
+ * Fixed Google Music sandbox pattern. Fixes lp:928535
+ * Updated field "maintainer_link" of services' metadata.
+ * Updated translations.
+
+=== 1.0.1 - January 4, 2012 ==
+
+Bug fix release with patches from Debian Mentors review process. Changes since 1.0.0:
+
+ * Removed build flags --with-unity-quick-list, --with-browser-cache
+ and --deprecated-ppa.
+ * PNG files are generated from source SVG files. New build dependency: rsvg
+ * Removed deprecated Encoding field in desktop file
+ * Clean-up and fixed typo
+ * VAPI for Gee shipped with Nuvola Player is used only for libgee < 0.6
+ * Unsupported MPRIS properties are not exported.
+ * Crash dialog has option to disable crash dialog.
+ * Updated translations.
+
+
+=== 1.0 - December 23, 2011 ===
+
+Feature release. Changes since 0.3.2:
+>>>>>>> MERGE-SOURCE
* The core has been rewritten to supports multiple services and all service-specific data
are stored in separate files outside the core of the application and are loaded
=== modified file 'README'
--- README 2012-03-26 20:58:21 +0000
+++ README 2012-06-15 15:20:27 +0000
@@ -46,6 +46,7 @@
libglib (>= 2.26), libgee (>= 0.5), libsoup (>= 2.30),
libgtk (>= 2.20), libwebkitgtk (>= 1.2), python (>= 2.6), valac (>= 0.12),
+<<<<<<< TREE
libnotify (>= 0.4), libx11, libunique (>= 0.9), intltool, librsvg-bin,
json-glib-1.0 (>= 0.7)
@@ -59,6 +60,24 @@
python-scour
enables optimization of SVG icon (reduced size)
+=======
+ libnotify (>= 0.4), libx11, libunique (>= 0.9), intltool, librsvg-bin
+
+
+There are some optional dependencies:
+ libsoup >= 2.34
+ enables browser cache for remote objects (images, etc.)
+
+ libunity, libdbusmenu-glib
+ enables integration with Unity Quick List
+
+ libindicate, libdbusmenu-glib
+ needed for integration with Maverick version of Ubuntu Sound menu,
+ see --with-indicator-sound-maverick build flag
+
+ python-scour
+ enables optimization of SVG icon (reduced size)
+>>>>>>> MERGE-SOURCE
3) Clean the build environment
@@ -71,6 +90,13 @@
distribution should already contain standalone version of Waf. To trigger configure
process, run command `./waf configure`. There are a few configuration options:
+<<<<<<< TREE
+=======
+ --with-indicator-sound-maverick
+ Include support for Ubuntu Maverick version of Sound indicator
+ Requires: libindicate, libdbusmenu-glib
+
+>>>>>>> MERGE-SOURCE
--without-glib-dbus
Allows building with GLib < 2.26, but without following fratures:
* multimedia keys
=== modified file 'README.Fedora'
--- README.Fedora 2012-02-12 14:40:38 +0000
+++ README.Fedora 2012-06-15 15:20:27 +0000
@@ -11,7 +11,11 @@
# yum install gcc glib2-devel libgee-devel libsoup-devel \
gtk2-devel webkitgtk-devel python vala libnotify-devel \
+<<<<<<< TREE
libX11-devel unique-devel intltool librsvg2 libjson-glib-devel
+=======
+ libX11-devel unique-devel intltool librsvg2
+>>>>>>> MERGE-SOURCE
2.) Compilation
=== modified file 'README.Ubuntu'
--- README.Ubuntu 2012-03-26 20:58:21 +0000
+++ README.Ubuntu 2012-06-15 15:20:27 +0000
@@ -31,7 +31,11 @@
# apt-get install libglib2.0-dev libgee-dev libsoup2.4-dev \
libgtk2.0-dev libwebkitgtk-dev python valac libnotify-dev \
libx11-dev libunique-dev libdbusmenu-glib-dev libunity-dev \
+<<<<<<< TREE
intltool librsvg2-bin python-scour libjson-glib-dev
+=======
+ intltool librsvg2-bin python-scour
+>>>>>>> MERGE-SOURCE
2.) Compilation
@@ -57,7 +61,11 @@
# apt-get install libglib2.0-dev libgee-dev libsoup2.4-dev \
libgtk2.0-dev libwebkitgtk-dev python valac libnotify-dev \
libx11-dev libunique-dev libdbusmenu-glib-dev libunity-dev \
+<<<<<<< TREE
intltool librsvg2-bin libjson-glib-dev
+=======
+ intltool librsvg2-bin
+>>>>>>> MERGE-SOURCE
2.) Compilation
@@ -86,7 +94,11 @@
# apt-get install libglib2.0-dev libgee-dev libsoup2.4-dev \
libgtk2.0-dev libwebkit-dev python valac libnotify-dev \
libx11-dev libunique-dev libdbusmenu-glib-dev libindicate-dev \
+<<<<<<< TREE
intltool librsvg2-bin libjson-glib-dev
+=======
+ intltool librsvg2-bin
+>>>>>>> MERGE-SOURCE
2.) Compilation
@@ -113,7 +125,11 @@
# apt-get update
# apt-get install libglib2.0-dev libgee-dev libsoup2.4-dev \
libgtk2.0-dev libwebkit-dev python valac libnotify-dev \
+<<<<<<< TREE
libx11-dev libunique-dev intltool librsvg2-bin libjson-glib-dev
+=======
+ libx11-dev libunique-dev intltool librsvg2-bin
+>>>>>>> MERGE-SOURCE
2.) Compilation
=== modified file 'data/nuvolaplayer/ui/actions_mode_both.xml'
=== modified file 'data/nuvolaplayer/ui/actions_mode_menubar.xml'
=== modified file 'data/nuvolaplayer/ui/actions_mode_toolbar.xml'
=== modified file 'libfenryxo/app.vala'
=== modified file 'libfenryxo/config.vala'
=== modified file 'libfenryxo/connection.vala'
--- libfenryxo/connection.vala 2012-05-04 23:30:07 +0000
+++ libfenryxo/connection.vala 2012-06-15 15:20:27 +0000
@@ -22,6 +22,7 @@
using Soup;
using Fenryxo.Path;
using Fenryxo.Logger;
+<<<<<<< TREE
using Fenryxo.System;
@@ -30,6 +31,9 @@
private extern void soup_session_add_feature_by_type(Soup.Session session, GLib.Type feature_type);
//~ private extern void soup_session_remove_feature(Soup.Session session, Soup.SessionFeature feature);
private extern void soup_session_remove_feature_by_type(Soup.Session session, GLib.Type feature_type);
+=======
+using Fenryxo.System;
+>>>>>>> MERGE-SOURCE
namespace Fenryxo{
@@ -204,7 +208,15 @@
weak SessionFeature? feature = this.session.get_feature(typeof(CookieJarText));
if(feature != null) this.session.remove_feature(feature);
+<<<<<<< TREE
soup_session_add_feature(session, new CookieJarText(file.get_path(), false));
+=======
+ #if VALAC_0_15
+ session.add_feature(new CookieJarText(file.get_path(), false));
+ #else
+ session.add_feature = new CookieJarText(file.get_path(), false);
+ #endif
+>>>>>>> MERGE-SOURCE
}
#if LIBSOUP_CACHE
@@ -246,7 +258,15 @@
}
if(add_cache){
+<<<<<<< TREE
soup_session_add_feature(session, (owned) cache);
+=======
+ #if VALAC_0_15
+ session.add_feature((owned) cache);
+ #else
+ session.add_feature = (owned) cache;
+ #endif
+>>>>>>> MERGE-SOURCE
}
}
=== modified file 'libfenryxo/system.vala'
=== modified file 'man/nuvolaplayer.1.xml'
--- man/nuvolaplayer.1.xml 2011-12-18 13:36:09 +0000
+++ man/nuvolaplayer.1.xml 2012-06-15 15:20:27 +0000
@@ -155,8 +155,7 @@
<command>&dhpackage;</command> command.</para>
<para><emphasis>Nuvola Player</emphasis> runs web interface of cloud music service
in its own window and provides integration with a Linux desktop (system tray,
- Ubuntu sound menu, dock menu and notifications). Currently supported services are
- Google Music, Grooveshark, Hype Machine and 8tracks.
+ Ubuntu sound menu, dock menu and notifications).
</para>
</refsect1>
<refsect1 id="options">
=== modified file 'src/core/application.vala'
--- src/core/application.vala 2012-03-26 20:15:15 +0000
+++ src/core/application.vala 2012-06-15 15:20:27 +0000
@@ -116,11 +116,16 @@
public override void run(){
this.check_crashed();
this.init_connection();
+<<<<<<< TREE
this.set_up_page_cache();
ui_actions = new UIActions(this);
view = new MainView(this);
this.player = new Player(this, this.storage);
+=======
+ WebKit.set_cache_model(WebKit.CacheModel.DOCUMENT_VIEWER);
+ this.frame = new MainView(this);
+>>>>>>> MERGE-SOURCE
this.main_window = new MainWindow(this);
this.main_window.close_action.connect(this.on_close_action);
/* Show page title as window title */
=== modified file 'src/core/service.vala'
--- src/core/service.vala 2012-03-24 22:35:45 +0000
+++ src/core/service.vala 2012-06-15 15:20:27 +0000
@@ -272,6 +272,7 @@
public static const string CONFIG_PREFIX = "service";
[Description(nick = "service identifier", blurb = "Unique identitier of service")]
+<<<<<<< TREE
public string id{
get;
private set;
@@ -366,7 +367,34 @@
/**
* Loads new service integration
+=======
+ public string? id {get; private set; }
+
+ [Description(nick = "service name", blurb = "Full name of the service")]
+ public string? name {get; private set; }
+
+ //== Fields ==//
+
+ /**
+ * URI of file with selector template
+ */
+ private string selector_uri = "file:///";
+ private Application app;
+ private MainView frame;
+ /* main page of the web interface for music playback */
+ private string home_url;
+ private string? prev_id = null;
+ private Storage storage;
+ private Regex? sandbox;
+ private bool skip_selector = false;
+ private File? selector_template;
+ private string[] blacklist;
+
+ /**
+ * Creates new Service.
+>>>>>>> MERGE-SOURCE
*
+<<<<<<< TREE
* @param id service id
* @param version version of service integration
* @param integration integration script
@@ -389,6 +417,87 @@
"Empty 'sandbox_pattern' entry");
}
+=======
+ * @param app main application obejct
+ * @param view the main webview
+ * @param storage storage wrapper
+ */
+ public Service(Application app, MainView view, Storage storage){
+ this.app = app;
+ this.frame = view;
+ this.storage = storage;
+
+ /* Look for selector template file. If found, store its uri. */
+ this.selector_template = get_data_file(APPNAME + "/" + SELECTOR_TEMPLATE_PATH);
+ if(this.selector_template != null) this.selector_uri = this.selector_template.get_uri();
+
+ if(WebKit.MAJOR_VERSION == 1
+ && (WebKit.MINOR_VERSION == 7 || WebKit.MINOR_VERSION == 8)){
+ blacklist = this.app.config.array("bug958154_blacklist");
+ if(blacklist.length == 0){
+ // Default blacklist for for LP:958154
+ blacklist = {"pandora", "rdio", "googlemusic"};
+ }
+ }
+ else{
+ blacklist = this.app.config.array("services_blacklist");
+ if(blacklist.length == 0){
+ // Default blacklist
+ blacklist = {"googlemusic"};
+ }
+ }
+
+ /* Load service from the last session or show service selector */
+ var service = this.app.ui_state[CONFIG_PREFIX] ?? "";
+ if(!(service in Service.list_services(blacklist))){
+ service = null;
+ }
+ this.replace(service);
+
+ /* handle new page and new window requests to apply URL sandbox */
+ this.frame.navigation_policy_decision_requested.connect(this.on_new_page);
+ this.frame.new_window_policy_decision_requested.connect(this.on_new_window);
+
+ /* Install service to newly created JavaScript environment
+ * and load scripts when page is loaded */
+ this.frame.window_object_cleared.connect(this.install_service);
+ this.frame.document_load_finished.connect(this.on_frame_loaded);
+ }
+
+ //==== Public methods ====//
+
+ /**
+ * Disconnect service frowm view's signals
+ */
+ public void disconnect_from_view(){
+ this.frame.navigation_policy_decision_requested.disconnect(this.on_new_page);
+ this.frame.new_window_policy_decision_requested.disconnect(this.on_new_window);
+ this.frame.document_load_finished.disconnect(this.on_frame_loaded);
+ this.frame.window_object_cleared.disconnect(this.install_service);
+ }
+
+ /**
+ * Loads service interface or service selector
+ */
+ public void load(){
+ if(this.id == null){
+ this.show_selector();
+ return;
+ }
+
+ var uri = this.app.ui_state[CONFIG_PREFIX + "." + this.id + ".last_uri"] ?? this.home_url;
+
+ log_debug("Starting web interface for %s: %s", this.id, uri);
+ this.frame.open(uri);
+ this.prev_id = null;
+ this.service_loaded(this.id);
+ }
+
+ /**
+ * Shows service selector
+ */
+ public void switch_service(){
+>>>>>>> MERGE-SOURCE
try{
sandbox = new Regex(sandbox_pattern,
RegexCompileFlags.CASELESS | RegexCompileFlags.ANCHORED);
@@ -701,6 +810,451 @@
//~ log_debug(@"Data changed: %s, %s, %s, %s, $playback_state, $can_prev, $can_next, $can_thumbs_up, $can_thumbs_down, $can_favorite",
//~ song ?? "null", artist ?? "null", album ?? "null", art_uri ?? "null");
}
+<<<<<<< TREE
+=======
+
+ /**
+ * Emitted when service selector is shown
+ */
+ public signal void selector_shown();
+
+ /**
+ * Emitted if new service is loaded
+ *
+ * @param id service identifier
+ */
+ public signal void service_loaded(string id);
+
+ //==== Private methods ====//
+
+ /**
+ * Replaces current service with new service or service selector.
+ * Service selector is shown is id is null or service has invalid
+ * metadata.
+ *
+ * @param id service identifier
+ */
+ private void replace(string? id){
+ Regex? sandbox = null;
+ string name = null;
+ string home_page = null;
+
+ if(id != null && read_metadata(id, out name, out home_page,
+ out sandbox, null, null, null)){
+ this.id = id;
+ this.name = (owned)name;
+ this.home_url = (owned)home_page;
+ this.sandbox = sandbox;
+ return;
+ }
+
+ this.id = null;
+ this.show_selector();
+ }
+
+ /**
+ * Create and show service selector
+ */
+ private void show_selector(){
+ // HTML string containing links to services and description
+ string items = "";
+ string name;
+ foreach(string service in list_services(blacklist)){
+ if(!read_metadata(service, out name, null, null, null, null, null)) continue;
+ items += SELECTOR_ITEM_TEMPLATE.printf(
+ service, name,
+ /// Shown in Service selector if service doesn't provide description
+ get_description(service) ?? _("No description provided for this service."));
+
+ }
+ /// Shown as heading in Service selector
+ string subheading = _("Select cloud music service");
+
+ string cancel_button;
+ if(this.prev_id != null){
+ cancel_button = "<a class=\"cancel\" href=\"nuvola:%1$s\">%2$s</a>"
+ /// Shown as label of Cancel button in Service selector
+ .printf(this.prev_id, _("Cancel"));
+ }
+ else{
+ cancel_button = "";
+ }
+
+ // unowned string is used to avoid copying of SELECTOR_FALLBACK
+ // TODO: check the C code if it really works!
+ unowned string template;
+ string external_template;
+
+ if(selector_template == null){
+ log_warning("Unable to find selector template '%s'",
+ SELECTOR_TEMPLATE_PATH);
+ template = SELECTOR_FALLBACK;
+ }
+ else{
+ try{
+ external_template = read_file(selector_template);
+ template = external_template;
+ }
+ catch(Error e){
+ log_critical("Unable to load selector template '%s': %s",
+ selector_template.get_path(), e.message);
+ template = SELECTOR_FALLBACK;
+ }
+
+ }
+
+ this.skip_selector = true; // Used to break loop
+
+ this.frame.load_string(
+ template.printf(DISPLAY_NAME, subheading, cancel_button, items),
+ "text/html", "utf-8", selector_uri);
+ this.selector_shown();
+ }
+
+ /**
+ * Decide whether open page in main view or in the default browser
+ */
+ private bool on_new_page(WebFrame frame, NetworkRequest req,
+ WebNavigationAction action, WebPolicyDecision decision){
+ if(frame != this.frame.get_main_frame()){
+ // don't care about pages in <iframe> elements
+ return false;
+ }
+
+ string uri = req.get_uri();
+ log_debug("New page request: URI: %s, frame URI: %s",
+ uri, frame.get_uri() ?? "null");
+
+
+ if(this.id == null){
+ // Behavior specific for service selector
+ if(uri == selector_uri){
+ // Request to navigate to service selector
+ if(this.skip_selector){
+ // this.show_selector() caused the new page request
+ this.skip_selector = false;
+ }
+ else{
+ // reload button has been pressed
+ this.show_selector();
+ }
+ return false;
+ }
+ else if(uri.has_prefix("nuvola:")){
+ // Special prefix used in service selector
+ // to navigate to service
+ decision.ignore();
+ var service = uri.substring(7);
+ this.app.ui_state[CONFIG_PREFIX] = service;
+ this.replace(service);
+ this.load();
+ return true;
+ }
+
+ // Other pages (links to Wikipedia, etc.)
+ // are opened in default browser
+ open_uri_with_fallback(uri);
+ decision.ignore();
+ return true;
+ }
+
+
+
+ /* Open Flash install page in default browser */
+ if(uri.has_prefix("http://get.adobe.com/flashplayer")){
+ open_uri_with_fallback(uri);
+ decision.ignore();
+ return true;
+ }
+
+ // If page doesn't match sandbox, open it in default browser
+ if(!this.sandbox.match(uri)){
+ open_uri_with_fallback(uri);
+ decision.ignore();
+ return true;
+ }
+
+ this.app.ui_state[CONFIG_PREFIX + "." + this.id + ".last_uri"] = (owned) uri;
+ try{
+ this.app.ui_state.save();
+ }
+ catch(Error e){
+ log_warning("Unable to save UI state: %s", e.message);
+ }
+
+ return false;
+ }
+
+ /**
+ * Open new window in the default web browser
+ */
+ private bool on_new_window(WebFrame frame, NetworkRequest req,
+ WebNavigationAction action, WebPolicyDecision decision){
+ unowned string uri = req.get_uri();
+ log_debug("New window request: %s", uri);
+
+ if(this.sandbox.match(uri)){
+ // Oh wait! This page belongs to the main wiew!
+ this.frame.open(uri);
+ }
+ else{
+ open_uri_with_fallback(uri);
+ }
+ decision.ignore();
+ return true;
+ }
+
+ /**
+ * Installs JavaScript API binded to this service
+ */
+ private void install_service(WebKit.WebFrame frame, void* context, void* window_object){
+ if(frame != this.frame.get_main_frame()) return;
+ log_debug("Installing service to the new window object");
+ JSApi.install_service(context, window_object, this);
+ this.frame.execute_script("window._Nuvola.log = window.console.log;");
+ }
+
+ /**
+ * Executes scripts when frame is loaded.
+ */
+ private void on_frame_loaded(WebFrame frame){
+ if(id == null) return;
+ unowned string uri = frame.get_uri();
+ if(uri == null || frame != this.frame.get_main_frame()) return;
+ this.load_scripts();
+ }
+
+ /**
+ * Loads scripts for service view */
+ private void load_scripts(){
+ this.frame.load_script(SERVICES_DIRNAME + "/" + MAIN_SCRIPT_FILENAME);
+ this.frame.load_script(SERVICES_DIRNAME + "/"
+ + this.id + "/" + INTEGRATION_FILENAME);
+ #if USERSCRIPTS_ENABLED
+ this.frame.load_user_scripts(this.id);
+ #endif
+ }
+
+
+ //== Static public fields ==//
+
+ /**
+ * Prefix used for service configuration options.
+ */
+ public static const string CONFIG_PREFIX = "service";
+
+ //== Static private fields ==//
+
+ /**
+ * Name of directory with service integrations.
+ */
+ private static const string SERVICES_DIRNAME = "services";
+
+ /**
+ * Name of file with metadata.
+ */
+ private static const string METADATA_FILENAME = "metadata.conf";
+
+ /**
+ * Name of file with service description in HTML.
+ */
+ private static const string DESCRIPTION_FILENAME = "description.html";
+
+ /**
+ * Name of file with integration script.
+ */
+ private static const string INTEGRATION_FILENAME = "integration.js";
+
+ /**
+ * Name of file with main script
+ */
+ private static const string MAIN_SCRIPT_FILENAME = "main.js";
+
+ /**
+ * Path to file with HTML template for service selector.
+ * Relative to Nuvola's data directory.
+ */
+ private static const string SELECTOR_TEMPLATE_PATH = "selector/template.html";
+
+ /**
+ * Regular expression to check validity of service identifier
+ */
+ private static Regex id_regex;
+
+
+ //== Static public functions ==//
+
+ /**
+ * Lists available services
+ *
+ * Note: use read_metadata() function to check if metadata file is valid
+ *
+ * @return array with identifiers of available services
+ */
+ public static string[] list_services(string[] blacklist){
+ string[] result = {};
+ FileInfo file_info;
+ foreach(weak File dir in get_data_dirs(APPNAME + "/" + SERVICES_DIRNAME)){
+ try{
+ var enumerator = dir.enumerate_children(FILE_ATTRIBUTE_STANDARD_NAME, 0);
+ while((file_info = enumerator.next_file()) != null){
+ string name = file_info.get_name();
+ if(!check_id(name)) continue;
+ if(name in result) continue;
+ if(name in blacklist){
+ log_warning("Service %s is blacklisted.", name);
+ continue;
+ }
+ var item = dir.get_child(name);
+ if(item.query_file_type(0) != FileType.DIRECTORY) continue;
+ if(item.get_child(INTEGRATION_FILENAME).query_file_type(0) != FileType.REGULAR) continue;
+ if(item.get_child(METADATA_FILENAME).query_file_type(0) != FileType.REGULAR) continue;
+ if(item.get_child(DESCRIPTION_FILENAME).query_file_type(0) != FileType.REGULAR) continue;
+
+ result += name;
+ }
+ }
+ catch(Error e){
+ continue; // Not a directory?
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Loads description for service. Description is in HTML format.
+ *
+ * @param service Service id
+ * @return description or null on failure
+ */
+ public static string? get_description(string service){
+ var file = get_data_file(APPNAME + "/" + SERVICES_DIRNAME + "/"
+ + service + "/" + DESCRIPTION_FILENAME);
+ if(file == null){
+ log_warning("Unable to find description for service '%s'", service);
+ return null;
+ }
+ try{
+ return read_file(file);
+ }
+ catch(Error e){
+ log_critical("Unable to read description file '%s': %s",
+ file.get_path(), e.message);
+ return null;
+ }
+ }
+
+ /**
+ * Reads service integration metadata
+ *
+ * @param service_id service identifier
+ * @param name name of the service
+ * @param home_page main page of the web interface for music playback
+ * @param sandbox pages not matching this regular expression will be opened in the default web browser
+ * @param version version of the integration
+ * @param maintainer_name name of the maintainer of the service integration
+ * @param maintainer_link link to page with contact to maintainer
+ * @return true if all metadata have been succesfully obtained, otherwise false
+ */
+ public static bool read_metadata(string service_id, out string name,
+ out string home_page, out Regex sandbox, out int version,
+ out string maintainer_name, out string maintainer_link
+ ){
+ var file = get_data_file(APPNAME + "/"
+ + SERVICES_DIRNAME + "/" + service_id + "/" + METADATA_FILENAME);
+ return read_metadata_from_file(file, out name,
+ out home_page, out sandbox, out version,
+ out maintainer_name, out maintainer_link);
+ }
+
+ /**
+ * Reads service integration metadata from file.
+ *
+ * @param metadata file with metadata
+ * @param name name of the service (not id)
+ * @param home_page main page of the web interface for music playback
+ * @param sandbox pages not matching this regular expression will be opened in the default web browser
+ * @param version version of the integration
+ * @param maintainer_name name of the maintainer of the service integration
+ * @param maintainer_link link to page with contact to maintainer
+ * @return true if all metadata have been succesfully obtained, otherwise false
+ */
+ public static bool read_metadata_from_file(File metadata, out string name,
+ out string home_page, out Regex sandbox, out int version,
+ out string maintainer_name, out string maintainer_link
+ ){
+ bool valid = true;
+ var map = new MapFile(metadata, true);
+ name = map["name"] ?? "";
+ if(name == ""){
+ log_warning("Empty 'name' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ var sandbox_pattern = map["sandbox_pattern"] ?? "";
+ if(sandbox_pattern == ""){
+ log_warning("Empty 'sandbox_pattern' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ try{
+ sandbox = new Regex(sandbox_pattern,
+ RegexCompileFlags.CASELESS | RegexCompileFlags.ANCHORED);
+ log_debug("Valid 'sandbox_pattern = %s' in %s.", sandbox_pattern, metadata.get_path());
+ }
+ catch(RegexError e){
+ log_warning("Invalid 'sandbox_pattern' in %s: %s", metadata.get_path(), e.message);
+ sandbox = null;
+ valid = false;
+ }
+
+ maintainer_name = map["maintainer_name"] ?? "";
+ if(maintainer_name == ""){
+ log_warning("Empty 'maintainer_name' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ home_page = map["home_page"] ?? "";
+ if(!home_page.has_prefix("http://")
+ && !home_page.has_prefix("https://")){
+ log_warning("Empty or invalid 'home_page' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ maintainer_link = map["maintainer_link"] ?? "";
+ if(!maintainer_link.has_prefix("http://")
+ && !maintainer_link.has_prefix("https://")){
+ log_warning("Empty or invalid 'maintainer_link' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ version = map.get_int("version", 0);
+ if(version <= 0){
+ log_warning("Invalid 'version' in %s", metadata.get_path());
+ valid = false;
+ }
+
+ return valid;
+ }
+
+ /**
+ * Check if the service identifier is valid
+ *
+ * @param id service identifier
+ * @return true if id is valid
+ */
+ public static bool check_id(string id){
+ if(id_regex == null){
+ try{
+ id_regex = new Regex("^\\w+$");
+ }
+ catch(RegexError e){
+ log_error("Unable to compile regular expression /^\\w+$/.");
+ }
+ }
+ return id_regex.match(id);
+ }
+>>>>>>> MERGE-SOURCE
}
=== modified file 'src/core/settings.vala'
--- src/core/settings.vala 2012-03-03 21:44:20 +0000
+++ src/core/settings.vala 2012-06-15 15:20:27 +0000
@@ -38,6 +38,7 @@
private const string NOTIFICATIONS = "notifications";
private const string DOCK_MANAGER = "dock_manager";
private const string UNITY_QUICK_LIST = "unity_quick_list";
+<<<<<<< TREE
private const string PAGE_CACHE = "page_cache";
private const string DATA_CACHE = "data_cache";
private const string DATA_CACHE_SIZE = "data_cache_size";
@@ -45,6 +46,10 @@
private const string WEB_PLUGINS = "web_plugins";
private const string SPACE_KEY = "space_key";
private const string SONG_LYRICS = "song_lyrics";
+=======
+ #endif
+ private const string SPACE_KEY = "space_key";
+>>>>>>> MERGE-SOURCE
}
@@ -75,6 +80,7 @@
public abstract bool dock_manager{ get; set; }
[Description(nick = "Unity Quick List", blurb = "Enables or disables dynamic quick list of Unity Launcher.")]
public abstract bool unity_quick_list{ get; set; }
+<<<<<<< TREE
[Description(nick = "Auto play", blurb = "Whether automatically start playback (if possible).")]
public abstract bool auto_play{ get; set; }
[Description(nick = "Web plugins", blurb = "Whether web plugins are enabled.")]
@@ -89,6 +95,11 @@
public abstract bool space_key{ get; set; }
[Description(nick = "Fetch song lyrics", blurb = "Whether it is allowed to fetch song lyrics.")]
public abstract bool song_lyrics{ get; set; }
+=======
+ #endif
+ [Description(nick = "Use space key", blurb = "Whether it is allowed to use space key in keybindings.")]
+ public abstract bool space_key{ get; set; }
+>>>>>>> MERGE-SOURCE
}
/**
@@ -210,6 +221,7 @@
public bool unity_quick_list{
get{
+<<<<<<< TREE
return get_bool(UNITY_QUICK_LIST, true);
}
set{
@@ -285,5 +297,24 @@
set_bool(SONG_LYRICS, value);
}
}
+=======
+ return this.get_bool(UNITY_QUICK_LIST, true);
+ }
+ set{
+ this.set_bool(UNITY_QUICK_LIST, value);
+ }
+ }
+ #endif
+
+ public bool space_key{
+ get{
+ return get_bool(SPACE_KEY, true);
+ }
+
+ set{
+ set_bool(SPACE_KEY, value);
+ }
+ }
+>>>>>>> MERGE-SOURCE
}
}
=== modified file 'src/core/storage.vala'
=== modified file 'src/gui/actions.vala'
--- src/gui/actions.vala 2012-03-01 20:54:53 +0000
+++ src/gui/actions.vala 2012-06-15 15:20:27 +0000
@@ -31,6 +31,7 @@
TOOLBAR;
}
+<<<<<<< TREE
public class UIActions : Gtk.UIManager{
private weak Application app;
public UIActionsMode mode{
@@ -43,6 +44,25 @@
private bool _has_data_cache = true;
public bool has_data_cache{
+=======
+ public class Actions : GLib.Object{
+ private Application app;
+ private Player player;
+ private MainView frame;
+ private ActionsMode mode = ActionsMode.MENUBAR;
+ public Toolbar toolbar;
+ public MenuBar menubar;
+ private Gtk.Menu? menu;
+ private Gtk.Action pp_action;
+ private Gtk.Action action_next;
+ private Gtk.Action action_prev;
+ public Gtk.ActionGroup actions { get; private set;}
+ private static Gtk.ActionEntry[] normal_entries;
+ private static RadioActionEntry[] radio_entries;
+ private Gtk.Window window;
+ private bool _enable_navigation = true;
+ public bool enable_navigation{
+>>>>>>> MERGE-SOURCE
get{
return this._has_data_cache;
}
@@ -66,10 +86,37 @@
create_actions();
insert_action_group(actions, 0);
+ app.config.notify["space-key"].connect_after(() => {
+ uint key;
+ Gdk.ModifierType mods;
+ Gtk.accelerator_parse(get_pp_accel(), out key, out mods);
+ Gtk.AccelMap.change_entry(
+ "<Actions>/nuvola/toggle-play", key, mods, false);
+ });
}
+<<<<<<< TREE
private void create_actions(){
+=======
+ public void set_mode(ActionsMode mode){
+ if(this.mode == mode) return;
+ this.mode = mode;
+ this.create();
+ }
+
+ private string get_pp_accel(){
+ return app.config.space_key ? "<ctrl>space" : "<ctrl>P";
+ }
+
+ private void update_navigation(){
+ this.actions.get_action("home").sensitive = this._enable_navigation;
+ this.actions.get_action("back").sensitive = this._enable_navigation && this.frame.can_go_back();
+ this.actions.get_action("forward").sensitive = this._enable_navigation && this.frame.can_go_forward();
+ }
+
+ private void create(){
+>>>>>>> MERGE-SOURCE
/*
* NOTE: Vala supports easy creation of constant array of struct:
@@ -89,6 +136,13 @@
int i = 0;
/* Normal items. Name, stock id, label, accelerator, tooltip, callback */
+<<<<<<< TREE
+=======
+ normal_entries = new Gtk.ActionEntry[29];
+ int i = 0;
+ void* self = this;
+
+>>>>>>> MERGE-SOURCE
// Service
/// Menu Service
normal_entries[i++] = {"service", null, _("_Service"), null, null, null};
@@ -99,6 +153,11 @@
// Control
/// Menu Control
normal_entries[i++] = {"control", null, _("_Control"), null, null, null};
+<<<<<<< TREE
+=======
+ normal_entries[i++] = {"prev", Stock.MEDIA_PREVIOUS, null, "<alt>Left", null, this.cb};
+ normal_entries[i++] = {"next", Stock.MEDIA_NEXT, null, "<alt>Right", null, this.cb};
+>>>>>>> MERGE-SOURCE
// View
/// Menu View
@@ -158,6 +217,7 @@
action = new Gtk.Action("website", _("About release %s").printf(RELEASE), null, Gtk.Stock.INFO);
action.activate.connect(this.cb);
actions.add_action(action);
+<<<<<<< TREE
}
@@ -172,6 +232,19 @@
ui_merge_id = 0;
}
+=======
+
+ var manager = new UIManager();
+
+ Gtk.Action play_pause_action;
+ play_pause_action = new Gtk.Action("toggle-play", null, null, Gtk.Stock.MEDIA_PLAY);
+ play_pause_action.activate.connect(this.cb);
+ actions.add_action_with_accel(play_pause_action, get_pp_accel());
+
+ manager.insert_action_group(actions, 0);
+ var accels = manager.get_accel_group();
+ window.add_accel_group(accels);
+>>>>>>> MERGE-SOURCE
string ui_file;
switch(this.mode){
case UIActionsMode.BOTH: ui_file = "/ui/actions_mode_both.xml"; break;
@@ -198,6 +271,7 @@
add_ui_request();
switch(this.mode){
+<<<<<<< TREE
case UIActionsMode.BOTH:
menubar = get_widget("/menubar") as Gtk.MenuBar;
toolbar = get_widget("/toolbar") as Gtk.Toolbar;
@@ -213,6 +287,17 @@
var nuvola_item = get_widget("/menubar/nuvola") as Gtk.MenuItem;
menubar.remove(nuvola_item);
menubar = null;
+=======
+ case ActionsMode.BOTH:
+ this.menubar.show_all();
+ this.toolbar.show_all();
+ break;
+ case ActionsMode.TOOLBAR:
+ this.menubar.hide();
+ this.toolbar.show_all();
+ var nuvola_item = manager.get_widget("/menubar/nuvola") as Gtk.MenuItem;
+ this.menubar.remove(nuvola_item);
+>>>>>>> MERGE-SOURCE
this.menu = nuvola_item.submenu;
nuvola_item.submenu = null;
toolbar = get_widget("/toolbar") as Gtk.Toolbar;
=== modified file 'src/gui/preferences.vala'
--- src/gui/preferences.vala 2012-03-26 20:22:28 +0000
+++ src/gui/preferences.vala 2012-06-15 15:20:27 +0000
@@ -155,6 +155,7 @@
this.hide_window_buttons[2].toggled.connect(this.hide_window_toggled);
/// Settings dialog - tab General
+<<<<<<< TREE
var space_key = new Gtk.CheckButton.with_label(_("Enable keybindings with Space key."));
space_key.active = app.config.space_key;
space_key.toggled.connect(() => {
@@ -163,6 +164,43 @@
box.pack_start(space_key, false, false, 10);
+=======
+ label = new Label(_("Show tray icon"));
+ label.xalign = 0.0f;
+ box.pack_start(label, false, false, 10);
+ this.tray_buttons = new RadioButton[3];
+ /// Settings dialog - tab General, always show tray icon
+ this.tray_buttons[0] = new RadioButton.with_label(null, _("Always"));
+ box.pack_start(this.tray_buttons[0], false, false, 0);
+ /// Settings dialog - tab General, show tray icon if needed
+ this.tray_buttons[1] = new RadioButton.with_label(this.tray_buttons[0].get_group(), _("If needed"));
+ box.pack_start(this.tray_buttons[1], false, false, 0);
+ /// Settings dialog - tab General, never show tray icon
+ this.tray_buttons[2] = new RadioButton.with_label(this.tray_buttons[0].get_group(), _("Never"));
+ box.pack_start(this.tray_buttons[2], false, false, 0);
+
+
+ switch(this.app.config.tray_icon){
+ case TrayIconMode.ALWAYS: this.tray_buttons[0].active = true; break;
+ case TrayIconMode.NEVER: this.tray_buttons[2].active = true; break;
+ default: this.tray_buttons[1].active = true; break;
+ }
+
+ this.tray_buttons[0].toggled.connect(this.tray_toggled);
+ this.tray_buttons[1].toggled.connect(this.tray_toggled);
+ this.tray_buttons[2].toggled.connect(this.tray_toggled);
+
+ var space_key = new Gtk.CheckButton.with_label(_("Enable keybindings with Space key."));
+ space_key.active = app.config.space_key;
+ space_key.toggled.connect(() => {
+ app.config.space_key = space_key.active;
+ });
+ box.pack_start(space_key, false, false, 10);
+
+
+
+
+>>>>>>> MERGE-SOURCE
box = new Gtk.VBox(false, 2);
box.border_width = 10;
/// Settings dialog tab
=== modified file 'src/gui/windows.vala'
--- src/gui/windows.vala 2012-04-26 19:38:00 +0000
+++ src/gui/windows.vala 2012-06-15 15:20:27 +0000
@@ -69,8 +69,13 @@
if(DEV_CHANNEL == "unstable"){
/// Warning for unstable builds, %1$s = version, %2$s and %3$s = links
+<<<<<<< TREE
var dev_label = new Gtk.Label(_("You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in <a href='%4$s'>stable and beta builds</a>.</i>")
.printf(app.version, "http://goo.gl/SvtXK", "http://l.fenryxo.cz/nuvolachangelog", "http://projects.fenryxo.cz/Nuvola_Player/Download/"));
+=======
+ var dev_label = new Label(_("You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in <a href='%4$s'>stable and beta builds</a>.</i>")
+ .printf(app.version, "http://goo.gl/SvtXK", "http://l.fenryxo.cz/nuvolachangelog", "http://projects.fenryxo.cz/Nuvola_Player/Download/"));
+>>>>>>> MERGE-SOURCE
dev_label.selectable = true;
dev_label.use_markup = true;
dev_label.can_focus = false;
@@ -110,25 +115,41 @@
base.add(this.box);
this.box.show_all();
-
- /* Restore last window state */
int w = 0;
int h = 0;
- var opt_w = this.app.ui_state["window_w"];
- if(opt_w != null) w = int.parse(opt_w);
- var opt_h = this.app.ui_state["window_h"];
- if(opt_h != null) h = int.parse(opt_h);
- this.set_default_size(w > 0 ? w: 1010, h > 0 ? h : 600);
+ string? opt_w;
+ string? opt_h;
- var opt_x = this.app.ui_state["window_x"];
- var opt_y = this.app.ui_state["window_y"];
- if(opt_x != null && opt_y != null){
- this.move(int.parse(opt_x), int.parse(opt_y));
+ if(WebKit.MAJOR_VERSION == 1
+ && (WebKit.MINOR_VERSION == 7 || WebKit.MINOR_VERSION == 8)){
+ // Workaround for LP:958154
+ opt_w = this.app.ui_state["bug958154_window_w"];
+ if(opt_w != null) w = int.parse(opt_w);
+ opt_h = this.app.ui_state["bug958154_window_h"];
+ if(opt_h != null) h = int.parse(opt_h);
+ w = w > 0 ? w: 1010;
+ h = h > 0 ? h : 534;
+ log_warning("Bug 958154 window size: %d×%d", w, h);
+ this.set_default_size(w, h);
}
-
- if(this.app.ui_state.get_bool("window_maximized", false)){
- this.maximize();
+ else{
+ /* Restore last window state */
+ opt_w = this.app.ui_state["window_w"];
+ if(opt_w != null) w = int.parse(opt_w);
+ opt_h = this.app.ui_state["window_h"];
+ if(opt_h != null) h = int.parse(opt_h);
+ this.set_default_size(w > 0 ? w: 1010, h > 0 ? h : 600);
+
+ var opt_x = this.app.ui_state["window_x"];
+ var opt_y = this.app.ui_state["window_y"];
+ if(opt_x != null && opt_y != null){
+ this.move(int.parse(opt_x), int.parse(opt_y));
+ }
+
+ if(this.app.ui_state.get_bool("window_maximized", false)){
+ this.maximize();
+ }
}
@@ -253,11 +274,19 @@
}
public class CrashDialog: Gtk.Dialog{
+<<<<<<< TREE
public Gtk.CheckButton reset_config;
public Gtk.CheckButton reset_ui_state;
public Gtk.CheckButton purge_cookies;
public Gtk.CheckButton? disable_proxy;
public Gtk.CheckButton disable_check;
+=======
+ public CheckButton reset_config;
+ public CheckButton reset_ui_state;
+ public CheckButton purge_cookies;
+ public CheckButton? disable_proxy;
+ public CheckButton disable_check;
+>>>>>>> MERGE-SOURCE
#if LIBSOUP_CACHE
public Gtk.CheckButton purge_browser;
@@ -335,6 +364,7 @@
label.use_markup = true;
label.wrap_mode = Pango.WrapMode.WORD;
label.wrap = true;
+<<<<<<< TREE
label.justify = Gtk.Justification.FILL;
content.pack_start(label, true, true, 0);
@@ -360,6 +390,33 @@
/// Crash dialog
this.disable_check = new Gtk.CheckButton.with_label(_("Do not show crash dialog again."));
box.pack_start(this.disable_check, false, false, 0);
+=======
+ label.justify = Justification.FILL;
+
+ content.pack_start(label, true, true, 0);
+
+ label = new Label(
+ /// Crash dialog
+ _("Another cause may be session/login manager, if it doesn't notify Nuvola Player to quit properly when user is about to logout.")
+ );
+ label.xalign = 0;
+ label.xpad = 15;
+ label.ypad = 0;
+ label.use_markup = true;
+ label.wrap_mode = Pango.WrapMode.WORD;
+ label.wrap = true;
+ label.justify = Justification.FILL;
+
+ content.pack_start(label, true, true, 0);
+
+ box = new VBox(false, 0);
+ box.border_width = 15;
+ content.pack_start(box, false, false, 0);
+
+ /// Crash dialog
+ this.disable_check = new CheckButton.with_label(_("Do not show crash dialog again."));
+ box.pack_start(this.disable_check, false, false, 0);
+>>>>>>> MERGE-SOURCE
content.show_all();
}
=== modified file 'src/plugins/media_keys.vala'
--- src/plugins/media_keys.vala 2012-03-24 22:48:53 +0000
+++ src/plugins/media_keys.vala 2012-06-15 15:20:27 +0000
@@ -169,8 +169,14 @@
this.media_keys = Bus.get_proxy_sync(BusType.SESSION,
"org.gnome.SettingsDaemon",
"/org/gnome/SettingsDaemon/MediaKeys");
+<<<<<<< TREE
/* Vala includes "return false" if DBus method call fails! */
this.media_keys.grab_media_player_keys(app.app_name, 0);
+=======
+
+ /* Vala includes "return false" if DBus method call fails! */
+ this.media_keys.grab_media_player_keys(this.app_name, 0);
+>>>>>>> MERGE-SOURCE
this.media_keys.media_player_key_pressed.connect(this.on_media_key_pressed);
return true;
=== modified file 'src/plugins/mpris.vala'
=== modified file 'src/plugins/trayicon.vala'
--- src/plugins/trayicon.vala 2012-02-19 17:19:24 +0000
+++ src/plugins/trayicon.vala 2012-06-15 15:20:27 +0000
@@ -55,6 +55,7 @@
*
* The tray icon is shown only if Ubuntu Sound menu is not detected.
*/
+<<<<<<< TREE
public class Plugin: Object, Nuvola.Plugin{
private string id = "trayicon";
private weak Nuvola.Application app;
@@ -65,6 +66,42 @@
public string get_id(){
return id;
}
+=======
+ public class TrayIcon: BaseHelper{
+ [Description(nick = "Availibility of hide action.", blurb = "If true the main window can be hidden to a tray icon or Ubuntu Sound menu.")]
+ public bool can_hide{
+ get{
+#if GLIB_DBUS
+ return this.ubuntu_sound_menu.visible || this.icon != null;
+#else
+ return this.icon != null;
+#endif
+
+ }
+ }
+
+ private TrayIconMode _mode;
+ [Description(nick = "TrayIcon mode.", blurb = "Specifies visibility ob the tray icon")]
+ public TrayIconMode mode{
+ get{
+ return this._mode;
+ }
+ set{
+ this._mode = value;
+ this.update();
+ }
+ }
+
+ private Gtk.Menu? menu;
+ private StatusIcon? icon;
+#if GLIB_DBUS
+ private UbuntuSoundMenu ubuntu_sound_menu;
+ // It will be set to false if Ubuntu Sound Menu is not found
+ private bool icon_needed = false;
+#else
+ private bool icon_needed = true;
+#endif
+>>>>>>> MERGE-SOURCE
/**
* Loads Tray icon
=== modified file 'translations/LINGUAS'
--- translations/LINGUAS 2012-02-13 19:25:11 +0000
+++ translations/LINGUAS 2012-06-15 15:20:27 +0000
@@ -3,11 +3,13 @@
ca@valencia
cs
de
+el
en_GB
es
et
fi
fr
+hu
ia
it
ja
@@ -19,6 +21,13 @@
pt
ru
sl
+sq
sv
-te
-tr
+<<<<<<< TREE
+te
+tr
+=======
+te
+tr
+zh_CN
+>>>>>>> MERGE-SOURCE
=== added file 'translations/el.po'
--- translations/el.po 1970-01-01 00:00:00 +0000
+++ translations/el.po 2012-06-15 15:20:27 +0000
@@ -0,0 +1,453 @@
+# Greek translation for nuvola-player
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the nuvola-player package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nuvola-player\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+"PO-Revision-Date: 2012-02-28 16:42+0000\n"
+"Last-Translator: Stathis Iosifidis <Unknown>\n"
+"Language-Team: Greek <el@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-02-29 05:23+0000\n"
+"X-Generator: Launchpad (build 14874)\n"
+
+#. / Shown if unsupported command line argument is used
+#: src/main.vala:194
+msgid "Error: Option parsing failed:"
+msgstr "Σφάλμα: Αποτυχία Ανάλυσης Επιλογών:"
+
+#. / Short label for command 'start or resume playback'
+#: src/player.vala:57
+msgid "Play"
+msgstr "Αναπαραγωγή"
+
+#. / Short label for command 'pause playback'
+#: src/player.vala:59
+msgid "Pause"
+msgstr "Παύση"
+
+#. / Short label for command 'skip to previous song'
+#: src/player.vala:61
+msgid "Previous song"
+msgstr "Προηγούμενο τραγούδι"
+
+#. / Short label for command 'skip to next song'
+#: src/player.vala:63
+msgid "Next song"
+msgstr "Επόμενο τραγούδι"
+
+#. / Short label for command 'thumb up' or 'like this song' (see Google Music buttons)
+#: src/player.vala:65
+msgid "Thumbs Up"
+msgstr "Μου αρέσει"
+
+#. / Short label for command 'thumb down' or 'dislike this song' (see Google Music buttons)
+#: src/player.vala:67
+msgid "Thumbs Down"
+msgstr "Δεν μου αρέσει"
+
+#. / Short label for command 'add this song to favorites'
+#: src/player.vala:69
+msgid "Favorite"
+msgstr "Αγαπημένο"
+
+#. / Short label for command 'quit application'
+#: src/player.vala:71
+msgid "Quit"
+msgstr "Έξοδος"
+
+#. / Initial notification
+#: src/player.vala:166
+msgid "Version"
+msgstr "Έκδοση"
+
+#. / Shown in notification if both artist and album are unknown
+#: src/player.vala:301
+msgid "by unknown artist"
+msgstr "κατά άγνωστο καλλιτέχνη"
+
+#. / Shown in notification if artist is unknown, %s will be replaced by album name
+#: src/player.vala:305
+msgid "by unknown artist from %s"
+msgstr "κατά άγνωστο καλλιτέχνη από %s"
+
+#. / Shown in notification if album is unknown, %s will be replaced by artist name
+#: src/player.vala:309
+msgid "by %s"
+msgstr "κατά %s"
+
+#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
+#: src/player.vala:313
+msgid "by %1$s from %2$s"
+msgstr "κατά %1$s από %2$s"
+
+#. / Shown in Service selector if service doesn't provide description
+#: src/service.vala:189
+msgid "No description provided for this service."
+msgstr "Δεν παρέχεται λεπτομέρειες για αυτή την υπηρεσία."
+
+#. / Shown as heading in Service selector
+#: src/service.vala:193
+msgid "Select cloud music service"
+msgstr "Επιλογή υπηρεσίας μουσικής cloud"
+
+#. / Shown as label of Cancel button in Service selector
+#: src/service.vala:197
+msgid "Cancel"
+msgstr "Άκυρο"
+
+#. / Menu Service
+#: src/gui/actions.vala:110
+msgid "_Service"
+msgstr "_Υπηρεσία"
+
+#. / Menu item to switch service
+#: src/gui/actions.vala:117
+msgid "_Switch Service"
+msgstr "_Εναλλαγή Υπηρεσίας"
+
+#. / Menu Control
+#: src/gui/actions.vala:121
+msgid "_Control"
+msgstr "_Control"
+
+#. / Menu View
+#: src/gui/actions.vala:128
+msgid "_View"
+msgstr "_Προβολή"
+
+#. / Menu Options
+#: src/gui/actions.vala:135
+msgid "_Options"
+msgstr "_Επιλογές"
+
+#. / Menu item to purge cookies
+#. / Crash dialog
+#: src/gui/actions.vala:137 src/gui/windows.vala:243
+msgid "Purge cookies"
+msgstr "Εκκαθάριση cookies"
+
+#. / Menu item to purge album art cache
+#: src/gui/actions.vala:139
+msgid "Purge album art"
+msgstr "Εκκαθάριση άλμπουμ"
+
+#. / Menu item to purge browser cache
+#. / Crash dialog
+#: src/gui/actions.vala:141 src/gui/windows.vala:248
+msgid "Purge browser cache"
+msgstr "Εκκαθάριση λανθάνουσας μνήμης περιηγητή"
+
+#. / Menu Help
+#: src/gui/actions.vala:146
+msgid "_Help"
+msgstr "_Βοήθεια"
+
+#. / Menu item to open online help
+#: src/gui/actions.vala:148
+msgid "Get help online"
+msgstr "Λήψη βοήθειας από το δίκτυο"
+
+#. / Menu item to open bug/issue tracker
+#: src/gui/actions.vala:150
+msgid "Report a problem"
+msgstr "Αναφορά προβλήματος"
+
+#. / Menu item to open feature requests tracker
+#: src/gui/actions.vala:152
+msgid "Suggest new feature"
+msgstr "Υποδείξεις νέων χαρακτηριστικών"
+
+#. / Menu item to open page with information about donations
+#: src/gui/actions.vala:154
+msgid "Donate"
+msgstr "Δωρεά"
+
+#. / Menu item to open Nuvola's page on Google+ social network
+#: src/gui/actions.vala:156
+msgid "Google+ page"
+msgstr "Ιστοσελίδα Google+"
+
+#. / Menu item to open Nuvola's page on Facebook social network
+#: src/gui/actions.vala:158
+msgid "Facebook page"
+msgstr "Ιστοσελίδα Facebook"
+
+#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
+#: src/gui/actions.vala:162
+msgid "Nuvola Menu"
+msgstr "Μενού Nuvola"
+
+#. / Menu item to show both menu bar and tool bar
+#: src/gui/actions.vala:170
+msgid "Both menubar and toolbar"
+msgstr "Και οι δυο μπάρες μενού και εργαλείων"
+
+#. / Menu item to show only menu bar, tool bar is hidden
+#: src/gui/actions.vala:172
+msgid "Only menubar"
+msgstr "Μόνο μπάρα μενού"
+
+#. / Menu item to show only tool bar, menu bar is hidden
+#: src/gui/actions.vala:174
+msgid "Only toolbar"
+msgstr "Μόνο μπάρα εργαλείων"
+
+#. / Menu item to open web page about the current release
+#: src/gui/actions.vala:183
+msgid "About release %s"
+msgstr "Σχετικά με την έκδοση %s"
+
+#. / Preferences dialog title
+#: src/gui/preferences.vala:33
+msgid "Preferences"
+msgstr "Προτιμήσεις"
+
+#. / Settings dialog, tab General
+#: src/gui/preferences.vala:88
+msgid "General"
+msgstr "Γενικά"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:91
+msgid "Handle multimedia keys."
+msgstr "Διαχείριση πλήκτρων πολυμέσων."
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:97
+msgid "Use Pause (break) key to toggle play/pause"
+msgstr "Χρήση Πλήκτρου Παύσης (διακοπή) για εναλλαγή αναπαραγωγής/παύσης"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:103
+msgid "Show notifications."
+msgstr "Εμφάνιση ειδοποιήσεων."
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:109
+msgid "Hide window if close button is pressed"
+msgstr "Απόκρυψη παραθύρου εάν πατηθεί το πλήκτρο κλεισίματος"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:114
+msgid "Always (may require tray icon)"
+msgstr "Πάντα (μπορεί να απαιτείται εικονίδιο στην μπάρα)"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:117
+msgid "Only if music is playing (may require tray icon)"
+msgstr ""
+"Μόνο όταν αναπαράγεται μουσική (μπορεί να απαιτείται εικονίδιο στην μπάρα)"
+
+#. / Settings dialog - tab General
+#. / Settings dialog - tab General, never show tray icon
+#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
+msgid "Never"
+msgstr "Ποτέ"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:134
+msgid "Show tray icon"
+msgstr "Εμφάνιση εικονιδίου στην μπάρα"
+
+#. / Settings dialog - tab General, always show tray icon
+#: src/gui/preferences.vala:139
+msgid "Always"
+msgstr "Πάντα"
+
+#. / Settings dialog - tab General, show tray icon if needed
+#: src/gui/preferences.vala:142
+msgid "If needed"
+msgstr "Εάν απαιτείται"
+
+#. / Settings dialog tab
+#: src/gui/preferences.vala:163
+msgid "Network"
+msgstr "Δίκτυο"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:166
+msgid ""
+"Some cloud music services don't work with automatic settings and may require "
+"manual SOCKS proxy settings. New proxy settings is applied after restart of "
+"Nuvola Player."
+msgstr ""
+"Μερικές υπηρεσίες μουσικής cloud δεν δουλεύουν με αυτόματες ρυθμίσεις και "
+"μπορεί να απαιτούν χειροκίνητες ρυθμίσεις διαμεσολάβησης SOCKS. Οι νέες "
+"ρυθμίσεις διαμεσολάβησης εφαρμόζονται μετά την επανεκκίνηση του προγράμματος "
+"Nuvola."
+
+#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
+#: src/gui/preferences.vala:175
+msgid ""
+"<b>Warning:</b> A version of a library used for network connection contained "
+"in your system has issues with HTTPS proxy support and it may cause crash of "
+"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
+msgstr ""
+"<b>Προσοχή:</b> Η έκδοση της βιβλιοθήκης που χρησιμοποιείται για σύνδεση με "
+"το δίκτυο που περιλαμβάνεται στο σύστημά σας έχει προβλήματα με υποστήριξη "
+"διαμεσολάβησης HTTPS και μπορεί να προκαλέσει κατάρρευση του προγράμματος "
+"Nuvola. Συνίσταται να μην χρησιμοποιήσετε ρυθμίσεις Διαμεσολάβησης HTTP(S)."
+
+#. / Settings dialog - tab Network, shown if tsocks library was not detected
+#: src/gui/preferences.vala:185
+msgid ""
+"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
+"may not be supported."
+msgstr ""
+"<b>Σημείωση:</b> Η <a href='%s'>βιβλιοθήκη TSOCKS</a> δεν ανιχνεύθηκε. Η "
+"διαμεσολάβηση SOCKS μπορεί να μην υποστηρίζεται."
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:195
+msgid "Use direct connection without a proxy server"
+msgstr "Χρήση άμεσης σύνδεσης χωρίς εξυπηρετητή διαμεσολάβησης"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:199
+msgid "Use system HTTP(S) proxy settings"
+msgstr "Χρήση ρυθμίσεων διαμεσολάβησης συστήματος HTTP(S)"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:203
+msgid "Use manual proxy settings"
+msgstr "Χρήση χειροκίνητων ρυθμίσεων διαμεσολάβησης"
+
+#: src/gui/preferences.vala:212
+msgid "Proxy Type"
+msgstr "Τύπος Διαμεσολάβησης"
+
+#. / Settings dialog - tab Network, proxy type HTTP(S)
+#: src/gui/preferences.vala:215
+msgid "HTTP(S)"
+msgstr "HTTP(S)"
+
+#. / Settings dialog - tab Network, proxy type SOCKS
+#: src/gui/preferences.vala:218
+msgid "SOCKS"
+msgstr "SOCKS"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:228
+msgid "Proxy Server"
+msgstr "Εξυπηρετητής Διαμεσολάβησης"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:238
+msgid "Proxy Server Port"
+msgstr "Θύρα Εξυπηρετητή Διαμεσολάβησης"
+
+#. / Settings dialog, tab User Scripts
+#: src/gui/preferences.vala:280
+msgid "User scripts"
+msgstr "Scripts Χρήστη"
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:283
+msgid ""
+"User scripts are used to enhance web interface of cloud music services."
+msgstr ""
+"Scripts χρήστη που χρησιμοποιούνται για βελτίωση της διεπαφής ιστού των "
+"υπηρεσιών μουσικής cloud."
+
+#. / Settings dialog - tab User Scripts, warning
+#: src/gui/preferences.vala:291
+msgid ""
+"<b>Warning:</b> Support for user scripts is incomplete and experimental. It "
+"may be removed in future releases. User script can send data to third "
+"parties, install only trustworthy user scripts."
+msgstr ""
+"<b>Προσοχή:</b> Η υποστήριξη για sripts χρήστη είναι μη ολοκληρωμένη και "
+"πειραματική. Μπορεί να αφαιρεθεί σε μελλοντικές εκδόσεις. Τα scripts χρήστη "
+"μπορεί να στείλουν δεδομένα σε τρίτους, εγκαταστήστε μόνο έμπιστα scripts "
+"χρήστη."
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:301
+msgid "You have to select service to configure user scripts."
+msgstr "Πρέπει να επιλέξετε υπηρεσία για να ρυθμίσετε τα scripts χρήστη."
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:310
+msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
+msgstr ""
+"Λίστα χωρισμένη με κόμματα των ενεργοποιημένων scripts χρηστών για την "
+"υπηρεσία <b>%s</b>:"
+
+#. / Settings dialog - tab User Scripts, button to open user scripts directory
+#: src/gui/preferences.vala:325
+msgid "Open user scripts directory"
+msgstr "Άνοιγμα καταλόγου scripts χρήστη"
+
+#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
+#: src/gui/windows.vala:63
+msgid ""
+"You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a "
+"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
+"<a href='%4$s'>stable and beta builds</a>.</i>"
+msgstr ""
+"Εκτελείτε μια <b>μη σταθερή έκδοση %1$s</b>.<a href='%2$s'>Αναφέρετε ένα "
+"πρόβλημα</a>. <a href='%3$s'>Δείτε το ιστορικό αλλαγών</a>. <i>Αυτή η μπάρα "
+"δεν εμφανίζεται σε <a href='%4$s'>σταθερές και beta εκδόσεις</a>.</i>"
+
+#. / Shown in the About Nuvola Player dialog
+#: src/gui/windows.vala:163
+msgid "Cloud music integration for your Linux desktop"
+msgstr "Ενσωμάτωση υπηρεσίας μουσικής cloud στο σύστημα Linux"
+
+#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
+#: src/gui/windows.vala:165
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Stathis Iosifidis https://launchpad.net/~diamond-gr"
+
+#. / Title of the Crash dialog
+#: src/gui/windows.vala:205
+msgid "Nuvola Player Crash Dialog"
+msgstr "Παράθυρο Κατάρρευσης Αναπαραγωγέα Nuvola"
+
+#. / Crash dialog
+#: src/gui/windows.vala:220
+msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
+msgstr ""
+"<b>Η προηγούμενη συνεδρία του προγράμματος Nuvola δεν τερματίστηκε σωστά.</b>"
+
+#. / Crash dialog
+#: src/gui/windows.vala:228
+msgid "You can try following options to solve this issue:"
+msgstr ""
+"Μπορείτε να εφαρμόσετε τις παρακάτω επιλογές για να λύσετε αυτό το θέμα:"
+
+#. / Crash dialog
+#: src/gui/windows.vala:237
+msgid "Reset configuration"
+msgstr "Επαναφορά ρυθμίσεων"
+
+#. / Crash dialog
+#: src/gui/windows.vala:240
+msgid "Reset state of user interface"
+msgstr "Κατάσταση επαναφοράς διεπαφής χρήστη"
+
+#. / Crash dialog
+#: src/gui/windows.vala:254
+msgid "Disable HTTP(S) proxy"
+msgstr "Απενεργοποίηση διαμεσολάβησης HTTP(S)"
+
+#. / Crash dialog
+#: src/gui/windows.vala:259
+msgid ""
+"Cloud music services use Flash to play music. Unfortunately, Flash Player is "
+"known not to be very stable and may cause crash of Nuvola Player. Please "
+"visit <a href='%s'>Flash troubleshooting</a>"
+msgstr ""
+"Οι υπηρεσίες μουσικής cloud χρησιμοποιούν Flash για αναπαραγωγή μουσικής. "
+"Δυστυχώς, ο Flash Player είναι γνωστό ότι δεν είναι πολύ σταθερός και μπορεί "
+"να προκαλέσει κατάρρευση του Nuvola. Παρακαλώ επισκεφθείτε την ιστοσελίδα <a "
+"href='%s'>προβλήματα Flash</a>"
=== added file 'translations/hu.po'
--- translations/hu.po 1970-01-01 00:00:00 +0000
+++ translations/hu.po 2012-06-15 15:20:27 +0000
@@ -0,0 +1,447 @@
+# Hungarian translation for nuvola-player
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the nuvola-player package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nuvola-player\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+"PO-Revision-Date: 2012-02-21 12:34+0000\n"
+"Last-Translator: Peter Nagy <Unknown>\n"
+"Language-Team: Hungarian <hu@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-02-22 06:53+0000\n"
+"X-Generator: Launchpad (build 14838)\n"
+
+#. / Shown if unsupported command line argument is used
+#: src/main.vala:194
+msgid "Error: Option parsing failed:"
+msgstr "HIBA: A paraméter nem dolgozható fel:"
+
+#. / Short label for command 'start or resume playback'
+#: src/player.vala:57
+msgid "Play"
+msgstr "Lejátszás"
+
+#. / Short label for command 'pause playback'
+#: src/player.vala:59
+msgid "Pause"
+msgstr "Szünet"
+
+#. / Short label for command 'skip to previous song'
+#: src/player.vala:61
+msgid "Previous song"
+msgstr "Előző szám"
+
+#. / Short label for command 'skip to next song'
+#: src/player.vala:63
+msgid "Next song"
+msgstr "Következő szám"
+
+#. / Short label for command 'thumb up' or 'like this song' (see Google Music buttons)
+#: src/player.vala:65
+msgid "Thumbs Up"
+msgstr "Tetszik"
+
+#. / Short label for command 'thumb down' or 'dislike this song' (see Google Music buttons)
+#: src/player.vala:67
+msgid "Thumbs Down"
+msgstr "Nem tetszik"
+
+#. / Short label for command 'add this song to favorites'
+#: src/player.vala:69
+msgid "Favorite"
+msgstr "Kedvenc"
+
+#. / Short label for command 'quit application'
+#: src/player.vala:71
+msgid "Quit"
+msgstr "Bezárás"
+
+#. / Initial notification
+#: src/player.vala:166
+msgid "Version"
+msgstr "Verzió"
+
+#. / Shown in notification if both artist and album are unknown
+#: src/player.vala:301
+msgid "by unknown artist"
+msgstr "ismeretlen előadó"
+
+#. / Shown in notification if artist is unknown, %s will be replaced by album name
+#: src/player.vala:305
+msgid "by unknown artist from %s"
+msgstr "ismeretlen előadó %s albuma"
+
+#. / Shown in notification if album is unknown, %s will be replaced by artist name
+#: src/player.vala:309
+msgid "by %s"
+msgstr "előadó: %s"
+
+#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
+#: src/player.vala:313
+msgid "by %1$s from %2$s"
+msgstr "%1$ %2$ albumáról"
+
+#. / Shown in Service selector if service doesn't provide description
+#: src/service.vala:189
+msgid "No description provided for this service."
+msgstr "Nem találom a szolgáltatás leírását"
+
+#. / Shown as heading in Service selector
+#: src/service.vala:193
+msgid "Select cloud music service"
+msgstr "Válassz zenei felhő-szolgáltatást"
+
+#. / Shown as label of Cancel button in Service selector
+#: src/service.vala:197
+msgid "Cancel"
+msgstr "Mégsem"
+
+#. / Menu Service
+#: src/gui/actions.vala:110
+msgid "_Service"
+msgstr "_Szolgáltatás"
+
+#. / Menu item to switch service
+#: src/gui/actions.vala:117
+msgid "_Switch Service"
+msgstr "_Szolgáltatás váltás"
+
+#. / Menu Control
+#: src/gui/actions.vala:121
+msgid "_Control"
+msgstr "_Vezérlés"
+
+#. / Menu View
+#: src/gui/actions.vala:128
+msgid "_View"
+msgstr "_Nézet"
+
+#. / Menu Options
+#: src/gui/actions.vala:135
+msgid "_Options"
+msgstr "Beállítás_ok"
+
+#. / Menu item to purge cookies
+#. / Crash dialog
+#: src/gui/actions.vala:137 src/gui/windows.vala:243
+msgid "Purge cookies"
+msgstr "Sütik törlése"
+
+#. / Menu item to purge album art cache
+#: src/gui/actions.vala:139
+msgid "Purge album art"
+msgstr "Album boritók törlése"
+
+#. / Menu item to purge browser cache
+#. / Crash dialog
+#: src/gui/actions.vala:141 src/gui/windows.vala:248
+msgid "Purge browser cache"
+msgstr "Bögésző gyorsítótár üritése"
+
+#. / Menu Help
+#: src/gui/actions.vala:146
+msgid "_Help"
+msgstr "Súgó (_H)"
+
+#. / Menu item to open online help
+#: src/gui/actions.vala:148
+msgid "Get help online"
+msgstr "Online segítség"
+
+#. / Menu item to open bug/issue tracker
+#: src/gui/actions.vala:150
+msgid "Report a problem"
+msgstr "Probléma jelentése"
+
+#. / Menu item to open feature requests tracker
+#: src/gui/actions.vala:152
+msgid "Suggest new feature"
+msgstr "Új fukció javaslata"
+
+#. / Menu item to open page with information about donations
+#: src/gui/actions.vala:154
+msgid "Donate"
+msgstr "Támogatás"
+
+#. / Menu item to open Nuvola's page on Google+ social network
+#: src/gui/actions.vala:156
+msgid "Google+ page"
+msgstr "Google+ oldal"
+
+#. / Menu item to open Nuvola's page on Facebook social network
+#: src/gui/actions.vala:158
+msgid "Facebook page"
+msgstr "Facebook oldal"
+
+#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
+#: src/gui/actions.vala:162
+msgid "Nuvola Menu"
+msgstr "Nuvola menü"
+
+#. / Menu item to show both menu bar and tool bar
+#: src/gui/actions.vala:170
+msgid "Both menubar and toolbar"
+msgstr "Menü- és eszközsáv is"
+
+#. / Menu item to show only menu bar, tool bar is hidden
+#: src/gui/actions.vala:172
+msgid "Only menubar"
+msgstr "Csak menüsáv"
+
+#. / Menu item to show only tool bar, menu bar is hidden
+#: src/gui/actions.vala:174
+msgid "Only toolbar"
+msgstr "Csak eszközsáv"
+
+#. / Menu item to open web page about the current release
+#: src/gui/actions.vala:183
+msgid "About release %s"
+msgstr "A %s verzióról"
+
+#. / Preferences dialog title
+#: src/gui/preferences.vala:33
+msgid "Preferences"
+msgstr "Testreszabás"
+
+#. / Settings dialog, tab General
+#: src/gui/preferences.vala:88
+msgid "General"
+msgstr "Általános"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:91
+msgid "Handle multimedia keys."
+msgstr "Mutlimédia gombok kezelése"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:97
+msgid "Use Pause (break) key to toggle play/pause"
+msgstr "Szünet (Pause) gombbal a lejátszás megállítása/elindítása"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:103
+msgid "Show notifications."
+msgstr "Értesítések megjelenítése"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:109
+msgid "Hide window if close button is pressed"
+msgstr "Az ablak elrejtése a Bezárás gombbal"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:114
+msgid "Always (may require tray icon)"
+msgstr "Mindig (tálca ikonra lehet szükség)"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:117
+msgid "Only if music is playing (may require tray icon)"
+msgstr "Csak ha zenét játszik (tálca ikonra lehet szükség)"
+
+#. / Settings dialog - tab General
+#. / Settings dialog - tab General, never show tray icon
+#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
+msgid "Never"
+msgstr "Soha"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:134
+msgid "Show tray icon"
+msgstr "Tálca ikon megjelenítése"
+
+#. / Settings dialog - tab General, always show tray icon
+#: src/gui/preferences.vala:139
+msgid "Always"
+msgstr "Mindig"
+
+#. / Settings dialog - tab General, show tray icon if needed
+#: src/gui/preferences.vala:142
+msgid "If needed"
+msgstr "Ha szükséges"
+
+#. / Settings dialog tab
+#: src/gui/preferences.vala:163
+msgid "Network"
+msgstr "Hálózat"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:166
+msgid ""
+"Some cloud music services don't work with automatic settings and may require "
+"manual SOCKS proxy settings. New proxy settings is applied after restart of "
+"Nuvola Player."
+msgstr ""
+"Néhány zenei felhő-szolgáltatás nem működik automatikus beállításokkal és "
+"kézi SOCKS proxy beállítást igényelhet. Az új proxy beállítások a Nuvola "
+"Lejátszó újraindítása után lépnek csak érvénybe."
+
+#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
+#: src/gui/preferences.vala:175
+msgid ""
+"<b>Warning:</b> A version of a library used for network connection contained "
+"in your system has issues with HTTPS proxy support and it may cause crash of "
+"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
+msgstr ""
+"<b>FIGYELEM:</b> A rendszeren található egyik szoftevr könyvtár verziójának "
+"probláémái vannak a HTTP(S) proxy-k használatával és a Nuvola Lejátszó "
+"összeomlását okozhatja. Erősen ellenjavalt a HTTP(S) proxy használata."
+
+#. / Settings dialog - tab Network, shown if tsocks library was not detected
+#: src/gui/preferences.vala:185
+msgid ""
+"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
+"may not be supported."
+msgstr ""
+"<b>MEGJEGYZÉS:</b> A <a href='%s'>TSOCKS szoftver könyvtár</a>nem található. "
+"A SOCKS proxy támogatás nem biztos, hogy működni fog."
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:195
+msgid "Use direct connection without a proxy server"
+msgstr "Közvetlen kapcsolat használata proxy nélkül."
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:199
+msgid "Use system HTTP(S) proxy settings"
+msgstr "A redszer HTTP(S) proxy beállításainak használata."
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:203
+msgid "Use manual proxy settings"
+msgstr "Kézi proxy beállítás"
+
+#: src/gui/preferences.vala:212
+msgid "Proxy Type"
+msgstr "Proxy típusa"
+
+#. / Settings dialog - tab Network, proxy type HTTP(S)
+#: src/gui/preferences.vala:215
+msgid "HTTP(S)"
+msgstr "HTTP(S)"
+
+#. / Settings dialog - tab Network, proxy type SOCKS
+#: src/gui/preferences.vala:218
+msgid "SOCKS"
+msgstr "SOCKS"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:228
+msgid "Proxy Server"
+msgstr "Proxy-kiszolgáló"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:238
+msgid "Proxy Server Port"
+msgstr "Proxy-kiszolgáló port"
+
+#. / Settings dialog, tab User Scripts
+#: src/gui/preferences.vala:280
+msgid "User scripts"
+msgstr "Felhasználói szkriptek"
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:283
+msgid ""
+"User scripts are used to enhance web interface of cloud music services."
+msgstr ""
+"A felhasználói szkriptek a zenei felhő-szolgáltatások webes felületeinek "
+"feljavítására szolgálnak."
+
+#. / Settings dialog - tab User Scripts, warning
+#: src/gui/preferences.vala:291
+msgid ""
+"<b>Warning:</b> Support for user scripts is incomplete and experimental. It "
+"may be removed in future releases. User script can send data to third "
+"parties, install only trustworthy user scripts."
+msgstr ""
+"<b>FIGYELEM:</b> A felhasználói szkriptek támogatás nem teljes és kísérleti "
+"stádiumban van. Akár eltávolÍtásra is kerülhet a későbbi verziókban. Egy "
+"felhasználói szkript adatokat küldhet harmadik fél számára is ezért csak "
+"megbízható forrásból származót telepítsen."
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:301
+msgid "You have to select service to configure user scripts."
+msgstr "Válasszon szolgáltatást a felhasználói szkriptek beállításához."
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:310
+msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
+msgstr ""
+"A <b>%s</b> szolgáltatáshoz engedélyezett felhasználói szkriptek vesszővel "
+"elválasztva:"
+
+#. / Settings dialog - tab User Scripts, button to open user scripts directory
+#: src/gui/preferences.vala:325
+msgid "Open user scripts directory"
+msgstr "Felhasználói szkriptek mappája"
+
+#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
+#: src/gui/windows.vala:63
+msgid ""
+"You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a "
+"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
+"<a href='%4$s'>stable and beta builds</a>.</i>"
+msgstr ""
+"<b>nem stabil %1$s</b> verzió. <a href='%2$s'>Hiba jelentése</a>. <a "
+"href='%3$s'>Változás lista</a>. <i>Ez az eszköztár nem jelenik meg <a "
+"href='%4$s'>stabil és beta verziókban</a>.</i>"
+
+#. / Shown in the About Nuvola Player dialog
+#: src/gui/windows.vala:163
+msgid "Cloud music integration for your Linux desktop"
+msgstr "Felhő-zene integráció Linux asztali környezethez"
+
+#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
+#: src/gui/windows.vala:165
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Peter Nagy https://launchpad.net/~antronin"
+
+#. / Title of the Crash dialog
+#: src/gui/windows.vala:205
+msgid "Nuvola Player Crash Dialog"
+msgstr "Nuvola Lejátszó Összeomlás Jelentő"
+
+#. / Crash dialog
+#: src/gui/windows.vala:220
+msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
+msgstr "<b>Az előző Nuvola Lejátszó folyamat nem lett lezárva rendesen.</b>"
+
+#. / Crash dialog
+#: src/gui/windows.vala:228
+msgid "You can try following options to solve this issue:"
+msgstr "A következő lehetőségeket próbálhatja ki ennek megoldására:"
+
+#. / Crash dialog
+#: src/gui/windows.vala:237
+msgid "Reset configuration"
+msgstr "A beállítások alapállapotba hozása"
+
+#. / Crash dialog
+#: src/gui/windows.vala:240
+msgid "Reset state of user interface"
+msgstr "Felhasználói felület alapállapotba hozása"
+
+#. / Crash dialog
+#: src/gui/windows.vala:254
+msgid "Disable HTTP(S) proxy"
+msgstr "HTTP(S) proxy kikapcsolása"
+
+#. / Crash dialog
+#: src/gui/windows.vala:259
+msgid ""
+"Cloud music services use Flash to play music. Unfortunately, Flash Player is "
+"known not to be very stable and may cause crash of Nuvola Player. Please "
+"visit <a href='%s'>Flash troubleshooting</a>"
+msgstr ""
+"A zenei felhő-szolgáltatások flash-t használnak a zene lejátszására. Sajnos "
+"a Flash Player híresen instabil és a Nuvola Lejátszó összeomlását okozhatja. "
+"Kérem tekintse meg a <a href='%s'>Flash hibaelhárítót</a>."
=== modified file 'translations/ms.po'
--- translations/ms.po 2012-02-13 19:25:11 +0000
+++ translations/ms.po 2012-06-15 15:20:27 +0000
@@ -8,19 +8,29 @@
"Project-Id-Version: nuvola-player\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+<<<<<<< TREE
"PO-Revision-Date: 2012-01-07 19:14+0000\n"
"Last-Translator: abuyop <Unknown>\n"
+=======
+"PO-Revision-Date: 2012-03-19 00:34+0000\n"
+"Last-Translator: abuyop <Unknown>\n"
+>>>>>>> MERGE-SOURCE
"Language-Team: Malay <ms@xxxxxx>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+<<<<<<< TREE
"X-Launchpad-Export-Date: 2012-01-08 05:35+0000\n"
"X-Generator: Launchpad (build 14640)\n"
+=======
+"X-Launchpad-Export-Date: 2012-03-20 05:54+0000\n"
+"X-Generator: Launchpad (build 14969)\n"
+>>>>>>> MERGE-SOURCE
#. / Shown if unsupported command line argument is used
#: src/main.vala:194
msgid "Error: Option parsing failed:"
-msgstr ""
+msgstr "Ralat: Penghuraian pilihan gagal:"
#. / Short label for command 'start or resume playback'
#: src/player.vala:57
@@ -70,12 +80,12 @@
#. / Shown in notification if both artist and album are unknown
#: src/player.vala:301
msgid "by unknown artist"
-msgstr ""
+msgstr "oleh artis tidak diketahui"
#. / Shown in notification if artist is unknown, %s will be replaced by album name
#: src/player.vala:305
msgid "by unknown artist from %s"
-msgstr ""
+msgstr "oleh artis tidak diketahui dari %s"
#. / Shown in notification if album is unknown, %s will be replaced by artist name
#: src/player.vala:309
@@ -85,17 +95,17 @@
#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
#: src/player.vala:313
msgid "by %1$s from %2$s"
-msgstr ""
+msgstr "oleh %1$s dari %2$s"
#. / Shown in Service selector if service doesn't provide description
#: src/service.vala:189
msgid "No description provided for this service."
-msgstr ""
+msgstr "Tiada keterangan disediakan oleh perkhidmatan ini."
#. / Shown as heading in Service selector
#: src/service.vala:193
msgid "Select cloud music service"
-msgstr ""
+msgstr "Pilih perkhidmatan muzik awan"
#. / Shown as label of Cancel button in Service selector
#: src/service.vala:197
@@ -105,27 +115,27 @@
#. / Menu Service
#: src/gui/actions.vala:110
msgid "_Service"
-msgstr ""
+msgstr "Pe_rkhidmatan"
#. / Menu item to switch service
#: src/gui/actions.vala:117
msgid "_Switch Service"
-msgstr ""
+msgstr "T_ukar Perkhidmatan"
#. / Menu Control
#: src/gui/actions.vala:121
msgid "_Control"
-msgstr ""
+msgstr "Ka_walan"
#. / Menu View
#: src/gui/actions.vala:128
msgid "_View"
-msgstr ""
+msgstr "_Lihat"
#. / Menu Options
#: src/gui/actions.vala:135
msgid "_Options"
-msgstr ""
+msgstr "_Pilihan"
#. / Menu item to purge cookies
#. / Crash dialog
@@ -136,7 +146,7 @@
#. / Menu item to purge album art cache
#: src/gui/actions.vala:139
msgid "Purge album art"
-msgstr ""
+msgstr "Singkir seni album"
#. / Menu item to purge browser cache
#. / Crash dialog
@@ -147,22 +157,22 @@
#. / Menu Help
#: src/gui/actions.vala:146
msgid "_Help"
-msgstr ""
+msgstr "_Bantuan"
#. / Menu item to open online help
#: src/gui/actions.vala:148
msgid "Get help online"
-msgstr ""
+msgstr "Dapatkan bantuan atas talian"
#. / Menu item to open bug/issue tracker
#: src/gui/actions.vala:150
msgid "Report a problem"
-msgstr ""
+msgstr "Laporkan masalah"
#. / Menu item to open feature requests tracker
#: src/gui/actions.vala:152
msgid "Suggest new feature"
-msgstr ""
+msgstr "Cadang fitur baru"
#. / Menu item to open page with information about donations
#: src/gui/actions.vala:154
@@ -182,22 +192,22 @@
#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
#: src/gui/actions.vala:162
msgid "Nuvola Menu"
-msgstr ""
+msgstr "Menu Nuvola"
#. / Menu item to show both menu bar and tool bar
#: src/gui/actions.vala:170
msgid "Both menubar and toolbar"
-msgstr ""
+msgstr "Kedua-dua palang menu dan palang alat"
#. / Menu item to show only menu bar, tool bar is hidden
#: src/gui/actions.vala:172
msgid "Only menubar"
-msgstr ""
+msgstr "Hanya palang menu"
#. / Menu item to show only tool bar, menu bar is hidden
#: src/gui/actions.vala:174
msgid "Only toolbar"
-msgstr ""
+msgstr "Hanya palang alat"
#. / Menu item to open web page about the current release
#: src/gui/actions.vala:183
@@ -207,7 +217,7 @@
#. / Preferences dialog title
#: src/gui/preferences.vala:33
msgid "Preferences"
-msgstr ""
+msgstr "Keutamaan"
#. / Settings dialog, tab General
#: src/gui/preferences.vala:88
@@ -227,48 +237,48 @@
#. / Settings dialog - tab General
#: src/gui/preferences.vala:103
msgid "Show notifications."
-msgstr ""
+msgstr "Papar pemberitahuan."
#. / Settings dialog - tab General
#: src/gui/preferences.vala:109
msgid "Hide window if close button is pressed"
-msgstr ""
+msgstr "Sembunyi tetingkap jika butang tutup ditekan"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:114
msgid "Always (may require tray icon)"
-msgstr ""
+msgstr "Sentiasa (mungkin memerlukan ikon talam)"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:117
msgid "Only if music is playing (may require tray icon)"
-msgstr ""
+msgstr "Hanya jika muzik dimainkan (mungkin memerlukan ikon talam)"
#. / Settings dialog - tab General
#. / Settings dialog - tab General, never show tray icon
#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
msgid "Never"
-msgstr ""
+msgstr "Tidak Sesekali"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:134
msgid "Show tray icon"
-msgstr ""
+msgstr "Papar ikon talam"
#. / Settings dialog - tab General, always show tray icon
#: src/gui/preferences.vala:139
msgid "Always"
-msgstr ""
+msgstr "Sentiasa"
#. / Settings dialog - tab General, show tray icon if needed
#: src/gui/preferences.vala:142
msgid "If needed"
-msgstr ""
+msgstr "Jika diperlukan"
#. / Settings dialog tab
#: src/gui/preferences.vala:163
msgid "Network"
-msgstr ""
+msgstr "Rangkaian"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:166
@@ -277,6 +287,9 @@
"manual SOCKS proxy settings. New proxy settings is applied after restart of "
"Nuvola Player."
msgstr ""
+"Beberapa perkhidmatan muzik awan tidak berfungsi dengan tetapan automatik "
+"dan mungkin memerlukan tetapan proksi SOCKS manual. Tetapan proksi baru "
+"dilaksanakan selepas mula semula Pemain Nuvola."
#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
#: src/gui/preferences.vala:175
@@ -285,6 +298,10 @@
"in your system has issues with HTTPS proxy support and it may cause crash of "
"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
msgstr ""
+"<b>Amaran:</b> Versi pustaka yang digunakan untuk sambungan rangkaian "
+"terkandung dalam sistem anda mempunyai isu dengan sokongan proksi dan ia "
+"mungkin menyebabkan kerosakan pada Pemain Nuvola. Adalah sangat disarankan "
+"tidak menggunakan tetapan Proksi HTTP(S)."
#. / Settings dialog - tab Network, shown if tsocks library was not detected
#: src/gui/preferences.vala:185
@@ -292,45 +309,47 @@
"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
"may not be supported."
msgstr ""
+"<b>Perhatian:</b> <a href='%s'>TSOCKS library</a> tidak dikesan. Proksi "
+"SOCKS mungkin tidak disokong."
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:195
msgid "Use direct connection without a proxy server"
-msgstr ""
+msgstr "Guna sambungan langsung tanpa pelayan proksi"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:199
msgid "Use system HTTP(S) proxy settings"
-msgstr ""
+msgstr "Guna tetapan proksi HTTP(S) sistem"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:203
msgid "Use manual proxy settings"
-msgstr ""
+msgstr "Guna tetapan proksi manual"
#: src/gui/preferences.vala:212
msgid "Proxy Type"
-msgstr ""
+msgstr "Jenis Proksi"
#. / Settings dialog - tab Network, proxy type HTTP(S)
#: src/gui/preferences.vala:215
msgid "HTTP(S)"
-msgstr ""
+msgstr "HTTP(S)"
#. / Settings dialog - tab Network, proxy type SOCKS
#: src/gui/preferences.vala:218
msgid "SOCKS"
-msgstr ""
+msgstr "SOCKS"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:228
msgid "Proxy Server"
-msgstr ""
+msgstr "Pelayan Proksi"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:238
msgid "Proxy Server Port"
-msgstr ""
+msgstr "Port Pelayan Proksi"
#. / Settings dialog, tab User Scripts
#: src/gui/preferences.vala:280
@@ -342,6 +361,8 @@
msgid ""
"User scripts are used to enhance web interface of cloud music services."
msgstr ""
+"Skrip pengguna digunakan untuk tingkatkan antaramuka sesawang bagi "
+"perkhidmatan muzik awan."
#. / Settings dialog - tab User Scripts, warning
#: src/gui/preferences.vala:291
@@ -350,21 +371,27 @@
"may be removed in future releases. User script can send data to third "
"parties, install only trustworthy user scripts."
msgstr ""
+"<b>Amaran:</b> Sokongan untuk skrip pengguna tidak lengkap dan masih dalam "
+"eksperimen. Ia mungkin dibuang dalam keluaran akan datan. Skrip pengguna "
+"boleh menghantar data ke pihak ketiga, hanya pasang skrip pengguna yang "
+"dipercayai sahaja."
#. / Settings dialog - tab User Scripts
#: src/gui/preferences.vala:301
msgid "You have to select service to configure user scripts."
-msgstr ""
+msgstr "Anda mesti pilih perkhidmatan untuk konfigur skrip pengguna."
#. / Settings dialog - tab User Scripts
#: src/gui/preferences.vala:310
msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
msgstr ""
+"Senarai terpisah-koma bagi skrip pengguna yang dibenarkan untuk perkhidmatan "
+"<b>%s</b>:"
#. / Settings dialog - tab User Scripts, button to open user scripts directory
#: src/gui/preferences.vala:325
msgid "Open user scripts directory"
-msgstr ""
+msgstr "Buka direktori skrip pengguna"
#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
#: src/gui/windows.vala:63
@@ -373,49 +400,58 @@
"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
"<a href='%4$s'>stable and beta builds</a>.</i>"
msgstr ""
+"Anda sedang menjalankan <b>binaan tidak stabil %1$s</b>. <a "
+"href='%2$s'>Laporakn masalah</a>. <a href='%3$s'>Lihat log penukaran</a>. "
+"<i>Palang ini tidak dipaparkan dalam <a href='%4$s'>binaan stabil dan "
+"beta</a>.</i>"
#. / Shown in the About Nuvola Player dialog
#: src/gui/windows.vala:163
msgid "Cloud music integration for your Linux desktop"
-msgstr ""
+msgstr "Penyepaduan muzik awan untuk desktop Linux anda"
#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
#: src/gui/windows.vala:165
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
+<<<<<<< TREE
" Jiří Janoušek https://launchpad.net/~janousek.jiri\n"
" abuyop https://launchpad.net/~abuyop"
+=======
+" Jiří Janoušek https://launchpad.net/~fenryxo\n"
+" abuyop https://launchpad.net/~abuyop"
+>>>>>>> MERGE-SOURCE
#. / Title of the Crash dialog
#: src/gui/windows.vala:205
msgid "Nuvola Player Crash Dialog"
-msgstr ""
+msgstr "Dialog Kerosakan Pemain Nuvola"
#. / Crash dialog
#: src/gui/windows.vala:220
msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
-msgstr ""
+msgstr "<b>Sesi Pemain Nuvola terdahulu tidak ditutup dengan betul.</b>"
#. / Crash dialog
#: src/gui/windows.vala:228
msgid "You can try following options to solve this issue:"
-msgstr ""
+msgstr "Anda boleh cuba pilihan berikut untuk leraikan isu ini:"
#. / Crash dialog
#: src/gui/windows.vala:237
msgid "Reset configuration"
-msgstr ""
+msgstr "Tetap semula konfigurasi"
#. / Crash dialog
#: src/gui/windows.vala:240
msgid "Reset state of user interface"
-msgstr ""
+msgstr "Tetap semula keadaan antaramuka pengguna"
#. / Crash dialog
#: src/gui/windows.vala:254
msgid "Disable HTTP(S) proxy"
-msgstr ""
+msgstr "Lumpuhkan proksi HTTP(S)"
#. / Crash dialog
#: src/gui/windows.vala:259
@@ -424,3 +460,6 @@
"known not to be very stable and may cause crash of Nuvola Player. Please "
"visit <a href='%s'>Flash troubleshooting</a>"
msgstr ""
+"Perkkhidmatan muzik awan menggunakan Flash untuk main muzik. Malangnya, "
+"Pemain Flash yang diketahui tidak stabil dan mungkin menyebabkan kerosakan "
+"pada Pemain Nuvola. Sila lawati <a href='%s'>Pencarisilapan Flash</a>"
=== modified file 'translations/nl.po'
--- translations/nl.po 2012-02-13 19:25:11 +0000
+++ translations/nl.po 2012-06-15 15:20:27 +0000
@@ -8,14 +8,24 @@
"Project-Id-Version: nuvola-player\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+<<<<<<< TREE
"PO-Revision-Date: 2012-02-02 22:11+0000\n"
"Last-Translator: Hoster <Unknown>\n"
+=======
+"PO-Revision-Date: 2012-03-13 16:16+0000\n"
+"Last-Translator: Yop Spanjers <Unknown>\n"
+>>>>>>> MERGE-SOURCE
"Language-Team: Dutch <nl@xxxxxx>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+<<<<<<< TREE
"X-Launchpad-Export-Date: 2012-02-03 06:29+0000\n"
"X-Generator: Launchpad (build 14738)\n"
+=======
+"X-Launchpad-Export-Date: 2012-03-14 05:43+0000\n"
+"X-Generator: Launchpad (build 14933)\n"
+>>>>>>> MERGE-SOURCE
#. / Shown if unsupported command line argument is used
#: src/main.vala:194
@@ -95,7 +105,7 @@
#. / Shown as heading in Service selector
#: src/service.vala:193
msgid "Select cloud music service"
-msgstr "Selecteer de muziek service"
+msgstr "Selecteer de online muziek service"
#. / Shown as label of Cancel button in Service selector
#: src/service.vala:197
@@ -237,12 +247,13 @@
#. / Settings dialog - tab General
#: src/gui/preferences.vala:114
msgid "Always (may require tray icon)"
-msgstr ""
+msgstr "Altijd (misschien een taakbalk icoon vereist)"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:117
msgid "Only if music is playing (may require tray icon)"
msgstr ""
+"Alleen als er muziek word afgespeeld (wellicht een taakbalk icoon vereist)"
#. / Settings dialog - tab General
#. / Settings dialog - tab General, never show tray icon
@@ -277,6 +288,9 @@
"manual SOCKS proxy settings. New proxy settings is applied after restart of "
"Nuvola Player."
msgstr ""
+"Sommige cloud muziek diensten werken misschien niet met automatische "
+"instellingen en vereisen misschien handmatige SOCKS proxy instellingen. "
+"Nieuwe proxy instellingen zijn toegepast na het herstarten van Nuvola Player."
#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
#: src/gui/preferences.vala:175
@@ -384,9 +398,15 @@
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
+<<<<<<< TREE
" Hoster https://launchpad.net/~yopspanjers\n"
" Jiří Janoušek https://launchpad.net/~fenryxo\n"
" Sander Deryckere https://launchpad.net/~sanderd17"
+=======
+" Jiří Janoušek https://launchpad.net/~fenryxo\n"
+" Sander Deryckere https://launchpad.net/~sanderd17\n"
+" Yop Spanjers https://launchpad.net/~yopspanjers"
+>>>>>>> MERGE-SOURCE
#. / Title of the Crash dialog
#: src/gui/windows.vala:205
=== modified file 'translations/pt_BR.po'
--- translations/pt_BR.po 2011-12-17 22:35:50 +0000
+++ translations/pt_BR.po 2012-06-15 15:20:27 +0000
@@ -8,24 +8,24 @@
"Project-Id-Version: nuvola-player\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-16 10:33+0100\n"
-"PO-Revision-Date: 2011-12-16 11:57+0000\n"
-"Last-Translator: Jiří Janoušek <janousek.jiri@xxxxxxxxx>\n"
+"PO-Revision-Date: 2012-03-28 15:55+0000\n"
+"Last-Translator: Belenos Govannnon <Unknown>\n"
"Language-Team: Brazilian Portuguese <pt_BR@xxxxxx>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-12-17 07:02+0000\n"
-"X-Generator: Launchpad (build 14525)\n"
+"X-Launchpad-Export-Date: 2012-03-29 05:21+0000\n"
+"X-Generator: Launchpad (build 15032)\n"
#. / Shown if unsupported command line argument is used
#: src/main.vala:194
msgid "Error: Option parsing failed:"
-msgstr ""
+msgstr "Erro: falha ao executar opção:"
#. / Short label for command 'start or resume playback'
#: src/player.vala:57
msgid "Play"
-msgstr "Tocar"
+msgstr "Play"
#. / Short label for command 'pause playback'
#: src/player.vala:59
@@ -45,22 +45,22 @@
#. / Short label for command 'thumb up' or 'like this song' (see Google Music buttons)
#: src/player.vala:65
msgid "Thumbs Up"
-msgstr ""
+msgstr "Curtir"
#. / Short label for command 'thumb down' or 'dislike this song' (see Google Music buttons)
#: src/player.vala:67
msgid "Thumbs Down"
-msgstr ""
+msgstr "Não curtir"
#. / Short label for command 'add this song to favorites'
#: src/player.vala:69
msgid "Favorite"
-msgstr ""
+msgstr "Favorito"
#. / Short label for command 'quit application'
#: src/player.vala:71
msgid "Quit"
-msgstr "Sair"
+msgstr "Fechar"
#. / Initial notification
#: src/player.vala:166
@@ -70,12 +70,12 @@
#. / Shown in notification if both artist and album are unknown
#: src/player.vala:301
msgid "by unknown artist"
-msgstr ""
+msgstr "por Artista Desconhecido"
#. / Shown in notification if artist is unknown, %s will be replaced by album name
#: src/player.vala:305
msgid "by unknown artist from %s"
-msgstr ""
+msgstr "por Artista Desconhecido - %s"
#. / Shown in notification if album is unknown, %s will be replaced by artist name
#: src/player.vala:309
@@ -85,129 +85,129 @@
#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
#: src/player.vala:313
msgid "by %1$s from %2$s"
-msgstr ""
+msgstr "por %1$s - %2$s"
#. / Shown in Service selector if service doesn't provide description
#: src/service.vala:189
msgid "No description provided for this service."
-msgstr ""
+msgstr "Nenhuma descrição para este serviço."
#. / Shown as heading in Service selector
#: src/service.vala:193
msgid "Select cloud music service"
-msgstr ""
+msgstr "Selecione o serviço de música online"
#. / Shown as label of Cancel button in Service selector
#: src/service.vala:197
msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
#. / Menu Service
#: src/gui/actions.vala:110
msgid "_Service"
-msgstr ""
+msgstr "_Serviço"
#. / Menu item to switch service
#: src/gui/actions.vala:117
msgid "_Switch Service"
-msgstr ""
+msgstr "_Alterar serviço"
#. / Menu Control
#: src/gui/actions.vala:121
msgid "_Control"
-msgstr ""
+msgstr "_Controle"
#. / Menu View
#: src/gui/actions.vala:128
msgid "_View"
-msgstr ""
+msgstr "_Exibir"
#. / Menu Options
#: src/gui/actions.vala:135
msgid "_Options"
-msgstr ""
+msgstr "_Opções"
#. / Menu item to purge cookies
#. / Crash dialog
#: src/gui/actions.vala:137 src/gui/windows.vala:243
msgid "Purge cookies"
-msgstr ""
+msgstr "Limpar cookies"
#. / Menu item to purge album art cache
#: src/gui/actions.vala:139
msgid "Purge album art"
-msgstr ""
+msgstr "Limpar capas de álbuns"
#. / Menu item to purge browser cache
#. / Crash dialog
#: src/gui/actions.vala:141 src/gui/windows.vala:248
msgid "Purge browser cache"
-msgstr ""
+msgstr "Limpar o cache do navegador"
#. / Menu Help
#: src/gui/actions.vala:146
msgid "_Help"
-msgstr ""
+msgstr "_Ajuda"
#. / Menu item to open online help
#: src/gui/actions.vala:148
msgid "Get help online"
-msgstr ""
+msgstr "Obter ajuda online"
#. / Menu item to open bug/issue tracker
#: src/gui/actions.vala:150
msgid "Report a problem"
-msgstr ""
+msgstr "Relatar problema"
#. / Menu item to open feature requests tracker
#: src/gui/actions.vala:152
msgid "Suggest new feature"
-msgstr ""
+msgstr "Sugira uma nova função"
#. / Menu item to open page with information about donations
#: src/gui/actions.vala:154
msgid "Donate"
-msgstr ""
+msgstr "Faça uma Doação"
#. / Menu item to open Nuvola's page on Google+ social network
#: src/gui/actions.vala:156
msgid "Google+ page"
-msgstr ""
+msgstr "Página no Google+"
#. / Menu item to open Nuvola's page on Facebook social network
#: src/gui/actions.vala:158
msgid "Facebook page"
-msgstr ""
+msgstr "Página no Facebook"
#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
#: src/gui/actions.vala:162
msgid "Nuvola Menu"
-msgstr ""
+msgstr "Menu do Nuvola"
#. / Menu item to show both menu bar and tool bar
#: src/gui/actions.vala:170
msgid "Both menubar and toolbar"
-msgstr ""
+msgstr "Barra de menu e barra de ferramentas"
#. / Menu item to show only menu bar, tool bar is hidden
#: src/gui/actions.vala:172
msgid "Only menubar"
-msgstr ""
+msgstr "Apenas a barra de menu"
#. / Menu item to show only tool bar, menu bar is hidden
#: src/gui/actions.vala:174
msgid "Only toolbar"
-msgstr ""
+msgstr "Apenas a barra de ferramentas"
#. / Menu item to open web page about the current release
#: src/gui/actions.vala:183
msgid "About release %s"
-msgstr ""
+msgstr "Sobre a versão %s"
#. / Preferences dialog title
#: src/gui/preferences.vala:33
msgid "Preferences"
-msgstr ""
+msgstr "Preferências"
#. / Settings dialog, tab General
#: src/gui/preferences.vala:88
@@ -217,58 +217,58 @@
#. / Settings dialog - tab General
#: src/gui/preferences.vala:91
msgid "Handle multimedia keys."
-msgstr "Manipular teclas de multimídia."
+msgstr "Usar teclas multimídia"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:97
msgid "Use Pause (break) key to toggle play/pause"
-msgstr "Use a tecla Pause(break) para alternar entre tocar/pausar"
+msgstr "Usar a tecla Pause para tocar/pausar"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:103
msgid "Show notifications."
-msgstr ""
+msgstr "Exibir notificações"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:109
msgid "Hide window if close button is pressed"
-msgstr ""
+msgstr "Esconder a janela ao fechar"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:114
msgid "Always (may require tray icon)"
-msgstr ""
+msgstr "Sempre (ícone de notificação será exibido)"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:117
msgid "Only if music is playing (may require tray icon)"
-msgstr ""
+msgstr "Ao reproduzir (ícone de notificação será exibido)"
#. / Settings dialog - tab General
#. / Settings dialog - tab General, never show tray icon
#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
msgid "Never"
-msgstr ""
+msgstr "Nunca"
#. / Settings dialog - tab General
#: src/gui/preferences.vala:134
msgid "Show tray icon"
-msgstr ""
+msgstr "Mostrar ícone de notificação"
#. / Settings dialog - tab General, always show tray icon
#: src/gui/preferences.vala:139
msgid "Always"
-msgstr ""
+msgstr "Sempre"
#. / Settings dialog - tab General, show tray icon if needed
#: src/gui/preferences.vala:142
msgid "If needed"
-msgstr ""
+msgstr "Se necessário"
#. / Settings dialog tab
#: src/gui/preferences.vala:163
msgid "Network"
-msgstr ""
+msgstr "Rede"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:166
@@ -277,6 +277,9 @@
"manual SOCKS proxy settings. New proxy settings is applied after restart of "
"Nuvola Player."
msgstr ""
+"Alguns serviços de música online não funcionarão com configurações "
+"automáticas e requerem configurações manuais de proxy SOCKS. Novas "
+"configurações de proxy serão aplicadas após reiniciar o Nuvola Player."
#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
#: src/gui/preferences.vala:175
@@ -285,6 +288,10 @@
"in your system has issues with HTTPS proxy support and it may cause crash of "
"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
msgstr ""
+"<b>Atenção:</b> Uma versão da biblioteca usada para a conexão de rede em seu "
+"sistema está com erros de suporte no proxy HTTPS e pode fazer com que o "
+"Nuvola Player pare de funcionar. O uso de configuração de proxy HTTP(S) não "
+"é recomendado."
#. / Settings dialog - tab Network, shown if tsocks library was not detected
#: src/gui/preferences.vala:185
@@ -292,56 +299,60 @@
"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
"may not be supported."
msgstr ""
+"<b>Atenção:</b> Nenhuma <a href='%s'>bliblioteca TSOCKS</a> foi encontrada. "
+"Proxy SOCKS não é suportado."
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:195
msgid "Use direct connection without a proxy server"
-msgstr ""
+msgstr "Usar conexão direta, sem servidor proxy"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:199
msgid "Use system HTTP(S) proxy settings"
-msgstr ""
+msgstr "Usar sistema HTTP(S) de configuração de proxy"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:203
msgid "Use manual proxy settings"
-msgstr ""
+msgstr "Usar configuração manual de proxy"
#: src/gui/preferences.vala:212
msgid "Proxy Type"
-msgstr ""
+msgstr "Tipo de Proxy"
#. / Settings dialog - tab Network, proxy type HTTP(S)
#: src/gui/preferences.vala:215
msgid "HTTP(S)"
-msgstr ""
+msgstr "HTTP(S)"
#. / Settings dialog - tab Network, proxy type SOCKS
#: src/gui/preferences.vala:218
msgid "SOCKS"
-msgstr ""
+msgstr "SOCKS"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:228
msgid "Proxy Server"
-msgstr ""
+msgstr "Servidor Proxy"
#. / Settings dialog - tab Network
#: src/gui/preferences.vala:238
msgid "Proxy Server Port"
-msgstr ""
+msgstr "Porta do Servidor Proxy"
#. / Settings dialog, tab User Scripts
#: src/gui/preferences.vala:280
msgid "User scripts"
-msgstr ""
+msgstr "Scripts do usuário"
#. / Settings dialog - tab User Scripts
#: src/gui/preferences.vala:283
msgid ""
"User scripts are used to enhance web interface of cloud music services."
msgstr ""
+"Scripts do usuário são utilizados para aprimorar a interface web dos "
+"serviços de música online."
#. / Settings dialog - tab User Scripts, warning
#: src/gui/preferences.vala:291
@@ -350,21 +361,29 @@
"may be removed in future releases. User script can send data to third "
"parties, install only trustworthy user scripts."
msgstr ""
+"<b>Atenção:</b> O suporte a scripts do usuário está incompleto e é "
+"experimental, podendo ser removido em versões futuras. Os scripts do usuário "
+"podem enviar informações para terceiros — instale apenas scripts de sua "
+"confiança."
#. / Settings dialog - tab User Scripts
#: src/gui/preferences.vala:301
msgid "You have to select service to configure user scripts."
msgstr ""
+"Você deve primeiro selecionar o serviço, então configure os scripts de "
+"usuários."
#. / Settings dialog - tab User Scripts
#: src/gui/preferences.vala:310
msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
msgstr ""
+"Listas de scripts de usuário (separados por vírgula) ativos no serviço "
+"<b>%s</b>:"
#. / Settings dialog - tab User Scripts, button to open user scripts directory
#: src/gui/preferences.vala:325
msgid "Open user scripts directory"
-msgstr ""
+msgstr "Abrir o diretório dos scripts do usuário"
#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
#: src/gui/windows.vala:63
@@ -373,48 +392,55 @@
"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
"<a href='%4$s'>stable and beta builds</a>.</i>"
msgstr ""
+"Você está usando a <b>versão instável %1$s</b>. <a href='%2$s'>Reporte um "
+"bug</a>. <a href='%3$s'>Veja o changelog</a>. <i>Este aviso não é mostrado "
+"nas versões <a href='%4$s'>finais e beta</a>.</i>"
#. / Shown in the About Nuvola Player dialog
#: src/gui/windows.vala:163
msgid "Cloud music integration for your Linux desktop"
-msgstr ""
+msgstr "Integração de música online para seu desktop Linux."
#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
#: src/gui/windows.vala:165
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
-" Jiří Janoušek https://launchpad.net/~janousek.jiri"
+" Belenos Govannnon https://launchpad.net/~belenos\n"
+" Darlildo Lima https://launchpad.net/~darlildo-cefetce\n"
+" Jiří Janoušek https://launchpad.net/~fenryxo\n"
+" Ron Alon https://launchpad.net/~ro2342"
#. / Title of the Crash dialog
#: src/gui/windows.vala:205
msgid "Nuvola Player Crash Dialog"
-msgstr ""
+msgstr "Fechamento inesperado do Nuvola Player"
#. / Crash dialog
#: src/gui/windows.vala:220
msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
msgstr ""
+"<b>A sessão anterior do Nuvola Player não foi fechada corretamente.</b>"
#. / Crash dialog
#: src/gui/windows.vala:228
msgid "You can try following options to solve this issue:"
-msgstr ""
+msgstr "Você pode corrigir este problema com as opções a seguir:"
#. / Crash dialog
#: src/gui/windows.vala:237
msgid "Reset configuration"
-msgstr ""
+msgstr "Reiniciar Configuração"
#. / Crash dialog
#: src/gui/windows.vala:240
msgid "Reset state of user interface"
-msgstr ""
+msgstr "Resetar o estado da interface do usuário"
#. / Crash dialog
#: src/gui/windows.vala:254
msgid "Disable HTTP(S) proxy"
-msgstr ""
+msgstr "Desabilitar o proxy HTTP(S)"
#. / Crash dialog
#: src/gui/windows.vala:259
@@ -423,3 +449,7 @@
"known not to be very stable and may cause crash of Nuvola Player. Please "
"visit <a href='%s'>Flash troubleshooting</a>"
msgstr ""
+"Serviços de música na nuvem utilizam o Flash para tocar músicas. "
+"Infelizmente o Flash Player é conhecido por não ser muito estável e pode "
+"causar o fechamento inesperado do Nuvola Player. Por favor, visite a <a "
+"href='%s'>solução de problemas</a> do Flash."
=== added file 'translations/sq.po'
--- translations/sq.po 1970-01-01 00:00:00 +0000
+++ translations/sq.po 2012-06-15 15:20:27 +0000
@@ -0,0 +1,425 @@
+# Albanian translation for nuvola-player
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the nuvola-player package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nuvola-player\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+"PO-Revision-Date: 2012-03-25 19:19+0000\n"
+"Last-Translator: tomson <mendimiilire@xxxxxxxxx>\n"
+"Language-Team: Albanian <sq@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-03-26 05:33+0000\n"
+"X-Generator: Launchpad (build 15008)\n"
+
+#. / Shown if unsupported command line argument is used
+#: src/main.vala:194
+msgid "Error: Option parsing failed:"
+msgstr ""
+
+#. / Short label for command 'start or resume playback'
+#: src/player.vala:57
+msgid "Play"
+msgstr "Luaj"
+
+#. / Short label for command 'pause playback'
+#: src/player.vala:59
+msgid "Pause"
+msgstr "Pushim"
+
+#. / Short label for command 'skip to previous song'
+#: src/player.vala:61
+msgid "Previous song"
+msgstr "Kënga e mëparshme"
+
+#. / Short label for command 'skip to next song'
+#: src/player.vala:63
+msgid "Next song"
+msgstr "Kënga tjetër"
+
+#. / Short label for command 'thumb up' or 'like this song' (see Google Music buttons)
+#: src/player.vala:65
+msgid "Thumbs Up"
+msgstr "Më pëlqen kjo këngë"
+
+#. / Short label for command 'thumb down' or 'dislike this song' (see Google Music buttons)
+#: src/player.vala:67
+msgid "Thumbs Down"
+msgstr "S'më pëlqen kjo këngë"
+
+#. / Short label for command 'add this song to favorites'
+#: src/player.vala:69
+msgid "Favorite"
+msgstr "Parapëlqej"
+
+#. / Short label for command 'quit application'
+#: src/player.vala:71
+msgid "Quit"
+msgstr "Mbylle"
+
+#. / Initial notification
+#: src/player.vala:166
+msgid "Version"
+msgstr ""
+
+#. / Shown in notification if both artist and album are unknown
+#: src/player.vala:301
+msgid "by unknown artist"
+msgstr "prej artistit të panjohur"
+
+#. / Shown in notification if artist is unknown, %s will be replaced by album name
+#: src/player.vala:305
+msgid "by unknown artist from %s"
+msgstr "prej artistit të panjohur nga %s"
+
+#. / Shown in notification if album is unknown, %s will be replaced by artist name
+#: src/player.vala:309
+msgid "by %s"
+msgstr "prej %s"
+
+#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
+#: src/player.vala:313
+msgid "by %1$s from %2$s"
+msgstr "prej %1$s nga %2$s"
+
+#. / Shown in Service selector if service doesn't provide description
+#: src/service.vala:189
+msgid "No description provided for this service."
+msgstr "S'ka përshkrim për këtë shërbim."
+
+#. / Shown as heading in Service selector
+#: src/service.vala:193
+msgid "Select cloud music service"
+msgstr "Zgjidh shërbimin e jashtëm të muzikës"
+
+#. / Shown as label of Cancel button in Service selector
+#: src/service.vala:197
+msgid "Cancel"
+msgstr "Fshije"
+
+#. / Menu Service
+#: src/gui/actions.vala:110
+msgid "_Service"
+msgstr "_Shërbim"
+
+#. / Menu item to switch service
+#: src/gui/actions.vala:117
+msgid "_Switch Service"
+msgstr "_Ndërro Shërbim"
+
+#. / Menu Control
+#: src/gui/actions.vala:121
+msgid "_Control"
+msgstr ""
+
+#. / Menu View
+#: src/gui/actions.vala:128
+msgid "_View"
+msgstr "_Pamje"
+
+#. / Menu Options
+#: src/gui/actions.vala:135
+msgid "_Options"
+msgstr "_Mundësitë"
+
+#. / Menu item to purge cookies
+#. / Crash dialog
+#: src/gui/actions.vala:137 src/gui/windows.vala:243
+msgid "Purge cookies"
+msgstr ""
+
+#. / Menu item to purge album art cache
+#: src/gui/actions.vala:139
+msgid "Purge album art"
+msgstr ""
+
+#. / Menu item to purge browser cache
+#. / Crash dialog
+#: src/gui/actions.vala:141 src/gui/windows.vala:248
+msgid "Purge browser cache"
+msgstr ""
+
+#. / Menu Help
+#: src/gui/actions.vala:146
+msgid "_Help"
+msgstr "_Ndihmë"
+
+#. / Menu item to open online help
+#: src/gui/actions.vala:148
+msgid "Get help online"
+msgstr "Merr ndihmë në linjë"
+
+#. / Menu item to open bug/issue tracker
+#: src/gui/actions.vala:150
+msgid "Report a problem"
+msgstr ""
+
+#. / Menu item to open feature requests tracker
+#: src/gui/actions.vala:152
+msgid "Suggest new feature"
+msgstr ""
+
+#. / Menu item to open page with information about donations
+#: src/gui/actions.vala:154
+msgid "Donate"
+msgstr "Dhuro"
+
+#. / Menu item to open Nuvola's page on Google+ social network
+#: src/gui/actions.vala:156
+msgid "Google+ page"
+msgstr "Faqja e Google+"
+
+#. / Menu item to open Nuvola's page on Facebook social network
+#: src/gui/actions.vala:158
+msgid "Facebook page"
+msgstr "Faqja e Facebook"
+
+#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
+#: src/gui/actions.vala:162
+msgid "Nuvola Menu"
+msgstr "Menuja e Nuvola-s"
+
+#. / Menu item to show both menu bar and tool bar
+#: src/gui/actions.vala:170
+msgid "Both menubar and toolbar"
+msgstr ""
+
+#. / Menu item to show only menu bar, tool bar is hidden
+#: src/gui/actions.vala:172
+msgid "Only menubar"
+msgstr ""
+
+#. / Menu item to show only tool bar, menu bar is hidden
+#: src/gui/actions.vala:174
+msgid "Only toolbar"
+msgstr ""
+
+#. / Menu item to open web page about the current release
+#: src/gui/actions.vala:183
+msgid "About release %s"
+msgstr ""
+
+#. / Preferences dialog title
+#: src/gui/preferences.vala:33
+msgid "Preferences"
+msgstr "Parapëlqimet"
+
+#. / Settings dialog, tab General
+#: src/gui/preferences.vala:88
+msgid "General"
+msgstr "Të përgjithshme"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:91
+msgid "Handle multimedia keys."
+msgstr ""
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:97
+msgid "Use Pause (break) key to toggle play/pause"
+msgstr ""
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:103
+msgid "Show notifications."
+msgstr "Shfaq njoftimet."
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:109
+msgid "Hide window if close button is pressed"
+msgstr "Fshihe dritaren nqs shtypet butoni mbylle."
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:114
+msgid "Always (may require tray icon)"
+msgstr ""
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:117
+msgid "Only if music is playing (may require tray icon)"
+msgstr ""
+
+#. / Settings dialog - tab General
+#. / Settings dialog - tab General, never show tray icon
+#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
+msgid "Never"
+msgstr "Kurrë"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:134
+msgid "Show tray icon"
+msgstr "Shfaq ikonën në shirit"
+
+#. / Settings dialog - tab General, always show tray icon
+#: src/gui/preferences.vala:139
+msgid "Always"
+msgstr "Gjithmonë"
+
+#. / Settings dialog - tab General, show tray icon if needed
+#: src/gui/preferences.vala:142
+msgid "If needed"
+msgstr "Nqs nevojitet"
+
+#. / Settings dialog tab
+#: src/gui/preferences.vala:163
+msgid "Network"
+msgstr "Rrjet"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:166
+msgid ""
+"Some cloud music services don't work with automatic settings and may require "
+"manual SOCKS proxy settings. New proxy settings is applied after restart of "
+"Nuvola Player."
+msgstr ""
+
+#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
+#: src/gui/preferences.vala:175
+msgid ""
+"<b>Warning:</b> A version of a library used for network connection contained "
+"in your system has issues with HTTPS proxy support and it may cause crash of "
+"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
+msgstr ""
+
+#. / Settings dialog - tab Network, shown if tsocks library was not detected
+#: src/gui/preferences.vala:185
+msgid ""
+"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
+"may not be supported."
+msgstr ""
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:195
+msgid "Use direct connection without a proxy server"
+msgstr ""
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:199
+msgid "Use system HTTP(S) proxy settings"
+msgstr ""
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:203
+msgid "Use manual proxy settings"
+msgstr ""
+
+#: src/gui/preferences.vala:212
+msgid "Proxy Type"
+msgstr ""
+
+#. / Settings dialog - tab Network, proxy type HTTP(S)
+#: src/gui/preferences.vala:215
+msgid "HTTP(S)"
+msgstr "HTTP(S)"
+
+#. / Settings dialog - tab Network, proxy type SOCKS
+#: src/gui/preferences.vala:218
+msgid "SOCKS"
+msgstr "SOCKS"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:228
+msgid "Proxy Server"
+msgstr ""
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:238
+msgid "Proxy Server Port"
+msgstr ""
+
+#. / Settings dialog, tab User Scripts
+#: src/gui/preferences.vala:280
+msgid "User scripts"
+msgstr ""
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:283
+msgid ""
+"User scripts are used to enhance web interface of cloud music services."
+msgstr ""
+
+#. / Settings dialog - tab User Scripts, warning
+#: src/gui/preferences.vala:291
+msgid ""
+"<b>Warning:</b> Support for user scripts is incomplete and experimental. It "
+"may be removed in future releases. User script can send data to third "
+"parties, install only trustworthy user scripts."
+msgstr ""
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:301
+msgid "You have to select service to configure user scripts."
+msgstr ""
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:310
+msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
+msgstr ""
+
+#. / Settings dialog - tab User Scripts, button to open user scripts directory
+#: src/gui/preferences.vala:325
+msgid "Open user scripts directory"
+msgstr ""
+
+#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
+#: src/gui/windows.vala:63
+msgid ""
+"You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a "
+"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
+"<a href='%4$s'>stable and beta builds</a>.</i>"
+msgstr ""
+
+#. / Shown in the About Nuvola Player dialog
+#: src/gui/windows.vala:163
+msgid "Cloud music integration for your Linux desktop"
+msgstr ""
+
+#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
+#: src/gui/windows.vala:165
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" tomson https://launchpad.net/~mendimiilire"
+
+#. / Title of the Crash dialog
+#: src/gui/windows.vala:205
+msgid "Nuvola Player Crash Dialog"
+msgstr ""
+
+#. / Crash dialog
+#: src/gui/windows.vala:220
+msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
+msgstr ""
+
+#. / Crash dialog
+#: src/gui/windows.vala:228
+msgid "You can try following options to solve this issue:"
+msgstr ""
+
+#. / Crash dialog
+#: src/gui/windows.vala:237
+msgid "Reset configuration"
+msgstr "Rivendos konfigurmin"
+
+#. / Crash dialog
+#: src/gui/windows.vala:240
+msgid "Reset state of user interface"
+msgstr ""
+
+#. / Crash dialog
+#: src/gui/windows.vala:254
+msgid "Disable HTTP(S) proxy"
+msgstr ""
+
+#. / Crash dialog
+#: src/gui/windows.vala:259
+msgid ""
+"Cloud music services use Flash to play music. Unfortunately, Flash Player is "
+"known not to be very stable and may cause crash of Nuvola Player. Please "
+"visit <a href='%s'>Flash troubleshooting</a>"
+msgstr ""
=== added file 'translations/zh_CN.po'
--- translations/zh_CN.po 1970-01-01 00:00:00 +0000
+++ translations/zh_CN.po 2012-06-15 15:20:27 +0000
@@ -0,0 +1,432 @@
+# Chinese (Simplified) translation for nuvola-player
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the nuvola-player package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nuvola-player\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-12-16 10:33+0100\n"
+"PO-Revision-Date: 2012-03-07 09:24+0000\n"
+"Last-Translator: Wang Dianjin <Unknown>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-03-08 05:23+0000\n"
+"X-Generator: Launchpad (build 14914)\n"
+
+#. / Shown if unsupported command line argument is used
+#: src/main.vala:194
+msgid "Error: Option parsing failed:"
+msgstr "错误:操作解析失败;"
+
+#. / Short label for command 'start or resume playback'
+#: src/player.vala:57
+msgid "Play"
+msgstr "播放"
+
+#. / Short label for command 'pause playback'
+#: src/player.vala:59
+msgid "Pause"
+msgstr "暂停"
+
+#. / Short label for command 'skip to previous song'
+#: src/player.vala:61
+msgid "Previous song"
+msgstr "上一首"
+
+#. / Short label for command 'skip to next song'
+#: src/player.vala:63
+msgid "Next song"
+msgstr "下一首"
+
+#. / Short label for command 'thumb up' or 'like this song' (see Google Music buttons)
+#: src/player.vala:65
+msgid "Thumbs Up"
+msgstr "喜欢的歌曲"
+
+#. / Short label for command 'thumb down' or 'dislike this song' (see Google Music buttons)
+#: src/player.vala:67
+msgid "Thumbs Down"
+msgstr "不喜欢的歌曲"
+
+#. / Short label for command 'add this song to favorites'
+#: src/player.vala:69
+msgid "Favorite"
+msgstr "收藏"
+
+#. / Short label for command 'quit application'
+#: src/player.vala:71
+msgid "Quit"
+msgstr "退出"
+
+#. / Initial notification
+#: src/player.vala:166
+msgid "Version"
+msgstr "版本"
+
+#. / Shown in notification if both artist and album are unknown
+#: src/player.vala:301
+msgid "by unknown artist"
+msgstr "未知艺人"
+
+#. / Shown in notification if artist is unknown, %s will be replaced by album name
+#: src/player.vala:305
+msgid "by unknown artist from %s"
+msgstr "未知艺人,专辑: %2$"
+
+#. / Shown in notification if album is unknown, %s will be replaced by artist name
+#: src/player.vala:309
+msgid "by %s"
+msgstr "艺人:%s"
+
+#. / Shown in notification, %1$s will be replaced by artist name, %2$s will be replaced by album name
+#: src/player.vala:313
+msgid "by %1$s from %2$s"
+msgstr "艺人:%1$,专辑: %2$"
+
+#. / Shown in Service selector if service doesn't provide description
+#: src/service.vala:189
+msgid "No description provided for this service."
+msgstr "没有提供该服务的描述。"
+
+#. / Shown as heading in Service selector
+#: src/service.vala:193
+msgid "Select cloud music service"
+msgstr "选择云端音乐服务"
+
+#. / Shown as label of Cancel button in Service selector
+#: src/service.vala:197
+msgid "Cancel"
+msgstr "取消"
+
+#. / Menu Service
+#: src/gui/actions.vala:110
+msgid "_Service"
+msgstr "服务(_S)"
+
+#. / Menu item to switch service
+#: src/gui/actions.vala:117
+msgid "_Switch Service"
+msgstr "切换服务(_S)"
+
+#. / Menu Control
+#: src/gui/actions.vala:121
+msgid "_Control"
+msgstr "控制(_C)"
+
+#. / Menu View
+#: src/gui/actions.vala:128
+msgid "_View"
+msgstr "查看(_V)"
+
+#. / Menu Options
+#: src/gui/actions.vala:135
+msgid "_Options"
+msgstr "选项(_O)"
+
+#. / Menu item to purge cookies
+#. / Crash dialog
+#: src/gui/actions.vala:137 src/gui/windows.vala:243
+msgid "Purge cookies"
+msgstr "清除 cookie"
+
+#. / Menu item to purge album art cache
+#: src/gui/actions.vala:139
+msgid "Purge album art"
+msgstr "清除专辑封面"
+
+#. / Menu item to purge browser cache
+#. / Crash dialog
+#: src/gui/actions.vala:141 src/gui/windows.vala:248
+msgid "Purge browser cache"
+msgstr "清除浏览缓存"
+
+#. / Menu Help
+#: src/gui/actions.vala:146
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#. / Menu item to open online help
+#: src/gui/actions.vala:148
+msgid "Get help online"
+msgstr "在线帮助"
+
+#. / Menu item to open bug/issue tracker
+#: src/gui/actions.vala:150
+msgid "Report a problem"
+msgstr "报告问题"
+
+#. / Menu item to open feature requests tracker
+#: src/gui/actions.vala:152
+msgid "Suggest new feature"
+msgstr "开发建议"
+
+#. / Menu item to open page with information about donations
+#: src/gui/actions.vala:154
+msgid "Donate"
+msgstr "捐赠"
+
+#. / Menu item to open Nuvola's page on Google+ social network
+#: src/gui/actions.vala:156
+msgid "Google+ page"
+msgstr "Google+ 页面"
+
+#. / Menu item to open Nuvola's page on Facebook social network
+#: src/gui/actions.vala:158
+msgid "Facebook page"
+msgstr "Facebook 页面"
+
+#. / Special tool bar item shown if menu bar is not shown, triggers menu with items not available on tool bar
+#: src/gui/actions.vala:162
+msgid "Nuvola Menu"
+msgstr "Nuvola 菜单"
+
+#. / Menu item to show both menu bar and tool bar
+#: src/gui/actions.vala:170
+msgid "Both menubar and toolbar"
+msgstr "显示菜单栏和工具条"
+
+#. / Menu item to show only menu bar, tool bar is hidden
+#: src/gui/actions.vala:172
+msgid "Only menubar"
+msgstr "只显示菜单栏"
+
+#. / Menu item to show only tool bar, menu bar is hidden
+#: src/gui/actions.vala:174
+msgid "Only toolbar"
+msgstr "只显示工具条"
+
+#. / Menu item to open web page about the current release
+#: src/gui/actions.vala:183
+msgid "About release %s"
+msgstr "关于版本 %s"
+
+#. / Preferences dialog title
+#: src/gui/preferences.vala:33
+msgid "Preferences"
+msgstr "首选项"
+
+#. / Settings dialog, tab General
+#: src/gui/preferences.vala:88
+msgid "General"
+msgstr "常规"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:91
+msgid "Handle multimedia keys."
+msgstr "控制多媒体按键"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:97
+msgid "Use Pause (break) key to toggle play/pause"
+msgstr "使用暂停(中断)键切换播放/暂停"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:103
+msgid "Show notifications."
+msgstr "显示消息通知。"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:109
+msgid "Hide window if close button is pressed"
+msgstr "点击关闭按钮时隐藏窗口"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:114
+msgid "Always (may require tray icon)"
+msgstr "总是(可能需要托盘图标)"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:117
+msgid "Only if music is playing (may require tray icon)"
+msgstr "只在音乐播放时(可能需要托盘图标)"
+
+#. / Settings dialog - tab General
+#. / Settings dialog - tab General, never show tray icon
+#: src/gui/preferences.vala:120 src/gui/preferences.vala:145
+msgid "Never"
+msgstr "从不"
+
+#. / Settings dialog - tab General
+#: src/gui/preferences.vala:134
+msgid "Show tray icon"
+msgstr "显示托盘图标"
+
+#. / Settings dialog - tab General, always show tray icon
+#: src/gui/preferences.vala:139
+msgid "Always"
+msgstr "总是"
+
+#. / Settings dialog - tab General, show tray icon if needed
+#: src/gui/preferences.vala:142
+msgid "If needed"
+msgstr "如果需要"
+
+#. / Settings dialog tab
+#: src/gui/preferences.vala:163
+msgid "Network"
+msgstr "网络"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:166
+msgid ""
+"Some cloud music services don't work with automatic settings and may require "
+"manual SOCKS proxy settings. New proxy settings is applied after restart of "
+"Nuvola Player."
+msgstr "一些旧的音乐服务无法在自动设置下工作,可能需要手动 SOCKS 代理设置。新的代理设置会在 Nuvola 播放器重启后生效。"
+
+#. / Settings dialog - tab Network, warning shown if a buggy connection library is used
+#: src/gui/preferences.vala:175
+msgid ""
+"<b>Warning:</b> A version of a library used for network connection contained "
+"in your system has issues with HTTPS proxy support and it may cause crash of "
+"Nuvola Player. It's highly recommended not to use HTTP(S) Proxy settings."
+msgstr ""
+"<b>警告:</b> 您的系统包含的网络连接使用的库文件版本无法支持 HTTP 代理,这有可能导致 Nuvola 播放器崩溃。严重推荐您不要使用 "
+"HTTP(S) 代理设置。"
+
+#. / Settings dialog - tab Network, shown if tsocks library was not detected
+#: src/gui/preferences.vala:185
+msgid ""
+"<b>Note:</b> <a href='%s'>TSOCKS library</a> was not detected. SOCKS proxy "
+"may not be supported."
+msgstr "<b>提示:</b> 没有检测到 <a href='%s'>TSOCKS 库</a>。可能无法支持 SOCKS 代理。"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:195
+msgid "Use direct connection without a proxy server"
+msgstr "无代理,直接连接网络"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:199
+msgid "Use system HTTP(S) proxy settings"
+msgstr "使用系统 HTTP(S) 代理设置"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:203
+msgid "Use manual proxy settings"
+msgstr "手动配置代理"
+
+#: src/gui/preferences.vala:212
+msgid "Proxy Type"
+msgstr "代理类型"
+
+#. / Settings dialog - tab Network, proxy type HTTP(S)
+#: src/gui/preferences.vala:215
+msgid "HTTP(S)"
+msgstr "HTTP(S)"
+
+#. / Settings dialog - tab Network, proxy type SOCKS
+#: src/gui/preferences.vala:218
+msgid "SOCKS"
+msgstr "SOCKS"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:228
+msgid "Proxy Server"
+msgstr "代理服务器"
+
+#. / Settings dialog - tab Network
+#: src/gui/preferences.vala:238
+msgid "Proxy Server Port"
+msgstr "代理服务器端口"
+
+#. / Settings dialog, tab User Scripts
+#: src/gui/preferences.vala:280
+msgid "User scripts"
+msgstr "用户脚本"
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:283
+msgid ""
+"User scripts are used to enhance web interface of cloud music services."
+msgstr "用户脚本用来增强云端音乐服务的网络界面。"
+
+#. / Settings dialog - tab User Scripts, warning
+#: src/gui/preferences.vala:291
+msgid ""
+"<b>Warning:</b> Support for user scripts is incomplete and experimental. It "
+"may be removed in future releases. User script can send data to third "
+"parties, install only trustworthy user scripts."
+msgstr ""
+"<b>警告:</b>对用户脚本的支持目前尚未完成,处于测试阶段。在功能版本中可能会移除。用户脚本可发送数据到第三方,只安装值得信任的用户脚本。"
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:301
+msgid "You have to select service to configure user scripts."
+msgstr "您必须选择服务以配置用户脚本。"
+
+#. / Settings dialog - tab User Scripts
+#: src/gui/preferences.vala:310
+msgid "Comma-separated list of user scripts enabled for service <b>%s</b>:"
+msgstr "支持服务 <b>%s</b> 的用户脚本,若有多个脚本请用逗号隔开:"
+
+#. / Settings dialog - tab User Scripts, button to open user scripts directory
+#: src/gui/preferences.vala:325
+msgid "Open user scripts directory"
+msgstr "打开用户脚本目录"
+
+#. / Warning for unstable builds, %1$s = version, %2$s and %3$s = links
+#: src/gui/windows.vala:63
+msgid ""
+"You are running <b>unstable build %1$s</b>. <a href='%2$s'>Report a "
+"problem</a>. <a href='%3$s'>See changelog</a>. <i>This bar is not shown in "
+"<a href='%4$s'>stable and beta builds</a>.</i>"
+msgstr ""
+"您正在运行 <b>非稳定构建版本 %1$s</b>。<a href='%2$s'>报告问题</a>。<a "
+"href='%3$s'>查看修改记录</a>。<i>该栏不会显示在 <a href='%4$s'>稳定版本和测试版本</a>中。</i>"
+
+#. / Shown in the About Nuvola Player dialog
+#: src/gui/windows.vala:163
+msgid "Cloud music integration for your Linux desktop"
+msgstr "移植云端音乐服务到您的 Linux 桌面"
+
+#. / Names of translators (shown in the translator credits accessed from the About Nuvola Player dialog)
+#: src/gui/windows.vala:165
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Wang Dianjin https://launchpad.net/~tuhaihe"
+
+#. / Title of the Crash dialog
+#: src/gui/windows.vala:205
+msgid "Nuvola Player Crash Dialog"
+msgstr "Nuvola 播放器崩溃对话框"
+
+#. / Crash dialog
+#: src/gui/windows.vala:220
+msgid "<b>Previous Nuvola Player session was not closed correctly.</b>"
+msgstr "<b>前一个 Nuvola 播放器会话没有正常关闭。</b>"
+
+#. / Crash dialog
+#: src/gui/windows.vala:228
+msgid "You can try following options to solve this issue:"
+msgstr "您可以尝试下面选项来解决该问题:"
+
+#. / Crash dialog
+#: src/gui/windows.vala:237
+msgid "Reset configuration"
+msgstr "重置配置"
+
+#. / Crash dialog
+#: src/gui/windows.vala:240
+msgid "Reset state of user interface"
+msgstr "重置用户界面状态"
+
+#. / Crash dialog
+#: src/gui/windows.vala:254
+msgid "Disable HTTP(S) proxy"
+msgstr "禁用 HTTP(S) 代理"
+
+#. / Crash dialog
+#: src/gui/windows.vala:259
+msgid ""
+"Cloud music services use Flash to play music. Unfortunately, Flash Player is "
+"known not to be very stable and may cause crash of Nuvola Player. Please "
+"visit <a href='%s'>Flash troubleshooting</a>"
+msgstr ""
+"云端音乐服务使用 Flash 播放音乐。不幸的是,Flash 播放器不是非常稳定,这可能导致 Nuvola 播放器崩溃。请访问 <a "
+"href='%s'>Flash 故障排除</a>"
=== renamed file 'vapi/libsoup-2.4-for-vala-gte-0.15.vapi' => 'vapi/libsoup-cache-2.4-vala-0.15.vapi'
=== modified file 'wscript'
--- wscript 2012-05-12 12:26:29 +0000
+++ wscript 2012-06-15 15:20:27 +0000
@@ -11,7 +11,11 @@
RELEASE = "1.1"
# format "x.y.z~foo"
+<<<<<<< TREE
VERSION = '1.1~unstable'
+=======
+VERSION = '1.0.6~unstable'
+>>>>>>> MERGE-SOURCE
# "unstable", "stable"
CHANNEL = "unstable"
@@ -35,8 +39,8 @@
'VERSION': VERSION,
'RELEASE': RELEASE,
'RELEASE_URL': WEBSITE_URL + "Releases/" + RELEASE + "/",
- 'TIPS_URL': "http://projects.fenryxo.cz/Google_Music_Frame/Tips/",
- 'DONATE_URL': "http://projects.fenryxo.cz/Google_Music_Frame/Contribute/#donate",
+ 'TIPS_URL': WEBSITE_URL + "Tips/",
+ 'DONATE_URL': WEBSITE_URL + "Contribute/#donate",
'GOOGLE_PLUS_URL': "https://plus.google.com/110794636546911932554",
'FACEBOOK_URL': "https://www.facebook.com/nuvolaplayer",
'TWITTER_URL': "https://www.twitter.com/NuvolaPlayer",
@@ -77,10 +81,6 @@
raise ValueError("Wrong channel for stable version")
VALA_DEFINES = []
-GTK3 = False
-# Google Music Frame can be compiled using GTK+ 3, but:
-# a) Maverick is not shipped with GTK+3 theme
-# b) Flash isn't loaded (https://bugzilla.redhat.com/show_bug.cgi?id=695184)
top = '.'
out = 'build'
@@ -94,8 +94,11 @@
ctx.add_option('--without-glib-dbus', action='store_false', default=True, dest="glib_dbus", help='Build without native DBus support in GLib/GIO (>= 2.26)')
ctx.add_option('--with-indicator-sound-maverick', action='store_true', default=False, dest="indicator_sound_maverick", help='Build with support for Indicator Sound (Ubuntu Maverick version)')
ctx.add_option('--with-debug-symbols', action='store_true', default=False, dest="debug_symbols", help='Build with debug symbols')
+<<<<<<< TREE
ctx.add_option('--enable-experimental', action='store_true', default=False, dest="experimental", help='Enable experimental features')
ctx.add_option('--allow-buggy-webkit', action='store_true', default=False, dest="buggy_webkit", help='Allow to build with buggy WebKitGTK+')
+=======
+>>>>>>> MERGE-SOURCE
def configure(conf):
@@ -129,18 +132,14 @@
else:
ctx.msg("libnotify VAPI fix will be applied", "no", "GREEN")
check_package(conf, 'x11', 'XLIB', '0.5')
- if GTK3:
- check_package(conf, 'webkitgtk-3.0', 'WEBKIT', '1.0')
- check_package(conf, 'gtk+-3.0', 'GTK+', '2.22.0')
+ if check_package(conf, 'webkit-1.0', 'WEBKIT', '1.5', False) is None:
+ # webkit >= 1.5 not found, but older version can be used
+ check_package(conf, 'webkit-1.0', 'WEBKIT', '1.0')
else:
- if check_package(conf, 'webkit-1.0', 'WEBKIT', '1.5', False) is None:
- # webkit >= 1.5 not found, but older version can be used
- check_package(conf, 'webkit-1.0', 'WEBKIT', '1.0')
- else:
- # webkit >= 1.5 has separate package for javascriptcore
- check_package(conf, 'javascriptcoregtk-1.0', 'JSCORE', '1.5')
- check_package(conf, 'gtk+-2.0', 'GTK+', '2.20.0')
- check_package(conf, 'gdk-2.0', 'GDK', '2.20.0')
+ # webkit >= 1.5 has separate package for javascriptcore
+ check_package(conf, 'javascriptcoregtk-1.0', 'JSCORE', '1.5')
+ check_package(conf, 'gtk+-2.0', 'GTK+', '2.20.0')
+ check_package(conf, 'gdk-2.0', 'GDK', '2.20.0')
ctx.env.WEBKITGTK_VERSION = map(int, conf.check_cfg(modversion='webkit-1.0').split("."))
@@ -166,7 +165,7 @@
else:
check_package(conf, 'glib-2.0', 'GLIB', '2.22')
check_package(conf, 'gio-2.0', 'GIO', '2.22')
- print ">>> Building without DBus support"
+ #~ print ">>> Building without DBus support"
#~ check_package(conf, 'atk', 'ATK', '2.0')
conf.check_cfg(modversion='libsoup-2.4');
@@ -180,11 +179,23 @@
ctx.msg("SoupCache for remote objects", "disabled", "YELLOW")
check_package(conf, 'unique-1.0', 'UNIQUE', '0.9')
+<<<<<<< TREE
check_package(conf, 'json-glib-1.0', 'JSON-GLIB', '0.7')
if check_package(conf, 'unity', 'UNITY', '3.0', False) \
and check_package(conf, 'dbusmenu-glib-0.4', 'DBUSMENU', '0.4', False):
ctx.msg("Integration with Unity Launcher Quick List", "enabled", "GREEN")
+=======
+
+ if ctx.options.indicator_sound_maverick:
+ check_package(conf, 'indicate', 'INDICATE', '0.4') # Maverick
+ check_package(conf, 'dbusmenu-glib', 'DBUSMENU', '0.3') # Maverick
+ ctx.env.VALA_DEFINES.append("INDICATOR_SOUND_MAVERICK")
+
+ if check_package(conf, 'unity', 'UNITY', '3.0', False) \
+ and check_package(conf, 'dbusmenu-glib-0.4', 'DBUSMENU', '0.4', False):
+ ctx.msg("Integration with Unity Launcher Quick List", "enabled", "GREEN")
+>>>>>>> MERGE-SOURCE
ctx.env.VALA_DEFINES.append("UNITY_QUICK_LIST")
else:
ctx.msg("Integration with Unity Launcher Quick List", "disabled", "YELLOW")
@@ -262,6 +273,59 @@
packages += ' x11 unique-1.0 javascriptcore libfenryxo posix json-glib-1.0'
uselib = 'DL GLIB GTK+ GDK GEE SOUP ATK UNIQUE WEBKIT NOTIFY XLIB JSON-GLIB'
+<<<<<<< TREE
+ if ctx.env.GEE_GTE_0_6:
+ packages += " gee-1.0"
+ else:
+ packages += " gee-when-lt-0.6"
+=======
+
+def build(ctx):
+ # build graphics
+ size = 16
+ ctx(
+ rule='%s -w %s -h %s ${SRC} -o ${TGT}' % (ctx.env["RSVG-CONVERT"], size, size),
+ source='graphics/nuvola-player.bigger-cloud-and-play.svg',
+ target='data/icons/hicolor/%sx%s/apps/nuvolaplayer.png' % (size, size)
+ )
+ for size in 22, 24:
+ ctx(
+ rule='%s -w %s -h %s ${SRC} -o ${TGT}' % (ctx.env["RSVG-CONVERT"], size, size),
+ source='graphics/nuvola-player.bigger-cloud.svg',
+ target='data/icons/hicolor/%sx%s/apps/nuvolaplayer.png' % (size, size)
+ )
+ for size in 32, 48:
+ ctx(
+ rule='%s -w %s -h %s ${SRC} -o ${TGT}' % (ctx.env["RSVG-CONVERT"], size, size),
+ source='graphics/nuvola-player.orig.svg',
+ target='data/icons/hicolor/%sx%s/apps/nuvolaplayer.png' % (size, size)
+ )
+
+ if ctx.env.SCOUR:
+ ctx(
+ rule='%s -i ${SRC} -o ${TGT}' % ctx.env.SCOUR,
+ source='graphics/nuvola-player.orig.svg',
+ target='data/icons/hicolor/scalable/apps/nuvolaplayer.svg'
+ )
+ else:
+ ctx(
+ rule='cp ${SRC} ${TGT}',
+ source='graphics/nuvola-player.orig.svg',
+ target='data/icons/hicolor/scalable/apps/nuvolaplayer.svg'
+ )
+
+ ctx(
+ rule='%s -w 35 -h 26 ${SRC} -o ${TGT}' % ctx.env["RSVG-CONVERT"],
+ source='graphics/cloud.orig.svg',
+ target='data/nuvolaplayer/selector/arrow.png'
+ )
+
+ # build binaries
+ packages = 'glib-2.0 gio-2.0 libsoup-2.4 config'
+ packages += ' x11 unique-1.0 javascriptcore libfenryxo posix'
+ uselib = 'DL GLIB GTK+ GDK GEE SOUP ATK UNIQUE WEBKIT NOTIFY XLIB'
+>>>>>>> MERGE-SOURCE
+
if ctx.env.GEE_GTE_0_6:
packages += " gee-1.0"
else:
@@ -276,15 +340,31 @@
else: vala_defines.append(key[:-1])
if "HAVE_JSCORE" in bld.env.table:
uselib += " JSCORE"
+<<<<<<< TREE
if bld.env["VALAC_VERSION"] >= (0, 15, 0):
vala_defines.append('VALAC_0_15')
packages += " libsoup-2.4-for-vala-gte-0.15"
elif bld.env["VALAC_VERSION"] >= (0, 13, 0):
+=======
+ if bld.env["VALAC_VERSION"] >= (0, 15, 0):
+ vala_defines.append('VALAC_0_15')
+ packages += " libsoup-cache-2.4-vala-0.15"
+ elif bld.env["VALAC_VERSION"] >= (0, 13, 0):
+>>>>>>> MERGE-SOURCE
vala_defines.append('VALAC_0_13')
+<<<<<<< TREE
packages += " libsoup-2.4-for-vala-lt-0.15"
+=======
+ packages += " libsoup-cache-2.4"
+>>>>>>> MERGE-SOURCE
else:
+<<<<<<< TREE
vala_defines.append('VALAC_0_12')
packages += " libsoup-2.4-for-vala-lt-0.15"
+=======
+ vala_defines.append('VALAC_0_12')
+ packages += " libsoup-cache-2.4"
+>>>>>>> MERGE-SOURCE
if DEV_STAGE != "stable" or ctx.options.debug_symbols:
vala_defines.append('DEV_BUILD')
@@ -385,7 +465,26 @@
'libfenryxo/tools.vala',
]
+<<<<<<< TREE
task = ctx.program(
+=======
+ if "INDICATOR_SOUND_MAVERICK" in vala_defines:
+ packages += " Dbusmenu-Glib-0.2 Indicate-0.2"
+ uselib += " DBUSMENU INDICATE"
+
+ if "UNITY_QUICK_LIST" in vala_defines:
+ packages += " unity Dbusmenu-0.4"
+ uselib += " UNITY DBUSMENU"
+
+ packages += " gtk+-2.0 gdk-2.0 webkit-1.0 gdk-x11-2.0"
+ if ctx.env.LIBNOTIFY_VERSION < [0, 7, 0]:
+ packages += " libnotify-fix"
+ else:
+ packages += " libnotify"
+
+
+ task = bld.program(
+>>>>>>> MERGE-SOURCE
target = target,
packages = packages,
uselib = uselib,
@@ -414,6 +513,7 @@
podir=GETTEXT_PO_DIR,
install_path="${LOCALEDIR}")
+<<<<<<< TREE
data_dir = ctx.path.find_dir('data')
ctx.install_files('${PREFIX}/share', data_dir.ant_glob('**'),
cwd=data_dir, relative_trick=True)
@@ -497,6 +597,19 @@
cmd = 'build_test'
fun = 'build_test'
+=======
+ data_dir = bld.path.find_dir('data')
+ bld.install_files('${PREFIX}/share', data_dir.ant_glob('**'),
+ cwd=data_dir, relative_trick=True)
+ data_dir = bld.path.find_dir("build/data")
+
+ if data_dir:
+ bld.install_files('${PREFIX}/share', data_dir.ant_glob('**'),
+ cwd=data_dir, relative_trick=True)
+
+
+
+>>>>>>> MERGE-SOURCE
def dist(ctx):
ctx.algo = "tar.gz"
ctx.excl = ' .bzr build/* **/.waf-1* **/*~ **/*.swp **/.lock-w* bzrcommit.txt'
Follow ups