aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS88
-rw-r--r--configure.ac8
-rw-r--r--data/Template.html354
-rw-r--r--data/org.gnome.Empathy.gschema.xml.in5
-rw-r--r--libempathy-gtk/empathy-account-widget.c3
-rw-r--r--libempathy-gtk/empathy-chat.c165
-rw-r--r--libempathy-gtk/empathy-chat.h6
-rw-r--r--libempathy-gtk/empathy-contact-blocking-dialog.c3
-rw-r--r--libempathy-gtk/empathy-contact-list-view.c2
-rw-r--r--libempathy-gtk/empathy-contact-menu.c7
-rw-r--r--libempathy-gtk/empathy-contact-search-dialog.c3
-rw-r--r--libempathy-gtk/empathy-contact-selector-dialog.c25
-rw-r--r--libempathy-gtk/empathy-contact-selector.c2
-rw-r--r--libempathy-gtk/empathy-contact-widget.c14
-rw-r--r--libempathy-gtk/empathy-images.h1
-rw-r--r--libempathy-gtk/empathy-individual-menu.c71
-rw-r--r--libempathy-gtk/empathy-individual-menu.h5
-rw-r--r--libempathy-gtk/empathy-individual-store.c7
-rw-r--r--libempathy-gtk/empathy-individual-view.c53
-rw-r--r--libempathy-gtk/empathy-location-manager.c2
-rw-r--r--libempathy-gtk/empathy-new-call-dialog.c3
-rw-r--r--libempathy-gtk/empathy-new-message-dialog.c104
-rw-r--r--libempathy-gtk/empathy-theme-adium.c659
-rw-r--r--libempathy-gtk/empathy-theme-adium.h3
-rw-r--r--libempathy-gtk/empathy-theme-manager.c89
-rw-r--r--libempathy-gtk/empathy-ui-utils.c6
-rw-r--r--libempathy-gtk/empathy-ui-utils.h2
-rw-r--r--libempathy/empathy-chatroom-manager.c11
-rw-r--r--libempathy/empathy-contact.c25
-rw-r--r--libempathy/empathy-contact.h3
-rw-r--r--libempathy/empathy-request-util.c51
-rw-r--r--libempathy/empathy-request-util.h5
-rw-r--r--libempathy/empathy-tp-chat.c174
-rw-r--r--libempathy/empathy-tp-chat.h8
-rw-r--r--libempathy/empathy-utils.c75
-rw-r--r--libempathy/empathy-utils.h2
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/es.po715
-rw-r--r--po/gl.po698
-rw-r--r--po/he.po903
-rw-r--r--po/nb.po623
-rw-r--r--po/tr.po112
-rw-r--r--po/uk.po985
-rw-r--r--src/empathy-accounts-dialog.c20
-rw-r--r--src/empathy-auth-client.c3
-rw-r--r--src/empathy-chat-manager.c82
-rw-r--r--src/empathy-chat-manager.h2
-rw-r--r--src/empathy-chat-window.c117
-rw-r--r--src/empathy-chat-window.h3
-rw-r--r--src/empathy-chat.c6
-rw-r--r--src/empathy-event-manager.c13
-rw-r--r--src/empathy-ft-manager.c3
-rw-r--r--src/empathy-main-window.c350
-rw-r--r--src/empathy-main-window.ui29
-rw-r--r--src/empathy-new-chatroom-dialog.c11
-rw-r--r--src/empathy-notifications-approver.c6
-rw-r--r--src/empathy-preferences.c256
-rw-r--r--src/empathy-preferences.ui1427
-rw-r--r--src/empathy-streamed-media-window.c2
-rw-r--r--src/ev-sidebar.c2
-rw-r--r--tests/interactive/contact-manager.c3
61 files changed, 5368 insertions, 3048 deletions
diff --git a/NEWS b/NEWS
index 624ef98f5..58d6b3e64 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,91 @@
+NEW in 3.1.1 (09/05/2011)
+============
+
+This first release in the 3.1 development cycle is the first step that will
+lead us to GNOME 3.2 in September.
+
+Adium theme support has been greatly improved: we can now mark unread
+messages, color the nick of participants and display a preview of themes in
+the preferences dialog!
+
+Empathy can now make the difference between normal messages and SMS ones.
+
+Bugs fixed:
+ - Fixed #443884, red-line indicating last time I saw the given MUC/IRC channel/etc. (Xavier Claessens)
+ - Fixed #541438, Preview of chat themes (Xavier Claessens)
+ - Fixed #541632, Nicks by color (Guillaume Desmottes)
+ - Fixed #614319, Search bar shouldn't resize the chat window (Vitaly Minko)
+ - Fixed #622118, Empathy should send actions verbatim if not supported by the network (Guillaume Desmottes)
+ - Fixed #627726, Should use Messages interface (Guillaume Desmottes)
+ - Fixed #636463, Display delivery reports (Danielle Madeley)
+ - Fixed #642087, The order of favorite rooms listed in menu items of Room menu change automatically sometimes (Chandni Verma)
+ - Fixed #643293, Use GtkSwitch instead of the Enabled check box (Guillaume Desmottes)
+ - Fixed #644085, ChatroomManager should find chats by channel not identifier (Danielle Madeley)
+ - Fixed #644086, Inform the user if a channel is for SMS (Danielle Madeley)
+ - Fixed #645586, Contact not selected when opening conversation log from conversation window (Guillaume Desmottes)
+ - Fixed #645930, Remove unnecessary code in empathy_auth_factory_constructed() (Stef Walter)
+ - Fixed #646061, Auth requiered event is not visible on the Shell (Guillaume Desmottes)
+ - Fixed #646084, FT dialog should have a Close button (Guillaume Desmottes)
+ - Fixed #646131, need translation context (Guillaume Desmottes)
+ - Fixed #646227, Possible overflow in persona-view:drag_data_get (Philip Withnall)
+ - Fixed #646681, Port send-error report to Messages interface (Danielle Madeley)
+ - Fixed #647056, Removing a contact causes a segfault (Philip Withnall)
+ - Fixed #647530, SMS support (Danielle Madeley)
+ - Fixed #647641, Does not display the first account when opening empathy-accounts (Guillaume Desmottes)
+ - Fixed #647793, Empathy doesn't disconnect when the network is disabled in network-manager (Guillaume Desmottes)
+ - Fixed #647904, preferences: use GtkBox instead of Gtk[V,H]Box (Cosimo Cecchi)
+ - Fixed #648188, Stop using time_t to store timestamps (Guillaume Desmottes)
+ - Fixed #648230, EmpathyLocationManager cleanup (Guillaume Desmottes)
+ - Fixed #648372, the select widget for importing accounts has wrong height (Guillaume Desmottes)
+ - Fixed #648737, Small cleanup possible in chat_window_page_switched_cb (Guillaume Desmottes)
+ - Fixed #648842, Notifications are delayed if contacts send messages too fast (Guillaume Desmottes)
+ - Fixed #648914, Favourite contacts appear in other contact list groups when offline (Guillaume Desmottes)
+ - Fixed #649161, Leak in main_window_flash_foreach (Guillaume Desmottes)
+ - Fixed #649166, New adium themes not supported (Xavier Claessens)
+ - Fixed #649273, empathy-chat exits even if there is disconnected chat (Guillaume Desmottes)
+ - Fixed #649367, Empathy is not handling /me the same way adium does (Xavier Claessens)
+ - Fixed #649379, Some files in libempathy-gtk use gi18n.h instead of gi18n-lib.h (Gabor Kelemen)
+ - Fixed #649436, HTML fallbacks for adium themes are wrong (Xavier Claessens)
+ - Fixed #649438, Support Conn.I.Balance (Danielle Madeley)
+ - Fixed #649492, Translator comment needed (Guillaume Desmottes)
+ - Fixed #649734, Roster instead of contact list (Guillaume Desmottes)
+ - Fixed #649735, Need context to translate Balance (Guillaume Desmottes)
+ - Fixed #647126, criticals in empathy-call
+
+Translations:
+ - Updated an Translation (Daniel Martinez)
+ - Updated ca Translation (Jordi Serratosa)
+ - Updated cs Translation (Marek Černocký)
+ - Updated da Translation (Kenneth Nielsen)
+ - Updated de Translation (Wolfgang Stöggl)
+ - Updated el Translation (George Stefanakis)
+ - Updated es Translation (Jorge González, Daniel Mustieles)
+ - Updated et Translation (Mattias Põldaru)
+ - Updated eu Translation (Inaki Larranaga Murgoitio)
+ - Updated fa Translation (Arash Mousavi)
+ - Updated gl Translation (Fran Diéguez)
+ - Updated gu Translation (Sweta Kothari)
+ - Updated he Translation (Yaron Shahrabani)
+ - Updated ja Translation (OKANO Takayoshi)
+ - Updated nb Translation (Kjartan Maraas)
+ - Updated nl Translation (Hannie Dumoleyn)
+ - Updated pl Translation (Piotr Drąg)
+ - Updated pt_BR Translation (Rodrigo Padula de Oliveira)
+ - Updated ru Translation (Leonid Kanter)
+ - Updated sk Translation (Pavol Klačanský)
+ - Updated sl Translation (Matej Urbančič)
+ - Updated sr@latin Translation (Branko Kokanović)
+ - Updated sr Translation (Branko Kokanović)
+ - Updated th Translation (Sira Nokyoongtong)
+ - Updated tr Translation (Muhammet Kara, Baris Cicek)
+ - Updated ug Translation (Abduxukur Abdurixit)
+ - Updated vi Translation (Nguyễn Thái Ngọc Duy)
+
+Documentation translations:
+ - Updated de Documentation translation (Wolfgang Stöggl, Hendrik Richter, Mario Blättermann)
+ - Updated es Documentation translation (Jorge González)
+ - Updated fr Documentation translation (Bruno Brouard)
+
NEW in 3.0.0 (04/04/2011)
============
diff --git a/configure.ac b/configure.ac
index 91bd284eb..9e0500894 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,8 +2,8 @@ dnl If not 1, append datestamp to the version number
m4_define(empathy_released, 0)
m4_define([empathy_major_version], [3])
-m4_define([empathy_minor_version], [0])
-m4_define([empathy_micro_version], [0])
+m4_define([empathy_minor_version], [1])
+m4_define([empathy_micro_version], [1])
m4_define([empathy_nano_version], [0])
dnl Display the nano_version only if it's not '0'
@@ -32,7 +32,7 @@ AC_COPYRIGHT([
# Hardp deps
FOLKS_REQUIRED=0.4.0
-GLIB_REQUIRED=2.27.2
+GLIB_REQUIRED=2.28.0
GNUTLS_REQUIRED=2.8.5
GTK_REQUIRED=3.0.2
KEYRING_REQUIRED=2.26.0
@@ -40,7 +40,7 @@ GCR_REQUIRED=2.91.4
LIBCANBERRA_GTK_REQUIRED=0.25
LIBNOTIFY_REQUIRED=0.7.0
TELEPATHY_FARSIGHT_REQUIRED=0.0.14
-TELEPATHY_GLIB_REQUIRED=0.14.1
+TELEPATHY_GLIB_REQUIRED=0.14.3
TELEPATHY_LOGGER=0.2.0
# Optional deps
diff --git a/data/Template.html b/data/Template.html
index 708e85bdb..79224b8de 100644
--- a/data/Template.html
+++ b/data/Template.html
@@ -3,66 +3,215 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<base href="%@">
- <script type="text/ecmascript" defer="defer">
-
- //Appending new content to the message view
- function appendMessage(html) {
- shouldScroll = nearBottom();
+ <script type="text/javascript" defer="defer">
+ // NOTE:
+ // Any percent signs in this file must be escaped!
+ // Use two escape signs (%%) to display it, this is passed through a format call!
- //Remove any existing insertion point
- insert = document.getElementById("insert");
- if(insert) insert.parentNode.removeChild(insert);
+ function appendHTML(html) {
+ var node = document.getElementById("Chat");
+ var range = document.createRange();
+ range.selectNode(node);
+ var documentFragment = range.createContextualFragment(html);
+ node.appendChild(documentFragment);
+ }
+
+ // a coalesced HTML object buffers and outputs DOM objects en masse.
+ // saves A LOT of CSS recalculation time when loading many messages.
+ // (ex. a long twitter timeline)
+ function CoalescedHTML() {
+ var self = this;
+ this.fragment = document.createDocumentFragment();
+ this.timeoutID = 0;
+ this.coalesceRounds = 0;
+ this.isCoalescing = false;
+ this.isConsecutive = undefined;
+ this.shouldScroll = undefined;
+
+ var appendElement = function (elem) {
+ document.getElementById("Chat").appendChild(elem);
+ };
+
+ function outputHTML() {
+ var insert = document.getElementById("insert");
+ if(!!insert && self.isConsecutive) {
+ insert.parentNode.replaceChild(self.fragment, insert);
+ } else {
+ if(insert)
+ insert.parentNode.removeChild(insert);
+ // insert the documentFragment into the live DOM
+ appendElement(self.fragment);
+ }
+ alignChat(self.shouldScroll);
+
+ // reset state to empty/non-coalescing
+ self.shouldScroll = undefined;
+ self.isConsecutive = undefined;
+ self.isCoalescing = false;
+ self.coalesceRounds = 0;
+ }
+
+ // creates and returns a new documentFragment, containing all content nodes
+ // which can be inserted as a single node.
+ function createHTMLNode(html) {
+ var range = document.createRange();
+ range.selectNode(document.getElementById("Chat"));
+ return range.createContextualFragment(html);
+ }
+
+ // removes first insert node from the internal fragment.
+ function rmInsertNode() {
+ var insert = self.fragment.querySelector("#insert");
+ if(insert)
+ insert.parentNode.removeChild(insert);
+ }
+
+ function setShouldScroll(flag) {
+ if(flag && undefined === self.shouldScroll)
+ self.shouldScroll = flag;
+ }
+
+ // hook in a custom method to append new data
+ // to the chat.
+ this.setAppendElementMethod = function (func) {
+ if(typeof func === 'function')
+ appendElement = func;
+ }
+
+ // (re)start the coalescing timer.
+ // we wait 25ms for a new message to come in.
+ // If we get one, restart the timer and wait another 10ms.
+ // If not, run outputHTML()
+ // We do this a maximum of 400 times, for 10s max that can be spent
+ // coalescing input, since this will block display.
+ this.coalesce = function() {
+ window.clearTimeout(self.timeoutID);
+ self.timeoutID = window.setTimeout(outputHTML, 25);
+ self.isCoalescing = true;
+ self.coalesceRounds += 1;
+ if(400 < self.coalesceRounds)
+ self.cancel();
+ }
+
+ // if we need to append content into an insertion div,
+ // we need to clear the buffer and cancel the timeout.
+ this.cancel = function() {
+ if(self.isCoalescing) {
+ window.clearTimeout(self.timeoutID);
+ outputHTML();
+ }
+ }
+
+
+ // coalased analogs to the global functions
+
+ this.append = function(html, shouldScroll) {
+ // if we started this fragment with a consecuative message,
+ // cancel and output before we continue
+ if(self.isConsecutive) {
+ self.cancel();
+ }
+ self.isConsecutive = false;
+ rmInsertNode();
+ var node = createHTMLNode(html);
+ self.fragment.appendChild(node);
+
+ node = null;
- //Append the new message to the bottom of our chat block
- chat = document.getElementById("Chat");
- range = document.createRange();
- range.selectNode(chat);
- documentFragment = range.createContextualFragment(html);
- chat.appendChild(documentFragment);
+ setShouldScroll(shouldScroll);
+ self.coalesce();
+ }
- alignChat(shouldScroll);
+ this.appendNext = function(html, shouldScroll) {
+ if(undefined === self.isConsecutive)
+ self.isConsecutive = true;
+ var node = createHTMLNode(html);
+ var insert = self.fragment.querySelector("#insert");
+ if(insert) {
+ insert.parentNode.replaceChild(node, insert);
+ } else {
+ self.fragment.appendChild(node);
+ }
+ node = null;
+ setShouldScroll(shouldScroll);
+ self.coalesce();
+ }
+
+ this.replaceLast = function (html, shouldScroll) {
+ rmInsertNode();
+ var node = createHTMLNode(html);
+ var lastMessage = self.fragment.lastChild;
+ lastMessage.parentNode.replaceChild(node, lastMessage);
+ node = null;
+ setShouldScroll(shouldScroll);
+ }
}
- function appendMessageNoScroll(html) {
- //Remove any existing insertion point
- insert = document.getElementById("insert");
- if(insert) insert.parentNode.removeChild(insert);
+ var coalescedHTML;
- //Append the new message to the bottom of our chat block
- chat = document.getElementById("Chat");
- range = document.createRange();
- range.selectNode(chat);
- documentFragment = range.createContextualFragment(html);
- chat.appendChild(documentFragment);
+ //Appending new content to the message view
+ function appendMessage(html) {
+ var shouldScroll;
+
+ // Only call nearBottom() if should scroll is undefined.
+ if(undefined === coalescedHTML.shouldScroll) {
+ shouldScroll = nearBottom();
+ } else {
+ shouldScroll = coalescedHTML.shouldScroll;
+ }
+ appendMessageNoScroll(html, shouldScroll);
}
- function appendNextMessage(html){
- shouldScroll = nearBottom();
-
- //Locate the insertion point
- insert = document.getElementById("insert");
- //make new node
- range = document.createRange();
- range.selectNode(insert.parentNode);
- newNode = range.createContextualFragment(html);
-
- //swap
- insert.parentNode.replaceChild(newNode,insert);
-
- alignChat(shouldScroll);
+ function appendMessageNoScroll(html, shouldScroll) {
+ shouldScroll = shouldScroll || false;
+ // always try to coalesce new, non-griuped, messages
+ coalescedHTML.append(html, shouldScroll)
}
- function appendNextMessageNoScroll(html){
- //Locate the insertion point
- insert = document.getElementById("insert");
- //make new node
- range = document.createRange();
- range.selectNode(insert.parentNode);
- newNode = range.createContextualFragment(html);
-
- //swap
- insert.parentNode.replaceChild(newNode,insert);
+ function appendNextMessage(html){
+ var shouldScroll;
+ if(undefined === coalescedHTML.shouldScroll) {
+ shouldScroll = nearBottom();
+ } else {
+ shouldScroll = coalescedHTML.shouldScroll;
+ }
+ appendNextMessageNoScroll(html, shouldScroll);
}
+ function appendNextMessageNoScroll(html, shouldScroll){
+ shouldScroll = shouldScroll || false;
+ // only group next messages if we're already coalescing input
+ coalescedHTML.appendNext(html, shouldScroll);
+ }
+
+ function replaceLastMessage(html){
+ var shouldScroll;
+ // only replace messages if we're already coalescing
+ if(coalescedHTML.isCoalescing){
+ if(undefined === coalescedHTML.shouldScroll) {
+ shouldScroll = nearBottom();
+ } else {
+ shouldScroll = coalescedHTML.shouldScroll;
+ }
+ coalescedHTML.replaceLast(html, shouldScroll);
+ } else {
+ shouldScroll = nearBottom();
+ //Retrieve the current insertion point, then remove it
+ //This requires that there have been an insertion point... is there a better way to retrieve the last element? -evands
+ var insert = document.getElementById("insert");
+ if(insert){
+ var parentNode = insert.parentNode;
+ parentNode.removeChild(insert);
+ var lastMessage = document.getElementById("Chat").lastChild;
+ document.getElementById("Chat").removeChild(lastMessage);
+ }
+
+ //Now append the message itself
+ appendHTML(html);
+
+ alignChat(shouldScroll);
+ }
+ }
+
//Auto-scroll to bottom. Use nearBottom to determine if a scrollToBottom is desired.
function nearBottom() {
return ( document.body.scrollTop >= ( document.body.offsetHeight - ( window.innerHeight * 1.2 ) ) );
@@ -73,49 +222,74 @@
//Dynamically exchange the active stylesheet
function setStylesheet( id, url ) {
- code = "<style id=\"" + id + "\" type=\"text/css\" media=\"screen,print\">";
- if( url.length ) code += "@import url( \"" + url + "\" );";
+ var code = "<style id=\"" + id + "\" type=\"text/css\" media=\"screen,print\">";
+ if( url.length )
+ code += "@import url( \"" + url + "\" );";
code += "</style>";
- range = document.createRange();
- head = document.getElementsByTagName( "head" ).item(0);
+ var range = document.createRange();
+ var head = document.getElementsByTagName( "head" ).item(0);
range.selectNode( head );
- documentFragment = range.createContextualFragment( code );
+ var documentFragment = range.createContextualFragment( code );
head.removeChild( document.getElementById( id ) );
head.appendChild( documentFragment );
}
+
+ /* Converts emoticon images to textual emoticons; all emoticons in message if alt is held */
+ document.onclick = function imageCheck() {
+ var node = event.target;
+ if (node.tagName.toLowerCase() != 'img')
+ return;
+
+ imageSwap(node, false);
+ }
- //Swap an image with its alt-tag text on click, or expand/unexpand an attached image
- document.onclick = imageCheck;
- function imageCheck() {
- node = event.target;
- if(node.tagName == 'IMG' && !client.zoomImage(node) && node.alt) {
- a = document.createElement('a');
- a.setAttribute('onclick', 'imageSwap(this)');
- a.setAttribute('src', node.getAttribute('src'));
- a.className = node.className;
- text = document.createTextNode(node.alt);
- a.appendChild(text);
- node.parentNode.replaceChild(a, node);
+ /* Converts textual emoticons to images if textToImagesFlag is true, otherwise vice versa */
+ function imageSwap(node, textToImagesFlag) {
+ var shouldScroll = nearBottom();
+
+ var images = [node];
+ if (event.altKey) {
+ while (node.id != "Chat" && node.parentNode.id != "Chat")
+ node = node.parentNode;
+ images = node.querySelectorAll(textToImagesFlag ? "a" : "img");
+ }
+
+ for (var i = 0; i < images.length; i++) {
+ textToImagesFlag ? textToImage(images[i]) : imageToText(images[i]);
}
+
+ alignChat(shouldScroll);
}
- function imageSwap(node) {
- shouldScroll = nearBottom();
-
+ function textToImage(node) {
+ if (!node.getAttribute("isEmoticon"))
+ return;
//Swap the image/text
- img = document.createElement('img');
+ var img = document.createElement('img');
img.setAttribute('src', node.getAttribute('src'));
img.setAttribute('alt', node.firstChild.nodeValue);
img.className = node.className;
node.parentNode.replaceChild(img, node);
-
- alignChat(shouldScroll);
+ }
+
+ function imageToText(node)
+ {
+ if (client.zoomImage(node) || !node.alt)
+ return;
+ var a = document.createElement('a');
+ a.setAttribute('onclick', 'imageSwap(this, true)');
+ a.setAttribute('src', node.getAttribute('src'));
+ a.setAttribute('isEmoticon', true);
+ a.className = node.className;
+ var text = document.createTextNode(node.alt);
+ a.appendChild(text);
+ node.parentNode.replaceChild(a, node);
}
//Align our chat to the bottom of the window. If true is passed, view will also be scrolled down
function alignChat(shouldScroll) {
var windowHeight = window.innerHeight;
-
+
if (windowHeight > 0) {
var contentElement = document.getElementById('Chat');
var contentHeight = contentElement.offsetHeight;
@@ -126,31 +300,41 @@
contentElement.style.position = 'static';
}
}
-
+
if (shouldScroll) scrollToBottom();
}
-
- function windowDidResize(){
+
+ window.onresize = function windowDidResize(){
alignChat(true/*nearBottom()*/); //nearBottom buggy with inactive tabs
}
- window.onresize = windowDidResize;
+ function initStyle() {
+ alignChat(true);
+ if(!coalescedHTML)
+ coalescedHTML = new CoalescedHTML();
+ }
</script>
-
+
+ <style type="text/css">
+ .actionMessageUserName { display:none; }
+ .actionMessageBody:before { content:"*"; }
+ .actionMessageBody:after { content:"*"; }
+ * { word-wrap:break-word; text-rendering: optimizelegibility; }
+ img.scaledToFitImage { height: auto; max-width: 100%%; }
+ </style>
+
<!-- This style is shared by all variants. !-->
- <style id="baseStyle" type="text/css" media="screen,print">
- %@
- *{ word-wrap:break-word; }
- img.scaledToFitImage { height:auto; width:100%; }
+ <style id="baseStyle" type="text/css" media="screen,print">
+ %@
</style>
-
+
<!-- Although we call this mainStyle for legacy reasons, it's actually the variant style !-->
- <style id="mainStyle" type="text/css" media="screen,print">
+ <style id="mainStyle" type="text/css" media="screen,print">
@import url( "%@" );
</style>
</head>
-<body onload="alignChat(true);" style="==bodyBackground==">
+<body onload="initStyle();" style="==bodyBackground==">
%@
<div id="Chat">
</div>
diff --git a/data/org.gnome.Empathy.gschema.xml.in b/data/org.gnome.Empathy.gschema.xml.in
index 1c833ffcb..799cc7294 100644
--- a/data/org.gnome.Empathy.gschema.xml.in
+++ b/data/org.gnome.Empathy.gschema.xml.in
@@ -49,6 +49,11 @@
<_summary>Show protocols</_summary>
<_description>Whether to show protocols for contacts in the contact list.</_description>
</key>
+ <key name="show-balance-in-roster" type="b">
+ <default>false</default>
+ <_summary>Show Balance in contact list</_summary>
+ <_description>Whether to show account balances in the contact list.</_description>
+ </key>
<key name="compact-contact-list" type="b">
<default>false</default>
<_summary>Compact contact list</_summary>
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 6bbfc9a46..dfa9ecd35 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -2210,9 +2210,6 @@ do_dispose (GObject *obj)
if (priv->settings != NULL)
{
- TpAccount *account;
- account = empathy_account_settings_get_account (priv->settings);
-
g_object_unref (priv->settings);
priv->settings = NULL;
}
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index b2d091518..183b49bf9 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -145,6 +145,7 @@ struct _EmpathyChatPriv {
* notified again about the already notified pending messages when the
* messages in tab will be properly shown */
gboolean retrieving_backlogs;
+ gboolean sms_channel;
};
typedef struct {
@@ -170,6 +171,8 @@ enum {
PROP_SUBJECT,
PROP_REMOTE_CONTACT,
PROP_SHOW_CONTACTS,
+ PROP_SMS_CHANNEL,
+ PROP_N_MESSAGES_SENDING,
};
static guint signals[LAST_SIGNAL] = { 0 };
@@ -195,7 +198,7 @@ chat_get_property (GObject *object,
g_value_set_object (value, priv->account);
break;
case PROP_NAME:
- g_value_set_string (value, empathy_chat_get_name (chat));
+ g_value_take_string (value, empathy_chat_dup_name (chat));
break;
case PROP_ID:
g_value_set_string (value, priv->id);
@@ -209,6 +212,13 @@ chat_get_property (GObject *object,
case PROP_SHOW_CONTACTS:
g_value_set_boolean (value, priv->show_contacts);
break;
+ case PROP_SMS_CHANNEL:
+ g_value_set_boolean (value, priv->sms_channel);
+ break;
+ case PROP_N_MESSAGES_SENDING:
+ g_value_set_uint (value,
+ empathy_chat_get_n_messages_sending (chat));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -249,8 +259,14 @@ account_reconnected (EmpathyChat *chat,
* https://bugs.freedesktop.org/show_bug.cgi?id=13422 */
switch (priv->handle_type) {
case TP_HANDLE_TYPE_CONTACT:
- empathy_chat_with_contact_id (
- account, priv->id, TP_USER_ACTION_TIME_NOT_USER_ACTION);
+ if (priv->sms_channel)
+ empathy_sms_contact_id (
+ account, priv->id,
+ TP_USER_ACTION_TIME_NOT_USER_ACTION);
+ else
+ empathy_chat_with_contact_id (
+ account, priv->id,
+ TP_USER_ACTION_TIME_NOT_USER_ACTION);
break;
case TP_HANDLE_TYPE_ROOM:
empathy_join_muc (account, priv->id,
@@ -735,7 +751,7 @@ empathy_chat_join_muc (EmpathyChat *chat,
EmpathyChatPriv *priv = GET_PRIV (chat);
empathy_join_muc (priv->account, room,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
}
static void
@@ -783,7 +799,7 @@ chat_command_msg_internal (EmpathyChat *chat,
NULL);
req = tp_account_channel_request_new (priv->account, request,
- tp_user_action_time_from_x11 (gtk_get_current_event_time ()));
+ empathy_get_current_action_time ());
/* FIXME: We should probably search in members alias. But this
* is enough for IRC */
@@ -1244,31 +1260,43 @@ static void
chat_send_error_cb (EmpathyTpChat *tp_chat,
const gchar *message_body,
TpChannelTextSendError error_code,
+ const gchar *dbus_error,
EmpathyChat *chat)
{
- const gchar *error;
+ const gchar *error = NULL;
gchar *str;
- switch (error_code) {
- case TP_CHANNEL_TEXT_SEND_ERROR_OFFLINE:
- error = _("offline");
- break;
- case TP_CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT:
- error = _("invalid contact");
- break;
- case TP_CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED:
- error = _("permission denied");
- break;
- case TP_CHANNEL_TEXT_SEND_ERROR_TOO_LONG:
- error = _("too long message");
- break;
- case TP_CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED:
- error = _("not implemented");
- break;
- case TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN:
- default:
- error = _("unknown");
- break;
+ if (!tp_strdiff (dbus_error, TP_ERROR_STR_INSUFFICIENT_BALANCE)) {
+ /* translators: error used when user doesn't have enough credit on his
+ * account to send the message. */
+ error = _("insufficient balance to send message");
+ } else if (!tp_strdiff (dbus_error, TP_ERROR_STR_NOT_CAPABLE)) {
+ error = _("not capable");
+ }
+
+ if (error == NULL) {
+ /* if we didn't find a dbus-error, try the old error */
+ switch (error_code) {
+ case TP_CHANNEL_TEXT_SEND_ERROR_OFFLINE:
+ error = _("offline");
+ break;
+ case TP_CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT:
+ error = _("invalid contact");
+ break;
+ case TP_CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED:
+ error = _("permission denied");
+ break;
+ case TP_CHANNEL_TEXT_SEND_ERROR_TOO_LONG:
+ error = _("too long message");
+ break;
+ case TP_CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED:
+ error = _("not implemented");
+ break;
+ case TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN:
+ default:
+ error = _("unknown");
+ break;
+ }
}
if (message_body != NULL) {
@@ -2936,6 +2964,22 @@ empathy_chat_class_init (EmpathyChatClass *klass)
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class,
+ PROP_SMS_CHANNEL,
+ g_param_spec_boolean ("sms-channel",
+ "SMS Channel",
+ "TRUE if this channel is for sending SMSes",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (object_class,
+ PROP_N_MESSAGES_SENDING,
+ g_param_spec_uint ("n-messages-sending",
+ "Num Messages Sending",
+ "The number of messages being sent",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
signals[COMPOSING] =
g_signal_new ("composing",
G_OBJECT_CLASS_TYPE (object_class),
@@ -3461,6 +3505,21 @@ chat_password_needed_changed_cb (EmpathyChat *self)
}
}
+static void
+chat_sms_channel_changed_cb (EmpathyChat *self)
+{
+ EmpathyChatPriv *priv = GET_PRIV (self);
+
+ priv->sms_channel = empathy_tp_chat_is_sms_channel (priv->tp_chat);
+ g_object_notify (G_OBJECT (self), "sms-channel");
+}
+
+static void
+chat_n_messages_sending_changed_cb (EmpathyChat *self)
+{
+ g_object_notify (G_OBJECT (self), "n-messages-sending");
+}
+
void
empathy_chat_set_tp_chat (EmpathyChat *chat,
EmpathyTpChat *tp_chat)
@@ -3510,6 +3569,12 @@ empathy_chat_set_tp_chat (EmpathyChat *chat,
g_signal_connect_swapped (tp_chat, "notify::password-needed",
G_CALLBACK (chat_password_needed_changed_cb),
chat);
+ g_signal_connect_swapped (tp_chat, "notify::sms-channel",
+ G_CALLBACK (chat_sms_channel_changed_cb),
+ chat);
+ g_signal_connect_swapped (tp_chat, "notify::n-messages-sending",
+ G_CALLBACK (chat_n_messages_sending_changed_cb),
+ chat);
/* Get initial value of properties */
properties = empathy_tp_chat_get_properties (priv->tp_chat);
@@ -3530,6 +3595,7 @@ empathy_chat_set_tp_chat (EmpathyChat *chat,
}
}
+ chat_sms_channel_changed_cb (chat);
chat_remote_contact_changed_cb (chat);
if (chat->input_text_view) {
@@ -3572,8 +3638,8 @@ empathy_chat_get_id (EmpathyChat *chat)
return priv->id;
}
-const gchar *
-empathy_chat_get_name (EmpathyChat *chat)
+gchar *
+empathy_chat_dup_name (EmpathyChat *chat)
{
EmpathyChatPriv *priv = GET_PRIV (chat);
const gchar *ret;
@@ -3581,6 +3647,7 @@ empathy_chat_get_name (EmpathyChat *chat)
g_return_val_if_fail (EMPATHY_IS_CHAT (chat), NULL);
ret = priv->name;
+
if (!ret && priv->remote_contact) {
ret = empathy_contact_get_alias (priv->remote_contact);
}
@@ -3588,7 +3655,15 @@ empathy_chat_get_name (EmpathyChat *chat)
if (!ret)
ret = priv->id;
- return ret ? ret : _("Conversation");
+ if (!ret)
+ ret = _("Conversation");
+
+ if (priv->sms_channel)
+ /* Translators: this string is a something like
+ * "Escher Cat (SMS)" */
+ return g_strdup_printf (_("%s (SMS)"), ret);
+ else
+ return g_strdup (ret);
}
const gchar *
@@ -3814,3 +3889,35 @@ empathy_chat_is_composing (EmpathyChat *chat)
{
return chat->priv->compositors != NULL;
}
+
+gboolean
+empathy_chat_is_sms_channel (EmpathyChat *self)
+{
+ EmpathyChatPriv *priv = GET_PRIV (self);
+
+ g_return_val_if_fail (EMPATHY_IS_CHAT (self), 0);
+
+ return priv->sms_channel;
+}
+
+guint
+empathy_chat_get_n_messages_sending (EmpathyChat *self)
+{
+ EmpathyChatPriv *priv;
+
+ g_return_val_if_fail (EMPATHY_IS_CHAT (self), 0);
+
+ priv = GET_PRIV (self);
+
+ if (priv->tp_chat == NULL) {
+ return 0;
+ } else {
+ guint n_messages;
+
+ g_object_get (priv->tp_chat,
+ "n-messages-sending", &n_messages,
+ NULL);
+
+ return n_messages;
+ }
+}
diff --git a/libempathy-gtk/empathy-chat.h b/libempathy-gtk/empathy-chat.h
index 6ec957536..47892d6c9 100644
--- a/libempathy-gtk/empathy-chat.h
+++ b/libempathy-gtk/empathy-chat.h
@@ -69,7 +69,7 @@ void empathy_chat_set_tp_chat (EmpathyChat *chat,
EmpathyTpChat *tp_chat);
TpAccount * empathy_chat_get_account (EmpathyChat *chat);
const gchar * empathy_chat_get_id (EmpathyChat *chat);
-const gchar * empathy_chat_get_name (EmpathyChat *chat);
+gchar * empathy_chat_dup_name (EmpathyChat *chat);
const gchar * empathy_chat_get_subject (EmpathyChat *chat);
EmpathyContact * empathy_chat_get_remote_contact (EmpathyChat *chat);
GtkWidget * empathy_chat_get_contact_menu (EmpathyChat *chat);
@@ -93,6 +93,10 @@ guint empathy_chat_get_nb_unread_messages (EmpathyChat *chat);
void empathy_chat_messages_read (EmpathyChat *self);
gboolean empathy_chat_is_composing (EmpathyChat *chat);
+
+gboolean empathy_chat_is_sms_channel (EmpathyChat *self);
+guint empathy_chat_get_n_messages_sending (EmpathyChat *self);
+
G_END_DECLS
#endif /* __EMPATHY_CHAT_H__ */
diff --git a/libempathy-gtk/empathy-contact-blocking-dialog.c b/libempathy-gtk/empathy-contact-blocking-dialog.c
index a46820c5d..08757545f 100644
--- a/libempathy-gtk/empathy-contact-blocking-dialog.c
+++ b/libempathy-gtk/empathy-contact-blocking-dialog.c
@@ -21,8 +21,9 @@
*
* Authors: Danielle Madeley <danielle.madeley@collabora.co.uk>
*/
+#include "config.h"
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <libempathy/empathy-utils.h>
diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c
index dace4f909..03839abbe 100644
--- a/libempathy-gtk/empathy-contact-list-view.c
+++ b/libempathy-gtk/empathy-contact-list-view.c
@@ -903,7 +903,7 @@ contact_list_view_row_activated (GtkTreeView *view,
if (contact) {
DEBUG ("Starting a chat");
empathy_chat_with_contact (contact,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
g_object_unref (contact);
}
}
diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c
index 15f47b206..ecdbee1ba 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -314,7 +314,7 @@ static void
empathy_contact_chat_menu_item_activated (GtkMenuItem *item,
EmpathyContact *contact)
{
- empathy_chat_with_contact (contact, gtk_get_current_event_time ());
+ empathy_chat_with_contact (contact, empathy_get_current_action_time ());
}
GtkWidget *
@@ -343,9 +343,8 @@ static void
empathy_contact_audio_call_menu_item_activated (GtkMenuItem *item,
EmpathyContact *contact)
{
-
empathy_call_new_with_streams (contact, TRUE, FALSE,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
}
GtkWidget *
@@ -376,7 +375,7 @@ empathy_contact_video_call_menu_item_activated (GtkMenuItem *item,
EmpathyContact *contact)
{
empathy_call_new_with_streams (contact, TRUE, TRUE,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
}
GtkWidget *
diff --git a/libempathy-gtk/empathy-contact-search-dialog.c b/libempathy-gtk/empathy-contact-search-dialog.c
index aeb0767d3..a265fa6b2 100644
--- a/libempathy-gtk/empathy-contact-search-dialog.c
+++ b/libempathy-gtk/empathy-contact-search-dialog.c
@@ -22,8 +22,9 @@
* Danielle Madeley <danielle.madeley@collabora.co.uk>
* Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
*/
+#include "config.h"
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <telepathy-glib/telepathy-glib.h>
diff --git a/libempathy-gtk/empathy-contact-selector-dialog.c b/libempathy-gtk/empathy-contact-selector-dialog.c
index d5e533aeb..a4747b488 100644
--- a/libempathy-gtk/empathy-contact-selector-dialog.c
+++ b/libempathy-gtk/empathy-contact-selector-dialog.c
@@ -66,7 +66,8 @@ struct _EmpathyContactSelectorDialogPriv {
enum {
PROP_0,
PROP_SHOW_ACCOUNT_CHOOSER,
- PROP_FILTER_ACCOUNT
+ PROP_FILTER_ACCOUNT,
+ PROP_SELECTED_ACCOUNT
};
enum {
@@ -151,6 +152,8 @@ contact_selector_dialog_account_changed_cb (GtkWidget *widget,
g_object_unref (contact);
members = g_list_delete_link (members, members);
}
+
+ g_object_notify (G_OBJECT (dialog), "selected-account");
}
static gboolean
@@ -375,6 +378,7 @@ empathy_contact_selector_dialog_get_property (GObject *self,
GParamSpec *pspec)
{
EmpathyContactSelectorDialog *dialog = EMPATHY_CONTACT_SELECTOR_DIALOG (self);
+ EmpathyContactSelectorDialogPriv *priv = GET_PRIV (dialog);
switch (prop_id)
{
@@ -388,6 +392,11 @@ empathy_contact_selector_dialog_get_property (GObject *self,
empathy_contact_selector_dialog_get_filter_account (dialog));
break;
+ case PROP_SELECTED_ACCOUNT:
+ g_value_set_object (value, empathy_account_chooser_get_account (
+ EMPATHY_ACCOUNT_CHOOSER (priv->account_chooser)));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec);
break;
@@ -401,6 +410,7 @@ empathy_contact_selector_dialog_set_property (GObject *self,
GParamSpec *pspec)
{
EmpathyContactSelectorDialog *dialog = EMPATHY_CONTACT_SELECTOR_DIALOG (self);
+ EmpathyContactSelectorDialogPriv *priv = GET_PRIV (dialog);
switch (prop_id)
{
@@ -414,6 +424,12 @@ empathy_contact_selector_dialog_set_property (GObject *self,
g_value_get_object (value));
break;
+ case PROP_SELECTED_ACCOUNT:
+ empathy_account_chooser_set_account (
+ EMPATHY_ACCOUNT_CHOOSER (priv->account_chooser),
+ g_value_get_object (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec);
break;
@@ -490,6 +506,13 @@ empathy_contact_selector_dialog_class_init (
"account are displayed",
TP_TYPE_ACCOUNT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (object_class, PROP_SELECTED_ACCOUNT,
+ g_param_spec_object ("selected-account",
+ "Selected Account",
+ "Current account selected in the account-chooser",
+ TP_TYPE_ACCOUNT,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
const gchar *
diff --git a/libempathy-gtk/empathy-contact-selector.c b/libempathy-gtk/empathy-contact-selector.c
index c70d2575a..a77ed43e2 100644
--- a/libempathy-gtk/empathy-contact-selector.c
+++ b/libempathy-gtk/empathy-contact-selector.c
@@ -22,7 +22,7 @@
#include "config.h"
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
#include <libempathy/empathy-contact.h>
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index acf206ad3..c4e3748b4 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -818,8 +818,10 @@ contact_widget_location_update (EmpathyContactWidget *information)
{
GHashTable *location;
GValue *value;
+#ifdef HAVE_LIBCHAMPLAIN
gdouble lat = 0.0, lon = 0.0;
gboolean has_position = TRUE;
+#endif
GtkWidget *label;
guint row = 0;
static const gchar* ordered_geolocation_keys[] = {
@@ -853,18 +855,6 @@ contact_widget_location_update (EmpathyContactWidget *information)
return;
}
- value = g_hash_table_lookup (location, EMPATHY_LOCATION_LAT);
- if (value == NULL)
- has_position = FALSE;
- else
- lat = g_value_get_double (value);
-
- value = g_hash_table_lookup (location, EMPATHY_LOCATION_LON);
- if (value == NULL)
- has_position = FALSE;
- else
- lon = g_value_get_double (value);
-
value = g_hash_table_lookup (location, EMPATHY_LOCATION_TIMESTAMP);
if (value == NULL)
{
diff --git a/libempathy-gtk/empathy-images.h b/libempathy-gtk/empathy-images.h
index 2c40b2ae7..86f1db641 100644
--- a/libempathy-gtk/empathy-images.h
+++ b/libempathy-gtk/empathy-images.h
@@ -40,6 +40,7 @@ G_BEGIN_DECLS
#define EMPATHY_IMAGE_TYPING "user-typing"
#define EMPATHY_IMAGE_CONTACT_INFORMATION "gtk-info"
#define EMPATHY_IMAGE_GROUP_MESSAGE "system-users"
+#define EMPATHY_IMAGE_SMS "stock_cell-phone"
#define EMPATHY_IMAGE_VOIP "audio-input-microphone"
#define EMPATHY_IMAGE_VIDEO_CALL "camera-web"
#define EMPATHY_IMAGE_LOG "document-open-recent"
diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c
index 3e404c39f..4a0b45cab 100644
--- a/libempathy-gtk/empathy-individual-menu.c
+++ b/libempathy-gtk/empathy-individual-menu.c
@@ -149,6 +149,14 @@ individual_menu_add_personas (GtkMenuShell *menu,
gtk_widget_show (action);
}
+ /* SMS */
+ if (features & EMPATHY_INDIVIDUAL_FEATURE_SMS)
+ {
+ action = empathy_individual_sms_menu_item_new (NULL, contact);
+ gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
+ gtk_widget_show (action);
+ }
+
if (features & EMPATHY_INDIVIDUAL_FEATURE_CALL)
{
/* Audio Call */
@@ -238,6 +246,17 @@ constructed (GObject *object)
}
}
+ /* SMS */
+ if (features & EMPATHY_INDIVIDUAL_FEATURE_SMS)
+ {
+ item = empathy_individual_sms_menu_item_new (individual, NULL);
+ if (item != NULL)
+ {
+ gtk_menu_shell_append (shell, item);
+ gtk_widget_show (item);
+ }
+ }
+
if (features & EMPATHY_INDIVIDUAL_FEATURE_CALL)
{
/* Audio Call */
@@ -499,7 +518,7 @@ empathy_individual_chat_menu_item_activated (GtkMenuItem *item,
{
g_return_if_fail (EMPATHY_IS_CONTACT (contact));
- empathy_chat_with_contact (contact, gtk_get_current_event_time ());
+ empathy_chat_with_contact (contact, empathy_get_current_action_time ());
}
GtkWidget *
@@ -537,13 +556,59 @@ empathy_individual_chat_menu_item_new (FolksIndividual *individual,
}
static void
+empathy_individual_sms_menu_item_activated (GtkMenuItem *item,
+ EmpathyContact *contact)
+{
+ g_return_if_fail (EMPATHY_IS_CONTACT (contact));
+
+ empathy_sms_contact_id (
+ empathy_contact_get_account (contact),
+ empathy_contact_get_id (contact),
+ empathy_get_current_action_time ());
+}
+
+GtkWidget *
+empathy_individual_sms_menu_item_new (FolksIndividual *individual,
+ EmpathyContact *contact)
+{
+ GtkWidget *item;
+ GtkWidget *image;
+
+ g_return_val_if_fail ((FOLKS_IS_INDIVIDUAL (individual) &&
+ empathy_folks_individual_contains_contact (individual)) ||
+ EMPATHY_IS_CONTACT (contact),
+ NULL);
+
+ item = gtk_image_menu_item_new_with_mnemonic (_("_SMS"));
+ image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_SMS,
+ GTK_ICON_SIZE_MENU);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+ gtk_widget_show (image);
+
+ if (contact != NULL)
+ {
+ menu_item_set_contact (item, contact,
+ G_CALLBACK (empathy_individual_sms_menu_item_activated),
+ EMPATHY_ACTION_SMS);
+ }
+ else
+ {
+ menu_item_set_first_contact (item, individual,
+ G_CALLBACK (empathy_individual_sms_menu_item_activated),
+ EMPATHY_ACTION_SMS);
+ }
+
+ return item;
+}
+
+static void
empathy_individual_audio_call_menu_item_activated (GtkMenuItem *item,
EmpathyContact *contact)
{
g_return_if_fail (EMPATHY_IS_CONTACT (contact));
empathy_call_new_with_streams (contact, TRUE, FALSE,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
}
GtkWidget *
@@ -585,7 +650,7 @@ empathy_individual_video_call_menu_item_activated (GtkMenuItem *item,
g_return_if_fail (EMPATHY_IS_CONTACT (contact));
empathy_call_new_with_streams (contact, TRUE, TRUE,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
}
GtkWidget *
diff --git a/libempathy-gtk/empathy-individual-menu.h b/libempathy-gtk/empathy-individual-menu.h
index 5b3d220df..c2841ad6d 100644
--- a/libempathy-gtk/empathy-individual-menu.h
+++ b/libempathy-gtk/empathy-individual-menu.h
@@ -36,7 +36,8 @@ typedef enum {
EMPATHY_INDIVIDUAL_FEATURE_INFO = 1 << 4,
EMPATHY_INDIVIDUAL_FEATURE_FAVOURITE = 1 << 5,
EMPATHY_INDIVIDUAL_FEATURE_LINK = 1 << 6,
- EMPATHY_INDIVIDUAL_FEATURE_ALL = (1 << 7) - 1,
+ EMPATHY_INDIVIDUAL_FEATURE_SMS = 1 << 7,
+ EMPATHY_INDIVIDUAL_FEATURE_ALL = (1 << 8) - 1,
} EmpathyIndividualFeatureFlags;
#define EMPATHY_TYPE_INDIVIDUAL_MENU (empathy_individual_menu_get_type ())
@@ -69,6 +70,8 @@ GtkWidget * empathy_individual_menu_new (FolksIndividual *individual,
EmpathyIndividualFeatureFlags features);
GtkWidget * empathy_individual_chat_menu_item_new (FolksIndividual *individual,
EmpathyContact *contact);
+GtkWidget * empathy_individual_sms_menu_item_new (FolksIndividual *individual,
+ EmpathyContact *contact);
GtkWidget * empathy_individual_audio_call_menu_item_new (
FolksIndividual *individual,
EmpathyContact *contact);
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 735e2db9d..b550245dc 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -1921,7 +1921,7 @@ individual_store_get_individual_status_icon_with_icon_name (
FolksIndividual *individual,
const gchar *status_icon_name)
{
- GdkPixbuf *pixbuf_status = NULL;
+ GdkPixbuf *pixbuf_status;
EmpathyIndividualStorePriv *priv;
const gchar *protocol_name = NULL;
gchar *icon_name = NULL;
@@ -1953,13 +1953,18 @@ individual_store_get_individual_status_icon_with_icon_name (
{
icon_name = g_strdup_printf ("%s", status_icon_name);
}
+
+ pixbuf_status = g_hash_table_lookup (priv->status_icons, icon_name);
+
if (pixbuf_status == NULL)
{
pixbuf_status =
empathy_pixbuf_contact_status_icon_with_icon_name (contact,
status_icon_name, show_protocols_here);
+
if (pixbuf_status != NULL)
{
+ /* pass the reference to the hash table */
g_hash_table_insert (priv->status_icons,
g_strdup (icon_name), pixbuf_status);
}
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c
index cc9d49e86..fcbc93fa4 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -1689,7 +1689,9 @@ static gboolean
individual_view_is_visible_individual (EmpathyIndividualView *self,
FolksIndividual *individual,
gboolean is_online,
- gboolean is_searching)
+ gboolean is_searching,
+ const gchar *group,
+ gboolean is_fake_group)
{
EmpathyIndividualViewPriv *priv = GET_PRIV (self);
EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget);
@@ -1721,8 +1723,14 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
is_favorite = folks_favourite_details_get_is_favourite (
FOLKS_FAVOURITE_DETAILS (individual));
- if (is_searching == FALSE)
- return (priv->show_offline || is_online || is_favorite);
+ if (is_searching == FALSE) {
+ if (is_favorite && is_fake_group &&
+ !tp_strdiff (group, EMPATHY_INDIVIDUAL_STORE_FAVORITE))
+ /* Always display favorite contacts in the favorite group */
+ return TRUE;
+
+ return (priv->show_offline || is_online);
+ }
/* check alias name */
str = folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (individual));
@@ -1757,6 +1765,28 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
return FALSE;
}
+static gchar *
+get_group (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gboolean *is_fake)
+{
+ GtkTreeIter parent_iter;
+ gchar *name = NULL;
+
+ *is_fake = FALSE;
+
+ if (!gtk_tree_model_iter_parent (model, &parent_iter, iter))
+ return NULL;
+
+ gtk_tree_model_get (model, &parent_iter,
+ EMPATHY_INDIVIDUAL_STORE_COL_NAME, &name,
+ EMPATHY_INDIVIDUAL_STORE_COL_IS_FAKE_GROUP, is_fake,
+ -1);
+
+ return name;
+}
+
+
static gboolean
individual_view_filter_visible_func (GtkTreeModel *model,
GtkTreeIter *iter,
@@ -1783,10 +1813,16 @@ individual_view_filter_visible_func (GtkTreeModel *model,
if (individual != NULL)
{
+ gchar *group;
+ gboolean is_fake_group;
+
+ group = get_group (model, iter, &is_fake_group);
+
visible = individual_view_is_visible_individual (self, individual,
- is_online, is_searching);
+ is_online, is_searching, group, is_fake_group);
g_object_unref (individual);
+ g_free (group);
/* FIXME: Work around bgo#626552/bgo#621076 */
if (visible == TRUE)
@@ -1809,6 +1845,9 @@ individual_view_filter_visible_func (GtkTreeModel *model,
for (valid = gtk_tree_model_iter_children (model, &child_iter, iter);
valid; valid = gtk_tree_model_iter_next (model, &child_iter))
{
+ gchar *group;
+ gboolean is_fake_group;
+
gtk_tree_model_get (model, &child_iter,
EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
@@ -1817,9 +1856,13 @@ individual_view_filter_visible_func (GtkTreeModel *model,
if (individual == NULL)
continue;
+ group = get_group (model, &child_iter, &is_fake_group);
+
visible = individual_view_is_visible_individual (self, individual,
- is_online, is_searching);
+ is_online, is_searching, group, is_fake_group);
+
g_object_unref (individual);
+ g_free (group);
/* show group if it has at least one visible contact in it */
if (visible == TRUE)
diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c
index 8184bc043..03b97d03d 100644
--- a/libempathy-gtk/empathy-location-manager.c
+++ b/libempathy-gtk/empathy-location-manager.c
@@ -24,7 +24,7 @@
#include <string.h>
#include <time.h>
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <telepathy-glib/account-manager.h>
#include <telepathy-glib/util.h>
diff --git a/libempathy-gtk/empathy-new-call-dialog.c b/libempathy-gtk/empathy-new-call-dialog.c
index fbff2770e..86430cd24 100644
--- a/libempathy-gtk/empathy-new-call-dialog.c
+++ b/libempathy-gtk/empathy-new-call-dialog.c
@@ -134,7 +134,8 @@ empathy_new_call_dialog_response (GtkDialog *dialog, int response_id)
* we return from this function. */
video = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_video));
- call_contact (account, contact_id, video, gtk_get_current_event_time ());
+ call_contact (account, contact_id, video,
+ empathy_get_current_action_time ());
out:
gtk_widget_destroy (GTK_WIDGET (dialog));
diff --git a/libempathy-gtk/empathy-new-message-dialog.c b/libempathy-gtk/empathy-new-message-dialog.c
index b9edb93e7..f3186ccf9 100644
--- a/libempathy-gtk/empathy-new-message-dialog.c
+++ b/libempathy-gtk/empathy-new-message-dialog.c
@@ -62,21 +62,40 @@ G_DEFINE_TYPE(EmpathyNewMessageDialog, empathy_new_message_dialog,
* to be started with any contact on any enabled account.
*/
+enum
+{
+ EMP_NEW_MESSAGE_TEXT,
+ EMP_NEW_MESSAGE_SMS,
+};
+
static void
empathy_new_message_dialog_response (GtkDialog *dialog, int response_id)
{
TpAccount *account;
const gchar *contact_id;
- if (response_id != GTK_RESPONSE_ACCEPT) goto out;
+ if (response_id < EMP_NEW_MESSAGE_TEXT) goto out;
contact_id = empathy_contact_selector_dialog_get_selected (
EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), NULL, &account);
if (EMP_STR_EMPTY (contact_id) || account == NULL) goto out;
- empathy_chat_with_contact_id (account, contact_id,
- gtk_get_current_event_time ());
+ switch (response_id)
+ {
+ case EMP_NEW_MESSAGE_TEXT:
+ empathy_chat_with_contact_id (account, contact_id,
+ empathy_get_current_action_time ());
+ break;
+
+ case EMP_NEW_MESSAGE_SMS:
+ empathy_sms_contact_id (account, contact_id,
+ empathy_get_current_action_time ());
+ break;
+
+ default:
+ g_warn_if_reached ();
+ }
out:
gtk_widget_destroy (GTK_WIDGET (dialog));
@@ -135,6 +154,63 @@ empathy_new_message_account_filter (EmpathyContactSelectorDialog *dialog,
tp_proxy_prepare_async (connection, features, conn_prepared_cb, cb_data);
}
+static void
+empathy_new_message_dialog_update_sms_button_sensitivity (GtkWidget *widget,
+ GParamSpec *pspec,
+ GtkWidget *button)
+{
+ GtkWidget *self = gtk_widget_get_toplevel (widget);
+ EmpathyContactSelectorDialog *dialog;
+ TpConnection *conn;
+ GPtrArray *rccs;
+ gboolean sensitive = FALSE;
+ guint i;
+
+ g_return_if_fail (EMPATHY_IS_NEW_MESSAGE_DIALOG (self));
+
+ dialog = EMPATHY_CONTACT_SELECTOR_DIALOG (self);
+
+ /* if the Text widget isn't sensitive, don't bother checking the caps */
+ if (!gtk_widget_get_sensitive (dialog->button_action))
+ goto finally;
+
+ empathy_contact_selector_dialog_get_selected (dialog, &conn, NULL);
+
+ if (conn == NULL)
+ goto finally;
+
+ /* iterate the rccs to find if SMS channels are supported, this should
+ * be in tp-glib */
+ rccs = tp_capabilities_get_channel_classes (
+ tp_connection_get_capabilities (conn));
+
+ for (i = 0; i < rccs->len; i++)
+ {
+ GHashTable *fixed;
+ GStrv allowed;
+ const char *type;
+ gboolean sms_channel;
+
+ tp_value_array_unpack (g_ptr_array_index (rccs, i), 2,
+ &fixed,
+ &allowed);
+
+ /* SMS channels are type:Text and sms-channel:True */
+ type = tp_asv_get_string (fixed, TP_PROP_CHANNEL_CHANNEL_TYPE);
+ sms_channel = tp_asv_get_boolean (fixed,
+ TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL, NULL);
+
+ sensitive = sms_channel &&
+ !tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_TEXT);
+
+ if (sensitive)
+ break;
+ }
+
+finally:
+ gtk_widget_set_sensitive (button, sensitive);
+}
+
static GObject *
empathy_new_message_dialog_constructor (GType type,
guint n_props,
@@ -165,8 +241,19 @@ empathy_new_message_dialog_init (EmpathyNewMessageDialog *dialog)
{
EmpathyContactSelectorDialog *parent = EMPATHY_CONTACT_SELECTOR_DIALOG (
dialog);
+ GtkWidget *button;
GtkWidget *image;
+ /* add an SMS button */
+ button = gtk_button_new_with_mnemonic (_("_SMS"));
+ image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_SMS,
+ GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image (GTK_BUTTON (button), image);
+
+ gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button,
+ EMP_NEW_MESSAGE_SMS);
+ gtk_widget_show (button);
+
/* add chat button */
parent->button_action = gtk_button_new_with_mnemonic (_("C_hat"));
image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_NEW_MESSAGE,
@@ -174,9 +261,18 @@ empathy_new_message_dialog_init (EmpathyNewMessageDialog *dialog)
gtk_button_set_image (GTK_BUTTON (parent->button_action), image);
gtk_dialog_add_action_widget (GTK_DIALOG (dialog), parent->button_action,
- GTK_RESPONSE_ACCEPT);
+ EMP_NEW_MESSAGE_TEXT);
gtk_widget_show (parent->button_action);
+ /* the parent class will update the sensitivity of button_action, propagate
+ * it */
+ g_signal_connect (parent->button_action, "notify::sensitive",
+ G_CALLBACK (empathy_new_message_dialog_update_sms_button_sensitivity),
+ button);
+ g_signal_connect (dialog, "notify::selected-account",
+ G_CALLBACK (empathy_new_message_dialog_update_sms_button_sensitivity),
+ button);
+
/* Tweak the dialog */
gtk_window_set_title (GTK_WINDOW (dialog), _("New Conversation"));
gtk_window_set_role (GTK_WINDOW (dialog), "new_message");
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index 2ab3383b3..06410c528 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -22,7 +22,7 @@
#include "config.h"
#include <string.h>
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <webkit/webkit.h>
#include <telepathy-glib/dbus.h>
@@ -59,11 +59,13 @@ typedef struct {
gint64 last_timestamp;
gboolean last_is_backlog;
guint pages_loading;
- GList *message_queue;
+ /* Queue of GValue* containing an EmpathyMessage or string */
+ GQueue message_queue;
GtkWidget *inspector_window;
GSettings *gsettings_chat;
gboolean has_focus;
gboolean has_unread_message;
+ gboolean allow_scrolling;
} EmpathyThemeAdiumPriv;
struct _EmpathyAdiumData {
@@ -73,26 +75,27 @@ struct _EmpathyAdiumData {
gchar *default_avatar_filename;
gchar *default_incoming_avatar_filename;
gchar *default_outgoing_avatar_filename;
- gchar *template_html;
- gchar *in_content_html;
- gsize in_content_len;
- gchar *in_context_html;
- gsize in_context_len;
- gchar *in_nextcontent_html;
- gsize in_nextcontent_len;
- gchar *in_nextcontext_html;
- gsize in_nextcontext_len;
- gchar *out_content_html;
- gsize out_content_len;
- gchar *out_context_html;
- gsize out_context_len;
- gchar *out_nextcontent_html;
- gsize out_nextcontent_len;
- gchar *out_nextcontext_html;
- gsize out_nextcontext_len;
- gchar *status_html;
- gsize status_len;
GHashTable *info;
+ guint version;
+ gboolean custom_template;
+
+ /* HTML bits */
+ const gchar *template_html;
+ const gchar *content_html;
+ const gchar *in_content_html;
+ const gchar *in_context_html;
+ const gchar *in_nextcontent_html;
+ const gchar *in_nextcontext_html;
+ const gchar *out_content_html;
+ const gchar *out_context_html;
+ const gchar *out_nextcontent_html;
+ const gchar *out_nextcontext_html;
+ const gchar *status_html;
+
+ /* Above html strings are pointers to strings stored in this array.
+ * We do this because of fallbacks, some htmls could be pointing the
+ * same string. */
+ GPtrArray *strings_to_free;
};
static void theme_adium_iface_init (EmpathyChatViewIface *iface);
@@ -191,6 +194,36 @@ theme_adium_open_address_cb (GtkMenuItem *menuitem,
g_free (uri);
}
+/* Replace each %@ in format with string passed in args */
+static gchar *
+string_with_format (const gchar *format,
+ const gchar *first_string,
+ ...)
+{
+ va_list args;
+ const gchar *str;
+ GString *result;
+
+ va_start (args, first_string);
+ result = g_string_sized_new (strlen (format));
+ for (str = first_string; str != NULL; str = va_arg (args, const gchar *)) {
+ const gchar *next;
+
+ next = strstr (format, "%@");
+ if (next == NULL) {
+ break;
+ }
+
+ g_string_append_len (result, format, next - format);
+ g_string_append (result, str);
+ format = next + 2;
+ }
+ g_string_append (result, format);
+ va_end (args);
+
+ return g_string_free (result, FALSE);
+}
+
static void
theme_adium_match_newline (const gchar *text,
gssize len,
@@ -283,7 +316,7 @@ theme_adium_parse_body (EmpathyThemeAdium *self,
static void
escape_and_append_len (GString *string, const gchar *str, gint len)
{
- while (*str != '\0' && len != 0) {
+ while (str != NULL && *str != '\0' && len != 0) {
switch (*str) {
case '\\':
/* \ becomes \\ */
@@ -345,10 +378,36 @@ theme_adium_match_with_format (const gchar **str,
return TRUE;
}
+/* List of colors used by %senderColor%. Copied from
+ * adium/Frameworks/AIUtilities\ Framework/Source/AIColorAdditions.m
+ */
+static gchar *colors[] = {
+ "aqua", "aquamarine", "blue", "blueviolet", "brown", "burlywood", "cadetblue",
+ "chartreuse", "chocolate", "coral", "cornflowerblue", "crimson", "cyan",
+ "darkblue", "darkcyan", "darkgoldenrod", "darkgreen", "darkgrey", "darkkhaki",
+ "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred",
+ "darksalmon", "darkseagreen", "darkslateblue", "darkslategrey",
+ "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgrey",
+ "dodgerblue", "firebrick", "forestgreen", "fuchsia", "gold", "goldenrod",
+ "green", "greenyellow", "grey", "hotpink", "indianred", "indigo", "lawngreen",
+ "lightblue", "lightcoral",
+ "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen",
+ "lightskyblue", "lightslategrey", "lightsteelblue", "lime", "limegreen",
+ "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid",
+ "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen",
+ "mediumturquoise", "mediumvioletred", "midnightblue", "navy", "olive",
+ "olivedrab", "orange", "orangered", "orchid", "palegreen", "paleturquoise",
+ "palevioletred", "peru", "pink", "plum", "powderblue", "purple", "red",
+ "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen",
+ "sienna", "silver", "skyblue", "slateblue", "slategrey", "springgreen",
+ "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet",
+ "yellowgreen",
+};
+
static void
theme_adium_append_html (EmpathyThemeAdium *theme,
const gchar *func,
- const gchar *html, gsize len,
+ const gchar *html,
const gchar *message,
const gchar *avatar_filename,
const gchar *name,
@@ -363,10 +422,10 @@ theme_adium_append_html (EmpathyThemeAdium *theme,
gchar *script;
/* Make some search-and-replace in the html code */
- string = g_string_sized_new (len + strlen (message));
+ string = g_string_sized_new (strlen (html) + strlen (message));
g_string_append_printf (string, "%s(\"", func);
for (cur = html; *cur != '\0'; cur++) {
- const gchar *replace = "";
+ const gchar *replace = NULL;
gchar *dup_replace = NULL;
gchar *format = NULL;
@@ -380,11 +439,15 @@ theme_adium_append_html (EmpathyThemeAdium *theme,
} else if (theme_adium_match (&cur, "%sender%")) {
replace = name;
} else if (theme_adium_match (&cur, "%senderColor%")) {
- /* FIXME: A color derived from the user's name. If a
- * colon separated list of HTML colors is at
+ /* A color derived from the user's name.
+ * FIXME: If a colon separated list of HTML colors is at
* Incoming/SenderColors.txt it will be used instead of
* the default colors.
*/
+ if (contact_id != NULL) {
+ guint hash = g_str_hash (contact_id);
+ replace = colors[hash % G_N_ELEMENTS (colors)];
+ }
} else if (theme_adium_match (&cur, "%senderStatusIcon%")) {
/* FIXME: The path to the status icon of the sender
* (available, away, etc...)
@@ -493,13 +556,10 @@ theme_adium_append_event_escaped (EmpathyChatView *view,
EmpathyThemeAdium *theme = EMPATHY_THEME_ADIUM (view);
EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
- if (priv->data->status_html) {
- theme_adium_append_html (theme, "appendMessage",
- priv->data->status_html,
- priv->data->status_len,
- escaped, NULL, NULL, NULL, NULL,
- "event", empathy_time_get_current (), FALSE);
- }
+ theme_adium_append_html (theme, "appendMessage",
+ priv->data->status_html, escaped, NULL, NULL, NULL,
+ NULL, "event",
+ empathy_time_get_current (), FALSE);
/* There is no last contact */
if (priv->last_contact) {
@@ -511,11 +571,17 @@ theme_adium_append_event_escaped (EmpathyChatView *view,
static void
theme_adium_remove_focus_marks (EmpathyThemeAdium *theme)
{
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
WebKitDOMDocument *dom;
WebKitDOMNodeList *nodes;
guint i;
GError *error = NULL;
+ if (!priv->has_unread_message)
+ return;
+
+ priv->has_unread_message = FALSE;
+
dom = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (theme));
if (dom == NULL) {
return;
@@ -580,17 +646,18 @@ theme_adium_append_message (EmpathyChatView *view,
EmpathyAvatar *avatar;
const gchar *avatar_filename = NULL;
gint64 timestamp;
- gchar *html = NULL;
- gsize len = 0;
+ const gchar *html = NULL;
const gchar *func;
const gchar *service_name;
GString *message_classes = NULL;
gboolean is_backlog;
gboolean consecutive;
+ gboolean action;
if (priv->pages_loading != 0) {
- priv->message_queue = g_list_prepend (priv->message_queue,
- g_object_ref (msg));
+ GValue *value = tp_g_value_slice_new (EMPATHY_TYPE_MESSAGE);
+ g_value_set_object (value, msg);
+ g_queue_push_tail (&priv->message_queue, value);
return;
}
@@ -606,17 +673,21 @@ theme_adium_append_message (EmpathyChatView *view,
body_escaped = theme_adium_parse_body (theme, body);
name = empathy_contact_get_alias (sender);
contact_id = empathy_contact_get_id (sender);
+ action = (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION);
- /* If this is a /me, append an event */
- if (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) {
+ /* If this is a /me probably */
+ if (action) {
gchar *str;
- str = g_strdup_printf ("%s %s", name, body_escaped);
- theme_adium_append_event_escaped (view, str);
-
- g_free (str);
+ if (priv->data->version >= 4 || !priv->data->custom_template) {
+ str = g_strdup_printf ("<span class='actionMessageUserName'>%s</span>"
+ "<span class='actionMessageBody'>%s</span>",
+ name, body_escaped);
+ } else {
+ str = g_strdup_printf ("*%s*", body_escaped);
+ }
g_free (body_escaped);
- return;
+ body_escaped = str;
}
/* Get the avatar filename, or a fallback */
@@ -656,10 +727,6 @@ theme_adium_append_message (EmpathyChatView *view,
message_classes = g_string_new ("message");
if (!priv->has_focus && !is_backlog) {
if (!priv->has_unread_message) {
- /* This is the first message we receive since we lost
- * focus; remove previous unread marks. */
- theme_adium_remove_focus_marks (theme);
-
g_string_append (message_classes, " firstFocus");
priv->has_unread_message = TRUE;
}
@@ -676,95 +743,56 @@ theme_adium_append_message (EmpathyChatView *view,
} else {
g_string_append (message_classes, " incoming");
}
+ if (empathy_message_should_highlight (msg)) {
+ g_string_append (message_classes, " mention");
+ }
+ if (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY) {
+ g_string_append (message_classes, " autoreply");
+ }
+ if (action) {
+ g_string_append (message_classes, " action");
+ }
/* FIXME: other classes:
- * autoreply - the message is an automatic response, generally due to an
- * away status
- * mention - the incoming message (in groupchat) matches your username
- * or one of the mention keywords specified in Adium's
- * advanced prefs.
* status - the message is a status change
* event - the message is a notification of something happening
* (for example, encryption being turned on)
- * %status% - See %status% in theme_adium_append_html()
+ * %status% - See %status% in theme_adium_append_html ()
*/
/* Define javascript function to use */
if (consecutive) {
- func = "appendNextMessage";
+ func = priv->allow_scrolling ? "appendNextMessage" : "appendNextMessageNoScroll";
} else {
- func = "appendMessage";
+ func = priv->allow_scrolling ? "appendMessage" : "appendMessageNoScroll";
}
- /* Outgoing */
if (empathy_contact_is_user (sender)) {
- if (consecutive) {
- if (is_backlog) {
- html = priv->data->out_nextcontext_html;
- len = priv->data->out_nextcontext_len;
- }
-
- /* Not backlog, or fallback if NextContext.html
- * is missing */
- if (html == NULL) {
- html = priv->data->out_nextcontent_html;
- len = priv->data->out_nextcontent_len;
- }
- }
-
- /* Not consecutive, or fallback if NextContext.html and/or
- * NextContent.html are missing */
- if (html == NULL) {
- if (is_backlog) {
- html = priv->data->out_context_html;
- len = priv->data->out_context_len;
- }
-
- if (html == NULL) {
- html = priv->data->out_content_html;
- len = priv->data->out_content_len;
- }
- }
- }
-
- /* Incoming, or fallback if outgoing files are missing */
- if (html == NULL) {
- if (consecutive) {
- if (is_backlog) {
- html = priv->data->in_nextcontext_html;
- len = priv->data->in_nextcontext_len;
- }
-
- /* Note backlog, or fallback if NextContext.html
- * is missing */
- if (html == NULL) {
- html = priv->data->in_nextcontent_html;
- len = priv->data->in_nextcontent_len;
- }
+ /* out */
+ if (is_backlog) {
+ /* context */
+ html = consecutive ? priv->data->out_nextcontext_html : priv->data->out_context_html;
+ } else {
+ /* content */
+ html = consecutive ? priv->data->out_nextcontent_html : priv->data->out_content_html;
}
- /* Not consecutive, or fallback if NextContext.html and/or
- * NextContent.html are missing */
- if (html == NULL) {
- if (is_backlog) {
- html = priv->data->in_context_html;
- len = priv->data->in_context_len;
- }
-
- if (html == NULL) {
- html = priv->data->in_content_html;
- len = priv->data->in_content_len;
- }
+ /* remove all the unread marks when we are sending a message */
+ theme_adium_remove_focus_marks (theme);
+ } else {
+ /* in */
+ if (is_backlog) {
+ /* context */
+ html = consecutive ? priv->data->in_nextcontext_html : priv->data->in_context_html;
+ } else {
+ /* content */
+ html = consecutive ? priv->data->in_nextcontent_html : priv->data->in_content_html;
}
}
- if (html != NULL) {
- theme_adium_append_html (theme, func, html, len, body_escaped,
- avatar_filename, name, contact_id,
- service_name, message_classes->str,
- timestamp, is_backlog);
- } else {
- DEBUG ("Couldn't find HTML file for this message");
- }
+ theme_adium_append_html (theme, func, html, body_escaped,
+ avatar_filename, name, contact_id,
+ service_name, message_classes->str,
+ timestamp, is_backlog);
/* Keep the sender of the last displayed message */
if (priv->last_contact) {
@@ -782,8 +810,15 @@ static void
theme_adium_append_event (EmpathyChatView *view,
const gchar *str)
{
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (view);
gchar *str_escaped;
+ if (priv->pages_loading != 0) {
+ g_queue_push_tail (&priv->message_queue,
+ tp_g_value_slice_new_string (str));
+ return;
+ }
+
str_escaped = g_markup_escape_text (str, -1);
theme_adium_append_event_escaped (view, str_escaped);
g_free (str_escaped);
@@ -793,14 +828,18 @@ static void
theme_adium_scroll (EmpathyChatView *view,
gboolean allow_scrolling)
{
- /* FIXME: Is it possible? I guess we need a js function, but I don't
- * see any... */
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (view);
+
+ priv->allow_scrolling = allow_scrolling;
+ if (allow_scrolling) {
+ empathy_chat_view_scroll_down (view);
+ }
}
static void
theme_adium_scroll_down (EmpathyChatView *view)
{
- webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view), "scrollToBottom()");
+ webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view), "alignChat(true);");
}
static gboolean
@@ -891,11 +930,12 @@ static void
theme_adium_focus_toggled (EmpathyChatView *view,
gboolean has_focus)
{
+ EmpathyThemeAdium *self = (EmpathyThemeAdium *) view;
EmpathyThemeAdiumPriv *priv = GET_PRIV (view);
priv->has_focus = has_focus;
- if (priv->has_focus) {
- priv->has_unread_message = FALSE;
+ if (!priv->has_focus) {
+ theme_adium_remove_focus_marks (self);
}
}
@@ -1028,6 +1068,7 @@ theme_adium_load_finished_cb (WebKitWebView *view,
{
EmpathyThemeAdiumPriv *priv = GET_PRIV (view);
EmpathyChatView *chat_view = EMPATHY_CHAT_VIEW (view);
+ GList *l;
DEBUG ("Page loaded");
priv->pages_loading--;
@@ -1036,14 +1077,20 @@ theme_adium_load_finished_cb (WebKitWebView *view,
return;
/* Display queued messages */
- priv->message_queue = g_list_reverse (priv->message_queue);
- while (priv->message_queue) {
- EmpathyMessage *message = priv->message_queue->data;
+ for (l = priv->message_queue.head; l != NULL; l = l->next) {
+ GValue *value = l->data;
+
+ if (G_VALUE_HOLDS_OBJECT (value)) {
+ theme_adium_append_message (chat_view,
+ g_value_get_object (value));
+ } else {
+ theme_adium_append_event (chat_view,
+ g_value_get_string (value));
+ }
- theme_adium_append_message (chat_view, message);
- priv->message_queue = g_list_remove (priv->message_queue, message);
- g_object_unref (message);
+ tp_g_value_slice_free (value);
}
+ g_queue_clear (&priv->message_queue);
}
static void
@@ -1319,6 +1366,8 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
theme->priv = priv;
+ g_queue_init (&priv->message_queue);
+ priv->allow_scrolling = TRUE;
priv->smiley_manager = empathy_smiley_manager_dup_singleton ();
g_signal_connect (theme, "load-finished",
@@ -1359,18 +1408,24 @@ empathy_adium_path_is_valid (const gchar *path)
ret = g_file_test (file, G_FILE_TEST_EXISTS);
g_free (file);
- if (ret == FALSE)
- return ret;
+ if (!ret)
+ return FALSE;
/* We ship a default Template.html as fallback if there is any problem
* with the one inside the theme. The only other required file is
- * Content.html for incoming messages (outgoing fallback to use
- * incoming). */
- file = g_build_filename (path, "Contents", "Resources", "Incoming",
- "Content.html", NULL);
+ * Content.html OR Incoming/Content.html*/
+ file = g_build_filename (path, "Contents", "Resources", "Content.html",
+ NULL);
ret = g_file_test (file, G_FILE_TEST_EXISTS);
g_free (file);
+ if (!ret) {
+ file = g_build_filename (path, "Contents", "Resources", "Incoming",
+ "Content.html", NULL);
+ ret = g_file_test (file, G_FILE_TEST_EXISTS);
+ g_free (file);
+ }
+
return ret;
}
@@ -1400,6 +1455,108 @@ empathy_adium_info_new (const gchar *path)
return info;
}
+static guint
+adium_info_get_version (GHashTable *info)
+{
+ return tp_asv_get_int32 (info, "MessageViewVersion", NULL);
+}
+
+static const gchar *
+adium_info_get_no_variant_name (GHashTable *info)
+{
+ const gchar *name = tp_asv_get_string (info, "DisplayNameForNoVariant");
+ return name ? name : _("Normal");
+}
+
+static const gchar *
+adium_info_get_default_or_first_variant (GHashTable *info)
+{
+ const gchar *name;
+ GPtrArray *variants;
+
+ name = empathy_adium_info_get_default_variant (info);
+ if (name != NULL) {
+ return name;
+ }
+
+ variants = empathy_adium_info_get_available_variants (info);
+ g_assert (variants->len > 0);
+ return g_ptr_array_index (variants, 0);
+}
+
+static gchar *
+adium_info_dup_path_for_variant (GHashTable *info,
+ const gchar *variant)
+{
+ guint version = adium_info_get_version (info);
+ const gchar *no_variant = adium_info_get_no_variant_name (info);
+
+ if (version <= 2 && !tp_strdiff (variant, no_variant)) {
+ return g_strdup ("main.css");
+ }
+
+ return g_strdup_printf ("Variants/%s.css", variant);
+
+}
+
+const gchar *
+empathy_adium_info_get_default_variant (GHashTable *info)
+{
+ if (adium_info_get_version (info) <= 2) {
+ return adium_info_get_no_variant_name (info);
+ }
+
+ return tp_asv_get_string (info, "DefaultVariant");
+}
+
+GPtrArray *
+empathy_adium_info_get_available_variants (GHashTable *info)
+{
+ GPtrArray *variants;
+ const gchar *path;
+ gchar *dirpath;
+ GDir *dir;
+
+ variants = tp_asv_get_boxed (info, "AvailableVariants", G_TYPE_PTR_ARRAY);
+ if (variants != NULL) {
+ return variants;
+ }
+
+ variants = g_ptr_array_new_with_free_func (g_free);
+ tp_asv_take_boxed (info, g_strdup ("AvailableVariants"),
+ G_TYPE_PTR_ARRAY, variants);
+
+ path = tp_asv_get_string (info, "path");
+ dirpath = g_build_filename (path, "Contents", "Resources", "Variants", NULL);
+ dir = g_dir_open (dirpath, 0, NULL);
+ if (dir != NULL) {
+ const gchar *name;
+
+ for (name = g_dir_read_name (dir);
+ name != NULL;
+ name = g_dir_read_name (dir)) {
+ gchar *display_name;
+
+ if (!g_str_has_suffix (name, ".css")) {
+ continue;
+ }
+
+ display_name = g_strdup (name);
+ strstr (display_name, ".css")[0] = '\0';
+ g_ptr_array_add (variants, display_name);
+ }
+ g_dir_close (dir);
+ }
+ g_free (dirpath);
+
+ if (adium_info_get_version (info) <= 2) {
+ g_ptr_array_add (variants,
+ g_strdup (adium_info_get_no_variant_name (info)));
+ }
+
+ return variants;
+}
+
GType
empathy_adium_data_get_type (void)
{
@@ -1419,16 +1576,10 @@ EmpathyAdiumData *
empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
{
EmpathyAdiumData *data;
- gchar *file;
gchar *template_html = NULL;
- gsize template_len;
gchar *footer_html = NULL;
- gsize footer_len;
- GString *string;
- gchar **strv = NULL;
- gchar *css_path;
- guint len = 0;
- guint i = 0;
+ gchar *variant_path;
+ gchar *tmp;
g_return_val_if_fail (empathy_adium_path_is_valid (path), NULL);
@@ -1438,121 +1589,121 @@ empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
data->basedir = g_strconcat (path, G_DIR_SEPARATOR_S "Contents"
G_DIR_SEPARATOR_S "Resources" G_DIR_SEPARATOR_S, NULL);
data->info = g_hash_table_ref (info);
+ data->version = adium_info_get_version (info);
+ data->strings_to_free = g_ptr_array_new_with_free_func (g_free);
+
+ DEBUG ("Loading theme at %s", path);
+
+#define LOAD(path, var) \
+ tmp = g_build_filename (data->basedir, path, NULL); \
+ g_file_get_contents (tmp, &var, NULL, NULL); \
+ g_free (tmp); \
+
+#define LOAD_CONST(path, var) \
+ { \
+ gchar *content; \
+ LOAD (path, content); \
+ if (content != NULL) { \
+ g_ptr_array_add (data->strings_to_free, content); \
+ } \
+ var = content; \
+ }
/* Load html files */
- file = g_build_filename (data->basedir, "Incoming", "Content.html", NULL);
- g_file_get_contents (file, &data->in_content_html, &data->in_content_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Incoming", "NextContent.html", NULL);
- g_file_get_contents (file, &data->in_nextcontent_html, &data->in_nextcontent_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Incoming", "Context.html", NULL);
- g_file_get_contents (file, &data->in_context_html, &data->in_context_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Incoming", "NextContext.html", NULL);
- g_file_get_contents (file, &data->in_nextcontext_html, &data->in_nextcontext_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Outgoing", "Content.html", NULL);
- g_file_get_contents (file, &data->out_content_html, &data->out_content_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Outgoing", "NextContent.html", NULL);
- g_file_get_contents (file, &data->out_nextcontent_html, &data->out_nextcontent_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Outgoing", "Context.html", NULL);
- g_file_get_contents (file, &data->out_context_html, &data->out_context_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Outgoing", "NextContext.html", NULL);
- g_file_get_contents (file, &data->out_nextcontext_html, &data->out_nextcontext_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Status.html", NULL);
- g_file_get_contents (file, &data->status_html, &data->status_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Footer.html", NULL);
- g_file_get_contents (file, &footer_html, &footer_len, NULL);
- g_free (file);
-
- file = g_build_filename (data->basedir, "Incoming", "buddy_icon.png", NULL);
- if (g_file_test (file, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
- data->default_incoming_avatar_filename = file;
- } else {
- g_free (file);
+ LOAD_CONST ("Content.html", data->content_html);
+ LOAD_CONST ("Incoming/Content.html", data->in_content_html);
+ LOAD_CONST ("Incoming/NextContent.html", data->in_nextcontent_html);
+ LOAD_CONST ("Incoming/Context.html", data->in_context_html);
+ LOAD_CONST ("Incoming/NextContext.html", data->in_nextcontext_html);
+ LOAD_CONST ("Outgoing/Content.html", data->out_content_html);
+ LOAD_CONST ("Outgoing/NextContent.html", data->out_nextcontent_html);
+ LOAD_CONST ("Outgoing/Context.html", data->out_context_html);
+ LOAD_CONST ("Outgoing/NextContext.html", data->out_nextcontext_html);
+ LOAD_CONST ("Status.html", data->status_html);
+ LOAD ("Template.html", template_html);
+ LOAD ("Footer.html", footer_html);
+
+#undef LOAD_CONST
+#undef LOAD
+
+ /* HTML fallbacks: If we have at least content OR in_content, then
+ * everything else gets a fallback */
+
+#define FALLBACK(html, fallback) \
+ if (html == NULL) { \
+ html = fallback; \
}
- file = g_build_filename (data->basedir, "Outgoing", "buddy_icon.png", NULL);
- if (g_file_test (file, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
- data->default_outgoing_avatar_filename = file;
- } else {
- g_free (file);
+ /* in_nextcontent -> in_content -> content */
+ FALLBACK (data->in_content_html, data->content_html);
+ FALLBACK (data->in_nextcontent_html, data->in_content_html);
+
+ /* context -> content */
+ FALLBACK (data->in_context_html, data->in_content_html);
+ FALLBACK (data->in_nextcontext_html, data->in_nextcontent_html);
+ FALLBACK (data->out_context_html, data->out_content_html);
+ FALLBACK (data->out_nextcontext_html, data->out_nextcontent_html);
+
+ /* out -> in */
+ FALLBACK (data->out_content_html, data->in_content_html);
+ FALLBACK (data->out_nextcontent_html, data->in_nextcontent_html);
+ FALLBACK (data->out_context_html, data->in_context_html);
+ FALLBACK (data->out_nextcontext_html, data->in_nextcontext_html);
+
+ /* status -> in_content */
+ FALLBACK (data->status_html, data->in_content_html);
+
+#undef FALLBACK
+
+ /* template -> empathy's template */
+ data->custom_template = (template_html != NULL);
+ if (template_html == NULL) {
+ tmp = empathy_file_lookup ("Template.html", "data");
+ g_file_get_contents (tmp, &template_html, NULL, NULL);
+ g_free (tmp);
}
- css_path = g_build_filename (data->basedir, "main.css", NULL);
-
- /* There is 2 formats for Template.html: The old one has 4 parameters,
- * the new one has 5 parameters. */
- file = g_build_filename (data->basedir, "Template.html", NULL);
- if (g_file_get_contents (file, &template_html, &template_len, NULL)) {
- strv = g_strsplit (template_html, "%@", -1);
- len = g_strv_length (strv);
+ /* Default avatar */
+ tmp = g_build_filename (data->basedir, "Incoming", "buddy_icon.png", NULL);
+ if (g_file_test (tmp, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+ data->default_incoming_avatar_filename = tmp;
+ } else {
+ g_free (tmp);
}
- g_free (file);
-
- if (len != 5 && len != 6) {
- /* Either the theme has no template or it don't have the good
- * number of parameters. Fallback to use our own template. */
- g_free (template_html);
- g_strfreev (strv);
-
- file = empathy_file_lookup ("Template.html", "data");
- g_file_get_contents (file, &template_html, &template_len, NULL);
- g_free (file);
- strv = g_strsplit (template_html, "%@", -1);
- len = g_strv_length (strv);
+ tmp = g_build_filename (data->basedir, "Outgoing", "buddy_icon.png", NULL);
+ if (g_file_test (tmp, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+ data->default_outgoing_avatar_filename = tmp;
+ } else {
+ g_free (tmp);
}
- /* Replace %@ with the needed information in the template html. */
- string = g_string_sized_new (template_len);
- g_string_append (string, strv[i++]);
- g_string_append (string, data->basedir);
- g_string_append (string, strv[i++]);
- if (len == 6) {
- const gchar *variant;
-
- /* We include main.css by default */
- g_string_append_printf (string, "@import url(\"%s\");", css_path);
- g_string_append (string, strv[i++]);
- variant = tp_asv_get_string (data->info, "DefaultVariant");
- if (variant) {
- g_string_append (string, "Variants/");
- g_string_append (string, variant);
- g_string_append (string, ".css");
- }
+ variant_path = adium_info_dup_path_for_variant (info,
+ adium_info_get_default_or_first_variant (info));
+
+ /* Old custom templates had only 4 parameters.
+ * New templates have 5 parameters */
+ if (data->version <= 2 && data->custom_template) {
+ tmp = string_with_format (template_html,
+ data->basedir,
+ variant_path,
+ "", /* The header */
+ footer_html ? footer_html : "",
+ NULL);
} else {
- /* FIXME: We should set main.css OR the variant css */
- g_string_append (string, css_path);
+ tmp = string_with_format (template_html,
+ data->basedir,
+ data->version <= 2 ? "" : "@import url( \"main.css\" );",
+ variant_path,
+ "", /* The header */
+ footer_html ? footer_html : "",
+ NULL);
}
- g_string_append (string, strv[i++]);
- g_string_append (string, ""); /* We don't want header */
- g_string_append (string, strv[i++]);
- /* FIXME: We should replace adium %macros% in footer */
- if (footer_html) {
- g_string_append (string, footer_html);
- }
- g_string_append (string, strv[i++]);
- data->template_html = g_string_free (string, FALSE);
+ g_ptr_array_add (data->strings_to_free, tmp);
+ data->template_html = tmp;
- g_free (footer_html);
g_free (template_html);
- g_free (css_path);
- g_strfreev (strv);
+ g_free (footer_html);
+ g_free (variant_path);
return data;
}
@@ -1588,20 +1739,12 @@ empathy_adium_data_unref (EmpathyAdiumData *data)
if (g_atomic_int_dec_and_test (&data->ref_count)) {
g_free (data->path);
g_free (data->basedir);
- g_free (data->template_html);
- g_free (data->in_content_html);
- g_free (data->in_nextcontent_html);
- g_free (data->in_context_html);
- g_free (data->in_nextcontext_html);
- g_free (data->out_content_html);
- g_free (data->out_nextcontent_html);
- g_free (data->out_context_html);
- g_free (data->out_nextcontext_html);
g_free (data->default_avatar_filename);
g_free (data->default_incoming_avatar_filename);
g_free (data->default_outgoing_avatar_filename);
- g_free (data->status_html);
g_hash_table_unref (data->info);
+ g_ptr_array_unref (data->strings_to_free);
+
g_slice_free (EmpathyAdiumData, data);
}
}
diff --git a/libempathy-gtk/empathy-theme-adium.h b/libempathy-gtk/empathy-theme-adium.h
index a8ed19de4..d0ad0170d 100644
--- a/libempathy-gtk/empathy-theme-adium.h
+++ b/libempathy-gtk/empathy-theme-adium.h
@@ -52,7 +52,10 @@ GType empathy_theme_adium_get_type (void) G_GNUC_CONST;
EmpathyThemeAdium *empathy_theme_adium_new (EmpathyAdiumData *data);
gboolean empathy_adium_path_is_valid (const gchar *path);
+
GHashTable *empathy_adium_info_new (const gchar *path);
+const gchar * empathy_adium_info_get_default_variant (GHashTable *info);
+GPtrArray * empathy_adium_info_get_available_variants (GHashTable *info);
#define EMPATHY_TYPE_ADIUM_DATA (empathy_adium_data_get_type ())
GType empathy_adium_data_get_type (void) G_GNUC_CONST;
diff --git a/libempathy-gtk/empathy-theme-manager.c b/libempathy-gtk/empathy-theme-manager.c
index 1a4f5ae47..0dcb40a70 100644
--- a/libempathy-gtk/empathy-theme-manager.c
+++ b/libempathy-gtk/empathy-theme-manager.c
@@ -54,6 +54,7 @@ typedef struct {
gchar *adium_path;
GtkSettings *settings;
GList *boxes_views;
+ guint emit_changed_idle;
} EmpathyThemeManagerPriv;
enum {
@@ -392,6 +393,51 @@ theme_manager_ensure_theme_exists (const gchar *name)
return FALSE;
}
+typedef enum {
+ THEME_TYPE_UNSET,
+ THEME_TYPE_IRC,
+ THEME_TYPE_BOXED,
+ THEME_TYPE_ADIUM,
+} ThemeType;
+
+static ThemeType
+theme_type (const gchar *name)
+{
+ if (name == NULL) {
+ return THEME_TYPE_UNSET;
+ } else if (!tp_strdiff (name, "classic")) {
+ return THEME_TYPE_IRC;
+ } else if (!tp_strdiff (name, "adium")) {
+ return THEME_TYPE_ADIUM;
+ } else {
+ return THEME_TYPE_BOXED;
+ }
+}
+
+static gboolean
+theme_manager_emit_changed_idle_cb (gpointer manager)
+{
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+
+ g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
+ priv->emit_changed_idle = 0;
+
+ return FALSE;
+}
+
+static void
+theme_manager_emit_changed (EmpathyThemeManager *manager)
+{
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+
+ /* We emit the signal in idle callback to be sure we emit it only once
+ * in the case both the name and adium_path changed */
+ if (priv->emit_changed_idle == 0) {
+ priv->emit_changed_idle = g_idle_add (
+ theme_manager_emit_changed_idle_cb, manager);
+ }
+}
+
static void
theme_manager_notify_name_cb (GSettings *gsettings_chat,
const gchar *key,
@@ -400,25 +446,29 @@ theme_manager_notify_name_cb (GSettings *gsettings_chat,
EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
gchar *name;
+ ThemeType old_type;
+ ThemeType new_type;
name = g_settings_get_string (gsettings_chat, key);
- if (!theme_manager_ensure_theme_exists (name) ||
- !tp_strdiff (priv->name, name)) {
- if (!priv->name) {
- priv->name = g_strdup ("classic");
- }
+ /* Fallback to classic theme if current setting does not exist */
+ if (!theme_manager_ensure_theme_exists (name)) {
+ g_free (name);
+ name = g_strdup ("classic");
+ }
+ /* If theme did not change, nothing to do */
+ if (!tp_strdiff (priv->name, name)) {
g_free (name);
return;
}
+ old_type = theme_type (priv->name);
g_free (priv->name);
priv->name = name;
+ new_type = theme_type (priv->name);
- if (!tp_strdiff (priv->name, "simple") ||
- !tp_strdiff (priv->name, "clean") ||
- !tp_strdiff (priv->name, "blue")) {
+ if (new_type == THEME_TYPE_BOXED) {
GList *l;
/* The theme changes to a boxed one, we can update boxed views */
@@ -428,7 +478,15 @@ theme_manager_notify_name_cb (GSettings *gsettings_chat,
}
}
- g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
+ /* Do not emit theme-changed if theme type didn't change, or if it was
+ * unset (the manager is under construction). If theme changed from a
+ * boxed to another boxed, all view are updated in place. If theme
+ * changed from an adium to another adium, the signal will be emited
+ * from theme_manager_notify_adium_path_cb ()
+ */
+ if (old_type != new_type && old_type != THEME_TYPE_UNSET) {
+ theme_manager_emit_changed (manager);
+ }
}
static void
@@ -439,6 +497,7 @@ theme_manager_notify_adium_path_cb (GSettings *gsettings_chat,
EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
gchar *adium_path = NULL;
+ gboolean was_set;
adium_path = g_settings_get_string (gsettings_chat, key);
@@ -447,10 +506,16 @@ theme_manager_notify_adium_path_cb (GSettings *gsettings_chat,
return;
}
+ was_set = (priv->adium_path != NULL);
+
g_free (priv->adium_path);
priv->adium_path = adium_path;
- g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
+ /* Do not emit the signal if path was not set yet (the manager is under
+ * construction) */
+ if (was_set) {
+ theme_manager_emit_changed (manager);
+ }
}
static void
@@ -470,6 +535,10 @@ theme_manager_finalize (GObject *object)
}
g_list_free (priv->boxes_views);
+ if (priv->emit_changed_idle != 0) {
+ g_source_remove (priv->emit_changed_idle);
+ }
+
G_OBJECT_CLASS (empathy_theme_manager_parent_class)->finalize (object);
}
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index 89c6c09ae..cc829a894 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -1994,3 +1994,9 @@ empathy_context_menu_new (GtkWidget *attach_to)
return menu;
}
+
+gint64
+empathy_get_current_action_time (void)
+{
+ return (tp_user_action_time_from_x11 (gtk_get_current_event_time ()));
+}
diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h
index 6dd64ac51..d33b8c987 100644
--- a/libempathy-gtk/empathy-ui-utils.h
+++ b/libempathy-gtk/empathy-ui-utils.h
@@ -150,6 +150,8 @@ void empathy_make_color_whiter (GdkRGBA *color);
GtkWidget * empathy_context_menu_new (GtkWidget *attach_to);
+gint64 empathy_get_current_action_time (void);
+
G_END_DECLS
#endif /* __EMPATHY_UI_UTILS_H__ */
diff --git a/libempathy/empathy-chatroom-manager.c b/libempathy/empathy-chatroom-manager.c
index 9ad75ee03..7872bbb19 100644
--- a/libempathy/empathy-chatroom-manager.c
+++ b/libempathy/empathy-chatroom-manager.c
@@ -192,7 +192,16 @@ add_chatroom (EmpathyChatroomManager *self,
priv->chatrooms = g_list_prepend (priv->chatrooms, g_object_ref (chatroom));
- g_signal_connect (chatroom, "notify",
+ /* Watch only those properties which are exported in the save file */
+ g_signal_connect (chatroom, "notify::name",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::room",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::account",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::auto-connect",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::always_urgent",
G_CALLBACK (chatroom_changed_cb), self);
}
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index 680094a54..f3e200e27 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -653,8 +653,8 @@ empathy_contact_from_tpl_contact (TpAccount *account,
is_user = (TPL_ENTITY_SELF == tpl_entity_get_entity_type (tpl_entity));
retval = g_object_new (EMPATHY_TYPE_CONTACT,
- "id", tpl_entity_get_alias (tpl_entity),
- "alias", tpl_entity_get_identifier (tpl_entity),
+ "id", tpl_entity_get_identifier (tpl_entity),
+ "alias", tpl_entity_get_alias (tpl_entity),
"account", account,
"is-user", is_user,
NULL);
@@ -1098,6 +1098,18 @@ empathy_contact_get_status (EmpathyContact *contact)
}
gboolean
+empathy_contact_can_sms (EmpathyContact *contact)
+{
+ EmpathyContactPriv *priv;
+
+ g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), FALSE);
+
+ priv = GET_PRIV (contact);
+
+ return priv->capabilities & EMPATHY_CAPABILITIES_SMS;
+}
+
+gboolean
empathy_contact_can_voip (EmpathyContact *contact)
{
EmpathyContactPriv *priv;
@@ -1189,6 +1201,9 @@ empathy_contact_can_do_action (EmpathyContact *self,
case EMPATHY_ACTION_CHAT:
sensitivity = TRUE;
break;
+ case EMPATHY_ACTION_SMS:
+ sensitivity = empathy_contact_can_sms (self);
+ break;
case EMPATHY_ACTION_AUDIO_CALL:
sensitivity = empathy_contact_can_voip_audio (self);
break;
@@ -1729,6 +1744,12 @@ tp_caps_to_capabilities (TpCapabilities *caps)
TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, NULL))
capabilities |= EMPATHY_CAPABILITIES_VIDEO;
}
+ else if (!tp_strdiff (chan_type, TP_IFACE_CHANNEL_TYPE_TEXT))
+ {
+ if (tp_asv_get_boolean (fixed_prop,
+ TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL, NULL))
+ capabilities |= EMPATHY_CAPABILITIES_SMS;
+ }
}
return capabilities;
diff --git a/libempathy/empathy-contact.h b/libempathy/empathy-contact.h
index f9217c108..16b50e500 100644
--- a/libempathy/empathy-contact.h
+++ b/libempathy/empathy-contact.h
@@ -67,6 +67,7 @@ typedef enum {
EMPATHY_CAPABILITIES_VIDEO = 1 << 1,
EMPATHY_CAPABILITIES_FT = 1 << 2,
EMPATHY_CAPABILITIES_RFB_STREAM_TUBE = 1 << 3,
+ EMPATHY_CAPABILITIES_SMS = 1 << 4,
EMPATHY_CAPABILITIES_UNKNOWN = 1 << 7
} EmpathyCapabilities;
@@ -94,6 +95,7 @@ void empathy_contact_set_is_user (EmpathyContact *contact,
gboolean is_user);
gboolean empathy_contact_is_online (EmpathyContact *contact);
const gchar * empathy_contact_get_status (EmpathyContact *contact);
+gboolean empathy_contact_can_sms (EmpathyContact *contact);
gboolean empathy_contact_can_voip (EmpathyContact *contact);
gboolean empathy_contact_can_voip_audio (EmpathyContact *contact);
gboolean empathy_contact_can_voip_video (EmpathyContact *contact);
@@ -102,6 +104,7 @@ gboolean empathy_contact_can_use_rfb_stream_tube (EmpathyContact *contact);
typedef enum {
EMPATHY_ACTION_CHAT,
+ EMPATHY_ACTION_SMS,
EMPATHY_ACTION_AUDIO_CALL,
EMPATHY_ACTION_VIDEO_CALL,
EMPATHY_ACTION_VIEW_LOGS,
diff --git a/libempathy/empathy-request-util.c b/libempathy/empathy-request-util.c
index ea885dacc..136ddd2aa 100644
--- a/libempathy/empathy-request-util.c
+++ b/libempathy/empathy-request-util.c
@@ -58,9 +58,11 @@ ensure_text_channel_cb (GObject *source,
}
}
-void
-empathy_chat_with_contact_id (TpAccount *account,
- const gchar *contact_id,
+static void
+create_text_channel (TpAccount *account,
+ TpHandleType target_handle_type,
+ const gchar *target_id,
+ gboolean sms_channel,
gint64 timestamp)
{
GHashTable *request;
@@ -69,10 +71,14 @@ empathy_chat_with_contact_id (TpAccount *account,
request = tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
TP_IFACE_CHANNEL_TYPE_TEXT,
- TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
- TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, contact_id,
+ TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, target_handle_type,
+ TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, target_id,
NULL);
+ if (sms_channel)
+ tp_asv_set_boolean (request,
+ TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL, TRUE);
+
req = tp_account_channel_request_new (account, request, timestamp);
tp_account_channel_request_ensure_channel_async (req, EMPATHY_CHAT_BUS_NAME,
@@ -83,25 +89,28 @@ empathy_chat_with_contact_id (TpAccount *account,
}
void
+empathy_chat_with_contact_id (TpAccount *account,
+ const gchar *contact_id,
+ gint64 timestamp)
+{
+ create_text_channel (account, TP_HANDLE_TYPE_CONTACT,
+ contact_id, FALSE, timestamp);
+}
+
+void
empathy_join_muc (TpAccount *account,
const gchar *room_name,
gint64 timestamp)
{
- GHashTable *request;
- TpAccountChannelRequest *req;
-
- request = tp_asv_new (
- TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
- TP_IFACE_CHANNEL_TYPE_TEXT,
- TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_ROOM,
- TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, room_name,
- NULL);
-
- req = tp_account_channel_request_new (account, request, timestamp);
-
- tp_account_channel_request_ensure_channel_async (req, EMPATHY_CHAT_BUS_NAME,
- NULL, ensure_text_channel_cb, NULL);
+ create_text_channel (account, TP_HANDLE_TYPE_ROOM,
+ room_name, FALSE, timestamp);
+}
- g_hash_table_unref (request);
- g_object_unref (req);
+void
+empathy_sms_contact_id (TpAccount *account,
+ const gchar *contact_id,
+ gint64 timestamp)
+{
+ create_text_channel (account, TP_HANDLE_TYPE_CONTACT,
+ contact_id, TRUE, timestamp);
}
diff --git a/libempathy/empathy-request-util.h b/libempathy/empathy-request-util.h
index afb8013cb..49b98a433 100644
--- a/libempathy/empathy-request-util.h
+++ b/libempathy/empathy-request-util.h
@@ -52,6 +52,11 @@ void empathy_join_muc (TpAccount *account,
const gchar *roomname,
gint64 timestamp);
+/* Request a sms channel */
+void empathy_sms_contact_id (TpAccount *account,
+ const gchar *contact_id,
+ gint64 timestamp);
+
G_END_DECLS
#endif /* __EMPATHY_DISPATCHER_H__ */
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 87540f21a..8e6672eee 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -59,6 +59,10 @@ typedef struct {
gboolean got_password_flags;
gboolean ready;
gboolean can_upgrade_to_muc;
+ gboolean got_sms_channel;
+ gboolean sms_channel;
+
+ GHashTable *messages_being_sent;
} EmpathyTpChatPriv;
static void tp_chat_iface_init (EmpathyContactListIface *iface);
@@ -70,6 +74,8 @@ enum {
PROP_REMOTE_CONTACT,
PROP_PASSWORD_NEEDED,
PROP_READY,
+ PROP_SMS_CHANNEL,
+ PROP_N_MESSAGES_SENDING,
};
enum {
@@ -90,6 +96,40 @@ G_DEFINE_TYPE_WITH_CODE (EmpathyTpChat, empathy_tp_chat, G_TYPE_OBJECT,
static void acknowledge_messages (EmpathyTpChat *chat, GArray *ids);
static void
+tp_chat_set_delivery_status (EmpathyTpChat *self,
+ const gchar *token,
+ EmpathyDeliveryStatus delivery_status)
+{
+ EmpathyTpChatPriv *priv = GET_PRIV (self);
+ TpDeliveryReportingSupportFlags flags =
+ tp_text_channel_get_delivery_reporting_support (
+ TP_TEXT_CHANNEL (priv->channel));
+
+ /* channel must support receiving failures and successes */
+ if (!tp_str_empty (token) &&
+ flags & TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_FAILURES &&
+ flags & TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_SUCCESSES) {
+
+ DEBUG ("Delivery status (%s) = %u", token, delivery_status);
+
+ switch (delivery_status) {
+ case EMPATHY_DELIVERY_STATUS_NONE:
+ g_hash_table_remove (priv->messages_being_sent,
+ token);
+ break;
+
+ default:
+ g_hash_table_insert (priv->messages_being_sent,
+ g_strdup (token),
+ GUINT_TO_POINTER (delivery_status));
+ break;
+ }
+
+ g_object_notify (G_OBJECT (self), "n-messages-sending");
+ }
+}
+
+static void
tp_chat_invalidated_cb (TpProxy *proxy,
guint domain,
gint code,
@@ -319,19 +359,38 @@ handle_delivery_report (EmpathyTpChat *self,
gboolean valid;
GPtrArray *echo;
const gchar *message_body = NULL;
+ const gchar *delivery_dbus_error;
+ const gchar *delivery_token = NULL;
header = tp_message_peek (message, 0);
if (header == NULL)
goto out;
+ delivery_token = tp_asv_get_string (header, "delivery-token");
delivery_status = tp_asv_get_uint32 (header, "delivery-status", &valid);
- if (!valid || delivery_status != TP_DELIVERY_STATUS_PERMANENTLY_FAILED)
+
+ if (!valid) {
+ goto out;
+ } else if (delivery_status == TP_DELIVERY_STATUS_ACCEPTED) {
+ DEBUG ("Accepted %s", delivery_token);
+ tp_chat_set_delivery_status (self, delivery_token,
+ EMPATHY_DELIVERY_STATUS_ACCEPTED);
goto out;
+ } else if (delivery_status == TP_DELIVERY_STATUS_DELIVERED) {
+ DEBUG ("Delivered %s", delivery_token);
+ tp_chat_set_delivery_status (self, delivery_token,
+ EMPATHY_DELIVERY_STATUS_NONE);
+ goto out;
+ } else if (delivery_status != TP_DELIVERY_STATUS_PERMANENTLY_FAILED) {
+ goto out;
+ }
delivery_error = tp_asv_get_uint32 (header, "delivery-error", &valid);
if (!valid)
delivery_error = TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN;
+ delivery_dbus_error = tp_asv_get_string (header, "delivery-dbus-error");
+
/* TODO: ideally we should use tp-glib API giving us the echoed message as a
* TpMessage. (fdo #35884) */
echo = tp_asv_get_boxed (header, "delivery-echo",
@@ -344,7 +403,10 @@ handle_delivery_report (EmpathyTpChat *self,
message_body = tp_asv_get_string (echo_body, "content");
}
- g_signal_emit (self, signals[SEND_ERROR], 0, message_body, delivery_error);
+ tp_chat_set_delivery_status (self, delivery_token,
+ EMPATHY_DELIVERY_STATUS_NONE);
+ g_signal_emit (self, signals[SEND_ERROR], 0, message_body,
+ delivery_error, delivery_dbus_error);
out:
tp_text_channel_ack_message_async (TP_TEXT_CHANNEL (priv->channel),
@@ -436,9 +498,10 @@ message_send_cb (GObject *source,
{
EmpathyTpChat *chat = user_data;
TpTextChannel *channel = (TpTextChannel *) source;
+ gchar *token = NULL;
GError *error = NULL;
- if (!tp_text_channel_send_message_finish (channel, result, NULL, &error)) {
+ if (!tp_text_channel_send_message_finish (channel, result, &token, &error)) {
DEBUG ("Error: %s", error->message);
/* FIXME: we should use the body of the message as first argument of the
@@ -446,10 +509,14 @@ message_send_cb (GObject *source,
* we'll have rebased EmpathyTpChat on top of TpTextChannel we'll be able
* to use the user_data pointer to pass the message and fix this. */
g_signal_emit (chat, signals[SEND_ERROR], 0,
- NULL, error_to_text_send_error (error));
+ NULL, error_to_text_send_error (error), NULL);
g_error_free (error);
}
+
+ tp_chat_set_delivery_status (chat, token,
+ EMPATHY_DELIVERY_STATUS_SENDING);
+ g_free (token);
}
typedef struct {
@@ -809,6 +876,7 @@ tp_chat_finalize (GObject *object)
g_queue_free (priv->messages_queue);
g_queue_free (priv->pending_messages_queue);
+ g_hash_table_destroy (priv->messages_being_sent);
G_OBJECT_CLASS (empathy_tp_chat_parent_class)->finalize (object);
}
@@ -827,6 +895,9 @@ check_almost_ready (EmpathyTpChat *chat)
if (!priv->got_password_flags)
return;
+ if (!priv->got_sms_channel)
+ return;
+
/* We need either the members (room) or the remote contact (private chat).
* If the chat is protected by a password we can't get these information so
* consider the chat as ready so it can be presented to the user. */
@@ -1218,6 +1289,41 @@ got_password_flags_cb (TpChannel *proxy,
check_almost_ready (EMPATHY_TP_CHAT (self));
}
+static void
+sms_channel_changed_cb (TpChannel *channel,
+ gboolean sms_channel,
+ gpointer user_data,
+ GObject *chat)
+{
+ EmpathyTpChatPriv *priv = GET_PRIV (chat);
+
+ priv->sms_channel = sms_channel;
+
+ g_object_notify (G_OBJECT (chat), "sms-channel");
+}
+
+static void
+get_sms_channel_cb (TpProxy *channel,
+ const GValue *value,
+ const GError *in_error,
+ gpointer user_data,
+ GObject *chat)
+{
+ EmpathyTpChatPriv *priv = GET_PRIV (chat);
+
+ if (in_error != NULL) {
+ DEBUG ("Failed to get SMSChannel: %s", in_error->message);
+ return;
+ }
+
+ g_return_if_fail (G_VALUE_HOLDS_BOOLEAN (value));
+
+ priv->sms_channel = g_value_get_boolean (value);
+ priv->got_sms_channel = TRUE;
+
+ check_almost_ready (EMPATHY_TP_CHAT (chat));
+}
+
static GObject *
tp_chat_constructor (GType type,
guint n_props,
@@ -1327,6 +1433,22 @@ tp_chat_constructor (GType type,
priv->got_password_flags = TRUE;
}
+ /* Check if the chat is for SMS */
+ if (tp_proxy_has_interface_by_id (priv->channel,
+ TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS)) {
+ tp_cli_channel_interface_sms_connect_to_sms_channel_changed (
+ priv->channel,
+ sms_channel_changed_cb, chat, NULL, G_OBJECT (chat),
+ NULL);
+
+ tp_cli_dbus_properties_call_get (priv->channel, -1,
+ TP_IFACE_CHANNEL_INTERFACE_SMS, "SMSChannel",
+ get_sms_channel_cb, chat, NULL, G_OBJECT (chat));
+ } else {
+ /* if there's no SMS support, then we're not waiting for it */
+ priv->got_sms_channel = TRUE;
+ }
+
return chat;
}
@@ -1355,6 +1477,13 @@ tp_chat_get_property (GObject *object,
case PROP_PASSWORD_NEEDED:
g_value_set_boolean (value, empathy_tp_chat_password_needed (self));
break;
+ case PROP_SMS_CHANNEL:
+ g_value_set_boolean (value, priv->sms_channel);
+ break;
+ case PROP_N_MESSAGES_SENDING:
+ g_value_set_uint (value,
+ g_hash_table_size (priv->messages_being_sent));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -1436,6 +1565,22 @@ empathy_tp_chat_class_init (EmpathyTpChatClass *klass)
FALSE,
G_PARAM_READABLE));
+ g_object_class_install_property (object_class,
+ PROP_SMS_CHANNEL,
+ g_param_spec_boolean ("sms-channel",
+ "SMS Channel",
+ "TRUE if channel is for sending SMSes",
+ FALSE,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_N_MESSAGES_SENDING,
+ g_param_spec_uint ("n-messages-sending",
+ "Num Messages Sending",
+ "The number of messages being sent",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READABLE));
+
/* Signals */
signals[MESSAGE_RECEIVED] =
g_signal_new ("message-received",
@@ -1453,9 +1598,9 @@ empathy_tp_chat_class_init (EmpathyTpChatClass *klass)
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- _empathy_marshal_VOID__STRING_UINT,
+ _empathy_marshal_VOID__STRING_UINT_STRING,
G_TYPE_NONE,
- 2, G_TYPE_STRING, G_TYPE_UINT);
+ 3, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
signals[CHAT_STATE_CHANGED] =
g_signal_new ("chat-state-changed",
@@ -1499,6 +1644,8 @@ empathy_tp_chat_init (EmpathyTpChat *chat)
chat->priv = priv;
priv->messages_queue = g_queue_new ();
priv->pending_messages_queue = g_queue_new ();
+ priv->messages_being_sent = g_hash_table_new_full (
+ g_str_hash, g_str_equal, g_free, NULL);
}
static void
@@ -1607,7 +1754,8 @@ empathy_tp_chat_send (EmpathyTpChat *chat,
DEBUG ("Sending message: %s", message_body);
tp_text_channel_send_message_async (TP_TEXT_CHANNEL (priv->channel),
- message, 0, message_send_cb, chat);
+ message, TP_MESSAGE_SENDING_FLAG_REPORT_DELIVERY,
+ message_send_cb, chat);
g_free (message_body);
}
@@ -1912,3 +2060,15 @@ empathy_tp_chat_get_self_contact (EmpathyTpChat *self)
return priv->user;
}
+
+gboolean
+empathy_tp_chat_is_sms_channel (EmpathyTpChat *self)
+{
+ EmpathyTpChatPriv *priv;
+
+ g_return_val_if_fail (EMPATHY_IS_TP_CHAT (self), FALSE);
+
+ priv = GET_PRIV (self);
+
+ return priv->sms_channel;
+}
diff --git a/libempathy/empathy-tp-chat.h b/libempathy/empathy-tp-chat.h
index 7c998a3fa..83c7fe7d1 100644
--- a/libempathy/empathy-tp-chat.h
+++ b/libempathy/empathy-tp-chat.h
@@ -59,6 +59,12 @@ typedef struct {
GValue *value;
} EmpathyTpChatProperty;
+typedef enum {
+ EMPATHY_DELIVERY_STATUS_NONE,
+ EMPATHY_DELIVERY_STATUS_SENDING,
+ EMPATHY_DELIVERY_STATUS_ACCEPTED
+} EmpathyDeliveryStatus;
+
GType empathy_tp_chat_get_type (void) G_GNUC_CONST;
EmpathyTpChat *empathy_tp_chat_new (TpAccount *account,
TpChannel *channel);
@@ -112,6 +118,8 @@ TpChannelChatState
EmpathyContact * empathy_tp_chat_get_self_contact (EmpathyTpChat *self);
+gboolean empathy_tp_chat_is_sms_channel (EmpathyTpChat *chat);
+
G_END_DECLS
#endif /* __EMPATHY_TP_CHAT_H__ */
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c
index f8220ac31..8173f781d 100644
--- a/libempathy/empathy-utils.c
+++ b/libempathy/empathy-utils.c
@@ -29,6 +29,7 @@
#include "config.h"
#include <string.h>
+#include <math.h>
#include <time.h>
#include <sys/types.h>
@@ -957,3 +958,77 @@ empathy_get_x509_certificate_hostname (gnutls_x509_crt_t cert)
return NULL;
}
+
+gchar *
+empathy_format_currency (gint amount,
+ guint scale,
+ const gchar *currency)
+{
+#define MINUS "\342\210\222"
+#define EURO "\342\202\254"
+#define YEN "\302\245"
+#define POUND "\302\243"
+
+ /* localised representations of currency */
+ /* FIXME: check these, especially negatives and decimals */
+ static const struct {
+ const char *currency;
+ const char *positive;
+ const char *negative;
+ const char *decimal;
+ } currencies[] = {
+ /* sym positive negative decimal */
+ { "EUR", EURO "%s", MINUS EURO "%s", "." },
+ { "USD", "$%s", MINUS "$%s", "." },
+ { "JPY", YEN "%s" MINUS YEN "%s", "." },
+ { "GBP", POUND "%s", MINUS POUND "%s", "." },
+ { "PLN", "%s zl", MINUS "%s zl", "." },
+ { "BRL", "R$%s", MINUS "R$%s", "." },
+ { "SEK", "%s kr", MINUS "%s kr", "." },
+ { "DKK", "kr %s", "kr " MINUS "%s", "." },
+ { "HKD", "$%s", MINUS "$%s", "." },
+ { "CHF", "%s Fr.", MINUS "%s Fr.", "." },
+ { "NOK", "kr %s", "kr" MINUS "%s", "," },
+ { "CAD", "$%s", MINUS "$%s", "." },
+ { "TWD", "$%s", MINUS "$%s", "." },
+ { "AUD", "$%s", MINUS "$%s", "." },
+ };
+
+ const char *positive = "%s";
+ const char *negative = MINUS "%s";
+ const char *decimal = ".";
+ char *fmt_amount, *money;
+ guint i;
+
+ /* get the localised currency format */
+ for (i = 0; i < G_N_ELEMENTS (currencies); i++) {
+ if (!tp_strdiff (currency, currencies[i].currency)) {
+ positive = currencies[i].positive;
+ negative = currencies[i].negative;
+ decimal = currencies[i].decimal;
+ break;
+ }
+ }
+
+ /* format the amount using the scale */
+ if (scale == 0) {
+ /* no decimal point required */
+ fmt_amount = g_strdup_printf ("%d", amount);
+ } else {
+ /* don't use floating point arithmatic, it's noisy;
+ * we take the absolute values, because we want the minus
+ * sign to appear before the $ */
+ int divisor = pow (10, scale);
+ int dollars = abs (amount / divisor);
+ int cents = abs (amount % divisor);
+
+ fmt_amount = g_strdup_printf ("%d%s%0*d",
+ dollars, decimal, scale, cents);
+ }
+
+ money = g_strdup_printf (amount < 0 ? negative : positive, fmt_amount);
+ g_free (fmt_amount);
+
+ return money;
+}
+
diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h
index de879021e..ac44535b8 100644
--- a/libempathy/empathy-utils.h
+++ b/libempathy/empathy-utils.h
@@ -117,6 +117,8 @@ gboolean empathy_folks_persona_is_interesting (FolksPersona *persona);
gchar * empathy_get_x509_certificate_hostname (gnutls_x509_crt_t cert);
+gchar *empathy_format_currency (gint amount, guint scale, const gchar *currency);
+
/* Copied from wocky/wocky-utils.h */
#define empathy_implement_finish_void(source, tag) \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 12bec0898..7a78f2558 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -116,3 +116,4 @@ src/empathy-debugger.c
src/empathy-chat.c
src/empathy-notifications-approver.c
src/empathy-call-observer.c
+libempathy-gtk/empathy-search-bar.c
diff --git a/po/es.po b/po/es.po
index cacaa6341..3562a04f0 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,23 +1,23 @@
# translation of empathy.master.po to Español
# Copyright (C) 2003 Free Software Foundation
# This file is distributed under the same license as the Gossip package.
-# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
+# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: empathy.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=empathy&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-04-26 12:21+0000\n"
-"PO-Revision-Date: 2011-04-27 12:36+0200\n"
-"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
+"product=empathy&keywords=I18N+L10N&component=General\n"
+"POT-Creation-Date: 2011-05-09 10:59+0000\n"
+"PO-Revision-Date: 2011-05-09 14:23+0200\n"
+"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ../data/empathy.desktop.in.in.h:1
msgid "Chat on Google Talk, Facebook, MSN and many other chat services"
@@ -72,7 +72,7 @@ msgstr "Criterio de ordenación de la lista de contactos"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
msgid "Default directory to select an avatar image from"
-msgstr "Directorio predeterminado para seleccionar un avatar"
+msgstr "Carpeta predeterminada para seleccionar un avatar"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
msgid "Disable popup notifications when away"
@@ -213,122 +213,126 @@ msgid "Pop up notifications when a contact logs out"
msgstr "Mostrar notificaciones emergentes cuando un contacto se desconecta"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+msgid "Show Balance in contact list"
+msgstr "Mostrar crédito en la lista de contactos"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show avatars"
msgstr "Mostrar avatares"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show contact list in rooms"
msgstr "Mostrar lista de contactos en salas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show hint about closing the main window"
msgstr "Mostrar consejo sobre cómo cerrar la ventana principal"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show offline contacts"
msgstr "Mostrar contactos no conectados"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show protocols"
msgstr "Mostrar protocolos"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Spell checking languages"
msgstr "Idiomas para revisión ortográfica"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "The default folder to save file transfers in."
msgstr "La carpeta predeterminada donde guardar los archivos transferidos."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The last directory that an avatar image was chosen from."
-msgstr "Último directorio del que fue elegido un avatar."
+msgstr "Última carpeta de la que se eligió un avatar."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The position for the chat window side pane"
msgstr "La posición para el panel lateral de la ventana de charla"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The stored position (in pixels) of the chat window side pane."
msgstr ""
"La posición almacenada (en píxeles) del panel lateral de la ventana de "
"charla."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The theme that is used to display the conversation in chat windows."
msgstr ""
"El tema que se usará para mostrar la conversación en las ventanas de chat."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "Use graphical smileys"
msgstr "Usar emoticonos gráficos"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
msgid "Use notification sounds"
msgstr "Usar sonidos de notificación"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use theme for chat rooms"
msgstr "Usar tema para salas de chat"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr ""
"Indica si Empathy puede publicar la ubicación del usuario a sus contactos."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Indica si Empathy puede usar el GPS para deducir la ubicación."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr ""
"Indica si Empathy puede usar la red telefónica móvil para deducir la "
"ubicación."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the network to guess the location."
msgstr "Indica si Empathy puede usar la red para deducir la ubicación."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Indica si Empathy ha migrado los registros de butterfly."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr ""
"Indica si Empathy debe iniciar sesión en sus cuentas automáticamente al "
"inicio."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
"Indica si Empathy debe entrar en modo de ausencia automáticamente si el "
"usuario está inactivo."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
"Indica si Empathy debería reducir la precisión de la ubicación por motivos "
"de privacidad."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
"Indica si Empathy debería usar el avatar del contacto como el icono de la "
"ventana de chat."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr ""
"Indica si las herramientas de desarrollo de WebKit, tales como el Inspector "
"web, den activarse."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
@@ -336,78 +340,78 @@ msgstr ""
"Indica si se debe usan usar gestores de conectividad para desconectarse/"
"reconectarse automáticamente."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr ""
"Indica si se deben revisar las palabras tecleadas con respecto a los idiomas "
"con los que quiere comprobarlo."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid "Whether to convert smileys into graphical images in conversations."
msgstr ""
"Indica si se deben convertir los emoticonos en imágenes gráficas en las "
"conversaciones."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
"Indica si se debe reproducir un sonido para notificar los inicios de sesión "
"de los contactos en la red."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
"Indica si se debe reproducir un sonido para notificar las finalizaciones de "
"sesión de los contactos en la red."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of events."
msgstr "Indica si se debe reproducir un sonido para notificar eventos."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid "Whether to play a sound to notify of incoming messages."
msgstr ""
"Indica si se debe reproducir un sonido para notificar mensajes entrantes."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of new conversations."
msgstr ""
"Indica si se debe reproducir un sonido para notificar conversaciones nuevas."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of outgoing messages."
msgstr ""
"Indica si se debe reproducir un sonido para notificar mensajes salientes."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound when logging into a network."
msgstr "Indica si se debe reproducir un sonido al iniciar sesión en una red."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound when logging out of a network."
msgstr "Indica si se debe reproducir un sonido al finalizar sesión en una red."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play sound notifications when away or busy."
msgstr ""
"Indica si se deben reproducir sonidos de notificaciones cuando se esté "
"ausente u ocupado."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to show a popup notification when a contact goes offline."
msgstr ""
"Indica si se deben mostrar las notificaciones emergentes cuando un contacto "
"se desconecta."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to show a popup notification when a contact goes online."
msgstr ""
"Indica si se deben mostrar las notificaciones emergentes cuando un contacto "
"se conecta."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -415,46 +419,50 @@ msgstr ""
"Indica si de deben mostrar notificaciones emergentes al recibir un mensaje "
"nuevo incluso si la ventana de chat ya está abierta pero no tiene el foco."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when receiving a new message."
msgstr ""
"Indica si se deben mostrar notificaciones emergentes al recibir un mensaje "
"nuevo."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+msgid "Whether to show account balances in the contact list."
+msgstr "Indica si se debe mostrar el crédito en la lista de contactos."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr ""
"Indica si se deben mostrar los avatares para los contactos en la lista de "
"contactos y ventanas de chat."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show contacts that are offline in the contact list."
msgstr ""
"Indica si se debe mostrar los contactos que están desconectados en la lista "
"de contactos."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid "Whether to show popup notifications when away or busy."
msgstr ""
"Indica si se deben mostrar las notificaciones emergentes cuando se esté "
"ausente u ocupado."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show protocols for contacts in the contact list."
msgstr ""
"Indica si se deben mostrar los protocolos para los contactos en la lista de "
"contactos."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show the contact list in chat rooms."
msgstr "Indica si se debe mostrar la lista de contactos en salas de chat."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show the contact list in compact mode."
msgstr "Indica si se debe mostrar la lista de contactos en modo compacto."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -462,11 +470,11 @@ msgstr ""
"Indica si se debe mostrar un mensaje de diálogo sobre cómo cerrar la ventana "
"principal con el botón «x» en la barra de título."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to use the theme for chat rooms."
msgstr "Indica si se debe usar el tema para salas de chat."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -482,7 +490,7 @@ msgstr "Gestionar las cuentas de mensajería y Voz IP"
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2340
+#: ../src/empathy-accounts-dialog.c:2320
msgid "Messaging and VoIP Accounts"
msgstr "Cuentas de mensajería y Voz IP"
@@ -530,144 +538,143 @@ msgstr "Error la intentar transferir el archivo"
msgid "The other participant is unable to transfer the file"
msgstr "El otro participante no puede transferir el archivo"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
msgstr "Razón desconocida"
-#: ../libempathy/empathy-utils.c:304
+#: ../libempathy/empathy-utils.c:305
msgid "Available"
msgstr "Disponible"
-#: ../libempathy/empathy-utils.c:306
+#: ../libempathy/empathy-utils.c:307
msgid "Busy"
msgstr "Ocupado"
-#: ../libempathy/empathy-utils.c:309
+#: ../libempathy/empathy-utils.c:310
msgid "Away"
msgstr "Ausente"
-#: ../libempathy/empathy-utils.c:311
+#: ../libempathy/empathy-utils.c:312
msgid "Invisible"
msgstr "Invisible"
-#: ../libempathy/empathy-utils.c:313
+#: ../libempathy/empathy-utils.c:314
msgid "Offline"
msgstr "Desconectado"
#. translators: presence type is unknown
-#: ../libempathy/empathy-utils.c:316
-#| msgid "Unknown"
+#: ../libempathy/empathy-utils.c:317
msgctxt "presence"
msgid "Unknown"
msgstr "Desconocido"
-#: ../libempathy/empathy-utils.c:355
+#: ../libempathy/empathy-utils.c:356
msgid "No reason specified"
msgstr "No se especificó ninguna razón"
-#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413
+#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:414
msgid "Status is set to offline"
msgstr "El estado se ha establecido a desconectado"
-#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393
+#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
msgid "Network error"
msgstr "Error de red"
-#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395
+#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
msgid "Authentication failed"
msgstr "Falló la autenticación"
-#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397
+#: ../libempathy/empathy-utils.c:364 ../libempathy/empathy-utils.c:398
msgid "Encryption error"
msgstr "Error de cifrado"
-#: ../libempathy/empathy-utils.c:365
+#: ../libempathy/empathy-utils.c:366
msgid "Name in use"
msgstr "Nombre en uso"
-#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399
+#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
msgid "Certificate not provided"
msgstr "No se proporcionó el certificado"
-#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401
+#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
msgstr "Certificado sin confianza"
-#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403
+#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
msgstr "El certificado ha expirado"
-#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405
+#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
msgid "Certificate not activated"
msgstr "El certificado no está activado"
-#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407
+#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
msgid "Certificate hostname mismatch"
msgstr "El nombre del equipo del certificado no coincide"
-#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409
+#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide"
-#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411
+#: ../libempathy/empathy-utils.c:380 ../libempathy/empathy-utils.c:412
msgid "Certificate self-signed"
msgstr "Certificado firmado consigo mismo"
-#: ../libempathy/empathy-utils.c:381
+#: ../libempathy/empathy-utils.c:382
msgid "Certificate error"
msgstr "Error del certificado"
-#: ../libempathy/empathy-utils.c:415
+#: ../libempathy/empathy-utils.c:416
msgid "Encryption is not available"
msgstr "El cifrado no está disponible"
-#: ../libempathy/empathy-utils.c:417
+#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
msgstr "El certificado no es válido"
-#: ../libempathy/empathy-utils.c:419
+#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
msgstr "Se rechazó la conexión"
-#: ../libempathy/empathy-utils.c:421
+#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
msgstr "No se pudo establecer la conexión"
-#: ../libempathy/empathy-utils.c:423
+#: ../libempathy/empathy-utils.c:424
msgid "Connection has been lost"
msgstr "Se perdió la conexión"
-#: ../libempathy/empathy-utils.c:425
+#: ../libempathy/empathy-utils.c:426
msgid "This resource is already connected to the server"
msgstr "El recurso ya está conectado al servidor"
-#: ../libempathy/empathy-utils.c:427
+#: ../libempathy/empathy-utils.c:428
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Se ha reemplazado la conexión por una conexión nueva usando el mismo recurso"
-#: ../libempathy/empathy-utils.c:430
+#: ../libempathy/empathy-utils.c:431
msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor"
-#: ../libempathy/empathy-utils.c:432
+#: ../libempathy/empathy-utils.c:433
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Actualmente el servidor está demasiado ocupado para gestionar la conexión"
-#: ../libempathy/empathy-utils.c:434
+#: ../libempathy/empathy-utils.c:435
msgid "Certificate has been revoked"
msgstr "Se revocó el certificado"
-#: ../libempathy/empathy-utils.c:436
+#: ../libempathy/empathy-utils.c:437
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil"
-#: ../libempathy/empathy-utils.c:439
+#: ../libempathy/empathy-utils.c:440
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -676,20 +683,20 @@ msgstr ""
"servidor de certificados exceden los límites impuestos por la biblioteca "
"cripotográfica"
-#: ../libempathy/empathy-utils.c:602
+#: ../libempathy/empathy-utils.c:603
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "Gente cerca"
-#: ../libempathy/empathy-utils.c:607
+#: ../libempathy/empathy-utils.c:608
msgid "Yahoo! Japan"
msgstr "Yahoo Japón"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:637
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:637
+#: ../libempathy/empathy-utils.c:638
msgid "Facebook Chat"
msgstr "Chat de Facebook"
@@ -812,19 +819,19 @@ msgstr "Ca_ncelar"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2413
+#: ../libempathy-gtk/empathy-account-widget.c:2410
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s en %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2439
+#: ../libempathy-gtk/empathy-account-widget.c:2436
#, c-format
msgid "%s Account"
msgstr "Cuenta %s"
-#: ../libempathy-gtk/empathy-account-widget.c:2443
+#: ../libempathy-gtk/empathy-account-widget.c:2440
msgid "New account"
msgstr "Cuenta nueva"
@@ -1252,35 +1259,35 @@ msgstr "Todos los archivos"
msgid "Click to enlarge"
msgstr "Pulse para agrandar"
-#: ../libempathy-gtk/empathy-chat.c:652
+#: ../libempathy-gtk/empathy-chat.c:668
msgid "Failed to open private chat"
msgstr "Falló al abrir el chat privado"
-#: ../libempathy-gtk/empathy-chat.c:717
+#: ../libempathy-gtk/empathy-chat.c:733
msgid "Topic not supported on this conversation"
msgstr "El tema no está soportado en esta conversación"
-#: ../libempathy-gtk/empathy-chat.c:723
+#: ../libempathy-gtk/empathy-chat.c:739
msgid "You are not allowed to change the topic"
msgstr "No le está permitido cambiar el tema"
-#: ../libempathy-gtk/empathy-chat.c:932
+#: ../libempathy-gtk/empathy-chat.c:948
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: limpiar todos los mensajes de la conversación actual"
-#: ../libempathy-gtk/empathy-chat.c:935
+#: ../libempathy-gtk/empathy-chat.c:951
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <tema>: establecer el tema para la conversación actual"
-#: ../libempathy-gtk/empathy-chat.c:938
+#: ../libempathy-gtk/empathy-chat.c:954
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <id de sala de chat>: unirse a una sala de chat nueva"
-#: ../libempathy-gtk/empathy-chat.c:941
+#: ../libempathy-gtk/empathy-chat.c:957
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <id de sala de chat>: unirse a una sala de chat nueva"
-#: ../libempathy-gtk/empathy-chat.c:946
+#: ../libempathy-gtk/empathy-chat.c:962
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
@@ -1288,23 +1295,23 @@ msgstr ""
"/part [<ID de la sala de chat>] [<razón>]: abandonar la sala de chat, la "
"actual de manera predeterminada"
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:967
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <id del contacto> [<mensaje>]: abrir un chat privado"
-#: ../libempathy-gtk/empathy-chat.c:954
+#: ../libempathy-gtk/empathy-chat.c:970
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <id del contacto> <mensaje>: abrir un chat privado"
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:973
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <apodo>: cambiar su apodo en el servidor actual"
-#: ../libempathy-gtk/empathy-chat.c:960
+#: ../libempathy-gtk/empathy-chat.c:976
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <mensaje>: enviar un mensaje de ACCIÓN a la conversación actual"
-#: ../libempathy-gtk/empathy-chat.c:963
+#: ../libempathy-gtk/empathy-chat.c:979
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1314,7 +1321,7 @@ msgstr ""
"para enviar un mensaje comenzando por una «/». Por ejemplo: «/say /join se usa "
"para unirse a una sala de chat nueva»"
-#: ../libempathy-gtk/empathy-chat.c:968
+#: ../libempathy-gtk/empathy-chat.c:984
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1322,104 +1329,113 @@ msgstr ""
"/help [<comando>]: mostrar todos los comandos soportados. Si <comando> está "
"definido, muestra su uso."
-#: ../libempathy-gtk/empathy-chat.c:978
+#: ../libempathy-gtk/empathy-chat.c:994
#, c-format
msgid "Usage: %s"
msgstr "Uso: %s"
-#: ../libempathy-gtk/empathy-chat.c:1017
+#: ../libempathy-gtk/empathy-chat.c:1033
msgid "Unknown command"
msgstr "Comando desconocido"
-#: ../libempathy-gtk/empathy-chat.c:1143
+#: ../libempathy-gtk/empathy-chat.c:1159
msgid "Unknown command; see /help for the available commands"
msgstr "Comando desconocido; consulte /help para ver los comandos disponibles"
-#: ../libempathy-gtk/empathy-chat.c:1281
+#. translators: error used when user doesn't have enough credit on his
+#. * account to send the message.
+#: ../libempathy-gtk/empathy-chat.c:1299
+msgid "insufficient balance to send message"
+msgstr "no tiene balance suficiente para enviar el mensaje"
+
+#: ../libempathy-gtk/empathy-chat.c:1301
+msgid "not capable"
+msgstr "no es posible"
+
+#: ../libempathy-gtk/empathy-chat.c:1308
msgid "offline"
msgstr "desconectado"
-#: ../libempathy-gtk/empathy-chat.c:1284
+#: ../libempathy-gtk/empathy-chat.c:1311
msgid "invalid contact"
msgstr "contacto no válido"
-#: ../libempathy-gtk/empathy-chat.c:1287
+#: ../libempathy-gtk/empathy-chat.c:1314
msgid "permission denied"
msgstr "permiso denegado"
-#: ../libempathy-gtk/empathy-chat.c:1290
+#: ../libempathy-gtk/empathy-chat.c:1317
msgid "too long message"
msgstr "mensaje demasiado largo"
-#: ../libempathy-gtk/empathy-chat.c:1293
+#: ../libempathy-gtk/empathy-chat.c:1320
msgid "not implemented"
msgstr "no implementado"
-#: ../libempathy-gtk/empathy-chat.c:1297
+#: ../libempathy-gtk/empathy-chat.c:1324
msgid "unknown"
msgstr "desconocido"
-#: ../libempathy-gtk/empathy-chat.c:1302
+#: ../libempathy-gtk/empathy-chat.c:1330
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Error al enviar el mensaje «%s»: %s"
-#: ../libempathy-gtk/empathy-chat.c:1306
+#: ../libempathy-gtk/empathy-chat.c:1334
#, c-format
-#| msgid "Error sending message '%s': %s"
msgid "Error sending message: %s"
msgstr "Error al enviar el mensaje: %s"
-#: ../libempathy-gtk/empathy-chat.c:1367 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Tema:"
-#: ../libempathy-gtk/empathy-chat.c:1379
+#: ../libempathy-gtk/empathy-chat.c:1407
#, c-format
msgid "Topic set to: %s"
msgstr "El tema se ha establecido a: %s"
-#: ../libempathy-gtk/empathy-chat.c:1381
+#: ../libempathy-gtk/empathy-chat.c:1409
msgid "No topic defined"
msgstr "No se ha definido el tema"
-#: ../libempathy-gtk/empathy-chat.c:1880
+#: ../libempathy-gtk/empathy-chat.c:1916
msgid "(No Suggestions)"
msgstr "(Sin sugerencias)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1948
+#: ../libempathy-gtk/empathy-chat.c:1984
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Añadir «%s» al diccionario"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1985
+#: ../libempathy-gtk/empathy-chat.c:2021
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Añadir «%s» al diccionario de «%s»"
-#: ../libempathy-gtk/empathy-chat.c:2042
+#: ../libempathy-gtk/empathy-chat.c:2078
msgid "Insert Smiley"
msgstr "Insertar emoticono"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2060
+#: ../libempathy-gtk/empathy-chat.c:2096
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "E_nviar"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2095
+#: ../libempathy-gtk/empathy-chat.c:2131
msgid "_Spelling Suggestions"
msgstr "_Sugerencias ortográficas"
-#: ../libempathy-gtk/empathy-chat.c:2184
+#: ../libempathy-gtk/empathy-chat.c:2220
msgid "Failed to retrieve recent logs"
msgstr "Falló al recibir los registros recientes"
-#: ../libempathy-gtk/empathy-chat.c:2295
+#: ../libempathy-gtk/empathy-chat.c:2331
#, c-format
msgid "%s has disconnected"
msgstr "%s se ha desconectado"
@@ -1427,12 +1443,12 @@ msgstr "%s se ha desconectado"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2302
+#: ../libempathy-gtk/empathy-chat.c:2338
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%2$s expulsó a %1$s"
-#: ../libempathy-gtk/empathy-chat.c:2305
+#: ../libempathy-gtk/empathy-chat.c:2341
#, c-format
msgid "%s was kicked"
msgstr "%s fue expulsado"
@@ -1440,17 +1456,17 @@ msgstr "%s fue expulsado"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2313
+#: ../libempathy-gtk/empathy-chat.c:2349
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%2$s vetó a %1$s"
-#: ../libempathy-gtk/empathy-chat.c:2316
+#: ../libempathy-gtk/empathy-chat.c:2352
#, c-format
msgid "%s was banned"
msgstr "%s fue vetado"
-#: ../libempathy-gtk/empathy-chat.c:2320
+#: ../libempathy-gtk/empathy-chat.c:2356
#, c-format
msgid "%s has left the room"
msgstr "%s ha dejado la sala"
@@ -1460,93 +1476,100 @@ msgstr "%s ha dejado la sala"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2329
+#: ../libempathy-gtk/empathy-chat.c:2365
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2354
+#: ../libempathy-gtk/empathy-chat.c:2390
#, c-format
msgid "%s has joined the room"
msgstr "%s ha entrado en la sala"
-#: ../libempathy-gtk/empathy-chat.c:2379
+#: ../libempathy-gtk/empathy-chat.c:2415
#, c-format
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
-#: ../libempathy-gtk/empathy-chat.c:2518
+#: ../libempathy-gtk/empathy-chat.c:2554
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1126
+#: ../src/empathy-event-manager.c:1116
msgid "Disconnected"
msgstr "Desconectado"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3148
+#: ../libempathy-gtk/empathy-chat.c:3202
msgid "Would you like to store this password?"
msgstr "¿Quiere guardar esta contraseña?"
-#: ../libempathy-gtk/empathy-chat.c:3154
+#: ../libempathy-gtk/empathy-chat.c:3208
msgid "Remember"
msgstr "Recordar"
-#: ../libempathy-gtk/empathy-chat.c:3164
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Not now"
msgstr "Ahora no"
-#: ../libempathy-gtk/empathy-chat.c:3208
+#: ../libempathy-gtk/empathy-chat.c:3262
msgid "Retry"
msgstr "Volver a intentarlo"
-#: ../libempathy-gtk/empathy-chat.c:3212
+#: ../libempathy-gtk/empathy-chat.c:3266
msgid "Wrong password; please try again:"
msgstr "Contraseña incorrecta; inténtelo de nuevo:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3329
+#: ../libempathy-gtk/empathy-chat.c:3383
msgid "This room is protected by a password:"
msgstr "Esta sala está protegida por contraseña:"
-#: ../libempathy-gtk/empathy-chat.c:3356
+#: ../libempathy-gtk/empathy-chat.c:3410
msgid "Join"
msgstr "Unirse"
-#: ../libempathy-gtk/empathy-chat.c:3526 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1137
msgid "Connected"
msgstr "Conectado"
-#: ../libempathy-gtk/empathy-chat.c:3579
+#: ../libempathy-gtk/empathy-chat.c:3657
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Conversación"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422
+#. Translators: this string is a something like
+#. * "Escher Cat (SMS)"
+#: ../libempathy-gtk/empathy-chat.c:3662
+#, c-format
+msgid "%s (SMS)"
+msgstr "%s (SMS)"
+
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:423
msgid "Unknown or invalid identifier"
msgstr "Identificador desconocido o no válido"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:425
msgid "Contact blocking temporarily unavailable"
msgstr "Bloqueo de contactos no disponible temporalmente"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:427
msgid "Contact blocking unavailable"
msgstr "Bloqueo de contactos no disponible"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:429
msgid "Permission Denied"
msgstr "Permiso denegado"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:433
msgid "Could not block contact"
msgstr "No se pudo bloquear el contacto"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:702
msgid "Edit Blocked Contacts"
msgstr "Editar contactos bloqueados"
#. Account and Identifier
#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
#: ../libempathy-gtk/empathy-individual-widget.c:1479
#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
@@ -1557,13 +1580,13 @@ msgstr "Cuenta:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:794
+#: ../libempathy-gtk/empathy-theme-adium.c:996
msgid "_Copy Link Address"
msgstr "_Copiar la dirección del enlace"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:801
+#: ../libempathy-gtk/empathy-theme-adium.c:1003
msgid "_Open Link"
msgstr "_Abrir enlace"
@@ -1633,38 +1656,38 @@ msgid "Favorite People"
msgstr "Gente favorita"
#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2343
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "¿Realmente quiere quitar el grupo «%s»?"
#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2346
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "Quitando grupo"
#. Remove
#: ../libempathy-gtk/empathy-contact-list-view.c:2038
#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2401
-#: ../libempathy-gtk/empathy-individual-view.c:2594
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "_Quitar"
#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2465
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "¿Realmente quiere quitar el contacto «%s»?"
#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2486
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "Quitando el contacto"
#: ../libempathy-gtk/empathy-contact-menu.c:219
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
msgid "_Add Contact…"
msgstr "_Añadir contacto…"
@@ -1673,48 +1696,48 @@ msgid "_Block Contact"
msgstr "_Bloquear contacto"
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:517
-#: ../src/empathy-main-window.ui.h:15
+#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_Chat"
#: ../libempathy-gtk/empathy-contact-menu.c:359
-#: ../libempathy-gtk/empathy-individual-menu.c:560
+#: ../libempathy-gtk/empathy-individual-menu.c:625
msgctxt "menu item"
msgid "_Audio Call"
msgstr "Llamada de vo_z"
#: ../libempathy-gtk/empathy-contact-menu.c:390
-#: ../libempathy-gtk/empathy-individual-menu.c:602
+#: ../libempathy-gtk/empathy-individual-menu.c:667
msgctxt "menu item"
msgid "_Video Call"
msgstr "Llamada de _vídeo"
#: ../libempathy-gtk/empathy-contact-menu.c:436
-#: ../libempathy-gtk/empathy-individual-menu.c:645
-#: ../src/empathy-main-window.ui.h:26
+#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "Conversaciones an_teriores"
#: ../libempathy-gtk/empathy-contact-menu.c:458
-#: ../libempathy-gtk/empathy-individual-menu.c:686
+#: ../libempathy-gtk/empathy-individual-menu.c:751
msgid "Send File"
msgstr "Enviar archivo"
#: ../libempathy-gtk/empathy-contact-menu.c:481
-#: ../libempathy-gtk/empathy-individual-menu.c:728
+#: ../libempathy-gtk/empathy-individual-menu.c:793
msgid "Share My Desktop"
msgstr "Compartir mi escritorio"
#: ../libempathy-gtk/empathy-contact-menu.c:521
-#: ../libempathy-gtk/empathy-contact-widget.c:1761
-#: ../libempathy-gtk/empathy-individual-menu.c:763
+#: ../libempathy-gtk/empathy-contact-widget.c:1751
+#: ../libempathy-gtk/empathy-individual-menu.c:828
#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "Favorita"
#: ../libempathy-gtk/empathy-contact-menu.c:550
-#: ../libempathy-gtk/empathy-individual-menu.c:791
+#: ../libempathy-gtk/empathy-individual-menu.c:856
msgid "Infor_mation"
msgstr "Infor_mación"
@@ -1724,30 +1747,30 @@ msgid "_Edit"
msgstr "_Editar"
#: ../libempathy-gtk/empathy-contact-menu.c:650
-#: ../libempathy-gtk/empathy-individual-menu.c:972
-#: ../src/empathy-chat-window.c:935
+#: ../libempathy-gtk/empathy-individual-menu.c:1037
+#: ../src/empathy-chat-window.c:986
msgid "Inviting you to this room"
msgstr "Invitándolo a esta sala"
#: ../libempathy-gtk/empathy-contact-menu.c:681
-#: ../libempathy-gtk/empathy-individual-menu.c:1019
+#: ../libempathy-gtk/empathy-individual-menu.c:1084
msgid "_Invite to Chat Room"
msgstr "_Invitar a sala de chat"
#. Title
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:513
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:514
msgid "Search contacts"
msgstr "Buscar contactos"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:543
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:544
msgid "Search: "
msgstr "Buscar:"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:601
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:602
msgid "_Add Contact"
msgstr "_Añadir contacto"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:619
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:620
msgid "No contacts found"
msgstr "No se encontraron contactos"
@@ -1900,8 +1923,8 @@ msgstr "Latitud:"
msgid "Altitude:"
msgstr "Altitud:"
-#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:886
+#: ../libempathy-gtk/empathy-contact-widget.c:861
+#: ../libempathy-gtk/empathy-contact-widget.c:876
#: ../libempathy-gtk/empathy-individual-widget.c:616
#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
@@ -1909,23 +1932,23 @@ msgid "Location"
msgstr "Ubicación geográfica"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-contact-widget.c:878
#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:940
+#: ../libempathy-gtk/empathy-contact-widget.c:930
#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "%e de %B de %Y a las %R UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1022
+#: ../libempathy-gtk/empathy-contact-widget.c:1012
#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "Guardar avatar"
-#: ../libempathy-gtk/empathy-contact-widget.c:1078
+#: ../libempathy-gtk/empathy-contact-widget.c:1068
#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "No se pudo guardar el avatar"
@@ -1995,7 +2018,7 @@ msgid "Select"
msgstr "Seleccionar"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1770
msgid "Group"
msgstr "Grupo"
@@ -2038,23 +2061,29 @@ msgstr ""
msgid "%s (%s)"
msgstr "%s (%s)"
-#: ../libempathy-gtk/empathy-individual-menu.c:839
+#. add an SMS button
+#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-new-message-dialog.c:248
+msgid "_SMS"
+msgstr "_SMS"
+
+#: ../libempathy-gtk/empathy-individual-menu.c:904
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "_Editar"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:865
+#: ../libempathy-gtk/empathy-individual-menu.c:930
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_Enlazar contactos…"
-#: ../libempathy-gtk/empathy-individual-view.c:2308
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "Eliminar y _bloquear"
-#: ../libempathy-gtk/empathy-individual-view.c:2474
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2186,12 +2215,12 @@ msgid "Contact ID:"
msgstr "ID del contacto:"
#. add chat button
-#: ../libempathy-gtk/empathy-new-message-dialog.c:171
+#: ../libempathy-gtk/empathy-new-message-dialog.c:258
msgid "C_hat"
msgstr "C_hat"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-message-dialog.c:181
+#: ../libempathy-gtk/empathy-new-message-dialog.c:277
msgid "New Conversation"
msgstr "Conversación nueva"
@@ -2333,19 +2362,23 @@ msgstr "Guardar mensaje de estado _nuevo"
msgid "Saved Status Messages"
msgstr "Mensajes de estado guardados"
-#: ../libempathy-gtk/empathy-theme-manager.c:67
+#: ../libempathy-gtk/empathy-theme-adium.c:1462
+msgid "Normal"
+msgstr "Normal"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "Clásico"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:69
msgid "Simple"
msgstr "Simple"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:70
msgid "Clean"
msgstr "Limpio"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:71
msgid "Blue"
msgstr "Azul"
@@ -2800,8 +2833,8 @@ msgid "Select the accounts you want to import:"
msgstr "Seleccione las cuentas que quiere importar:"
#: ../src/empathy-account-assistant.c:813
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "Yes"
msgstr "Sí"
@@ -2920,7 +2953,7 @@ msgstr "¿Quiere quitar %s de su equipo?"
msgid "This will not remove your account on the server."
msgstr "Esto no quitará su cuenta del servidor."
-#: ../src/empathy-accounts-dialog.c:1434
+#: ../src/empathy-accounts-dialog.c:1432
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2929,15 +2962,15 @@ msgstr ""
"¿Seguro que quiere continuar?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1652
+#: ../src/empathy-accounts-dialog.c:1643
msgid "_Enable"
msgstr "_Activar"
-#: ../src/empathy-accounts-dialog.c:1653
+#: ../src/empathy-accounts-dialog.c:1644
msgid "_Disable"
msgstr "_Desactivar"
-#: ../src/empathy-accounts-dialog.c:2174
+#: ../src/empathy-accounts-dialog.c:2154
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2973,11 +3006,11 @@ msgstr "_Añadir…"
msgid "_Import…"
msgstr "_Importar…"
-#: ../src/empathy-auth-client.c:250
+#: ../src/empathy-auth-client.c:249
msgid " - Empathy authentication client"
msgstr ": Cliente de autenticación de Empathy"
-#: ../src/empathy-auth-client.c:266
+#: ../src/empathy-auth-client.c:265
msgid "Empathy authentication client"
msgstr "Cliente de autenticación de Empathy"
@@ -3063,25 +3096,21 @@ msgid "The IP address of the multicast group"
msgstr "La dirección IP del grupo multicast"
#: ../src/empathy-streamed-media-window.c:1906
-#| msgid "Unknown"
msgctxt "encoding video codec"
msgid "Unknown"
msgstr "Desconocido"
#: ../src/empathy-streamed-media-window.c:1909
-#| msgid "Unknown"
msgctxt "encoding audio codec"
msgid "Unknown"
msgstr "Desconocido"
#: ../src/empathy-streamed-media-window.c:1912
-#| msgid "Unknown"
msgctxt "decoding video codec"
msgid "Unknown"
msgstr "Desconocido"
#: ../src/empathy-streamed-media-window.c:1915
-#| msgid "Unknown"
msgctxt "decoding audio codec"
msgid "Unknown"
msgstr "Desconocido"
@@ -3264,39 +3293,50 @@ msgstr "Vista preliminar del vídeo"
msgid "_Call"
msgstr "_Llamar"
-#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29
+#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:30
msgid "_View"
msgstr "_Ver"
-#: ../src/empathy-chat-window.c:474 ../src/empathy-chat-window.c:494
+#: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500
#, c-format
msgid "%s (%d unread)"
msgid_plural "%s (%d unread)"
msgstr[0] "%s (%d sin leer)"
msgstr[1] "%s (%d sin leer)"
-#: ../src/empathy-chat-window.c:486
+#: ../src/empathy-chat-window.c:492
#, c-format
msgid "%s (and %u other)"
msgid_plural "%s (and %u others)"
msgstr[0] "%s (y otra)"
msgstr[1] "%s (y otras %u)"
-#: ../src/empathy-chat-window.c:502
+#: ../src/empathy-chat-window.c:508
#, c-format
msgid "%s (%d unread from others)"
msgid_plural "%s (%d unread from others)"
msgstr[0] "%s (%d sin leer de otros)"
msgstr[1] "%s (%d sin leer de otros)"
-#: ../src/empathy-chat-window.c:511
+#: ../src/empathy-chat-window.c:517
#, c-format
msgid "%s (%d unread from all)"
msgid_plural "%s (%d unread from all)"
msgstr[0] "%s (%d sin leer de todos)"
msgstr[1] "%s (%d sin leer de todos)"
-#: ../src/empathy-chat-window.c:721
+#: ../src/empathy-chat-window.c:732
+msgid "SMS:"
+msgstr "SMS:"
+
+#: ../src/empathy-chat-window.c:742
+#, c-format
+msgid "Sending %d message"
+msgid_plural "Sending %d messages"
+msgstr[0] "Enviando %d mensaje"
+msgstr[1] "Enviando %d mensajes"
+
+#: ../src/empathy-chat-window.c:764
msgid "Typing a message."
msgstr "Tecleando un mensaje."
@@ -3332,7 +3372,7 @@ msgstr "Mover pestaña a la _derecha"
msgid "Notify for All Messages"
msgstr "Notificar para todos los mensajes"
-#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:18
msgid "_Contents"
msgstr "Índ_ice"
@@ -3344,7 +3384,7 @@ msgstr "_Conversación"
msgid "_Detach Tab"
msgstr "_Desacoplar pestaña"
-#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19
+#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20
msgid "_Edit"
msgstr "_Editar"
@@ -3352,7 +3392,7 @@ msgstr "_Editar"
msgid "_Favorite Chat Room"
msgstr "Sala de chat _favorita"
-#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:21
+#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22
msgid "_Help"
msgstr "Ay_uda"
@@ -3392,90 +3432,90 @@ msgstr "Autoconectar"
msgid "Manage Favorite Rooms"
msgstr "Gestionar salas favoritas"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming video call"
msgstr "Llamada de vídeo entrante"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming call"
msgstr "Llamada entrante"
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:508
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "%s le está llamando con vídeo. ¿Quiere responder?"
-#: ../src/empathy-event-manager.c:512
+#: ../src/empathy-event-manager.c:509
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "%s le está llamando. ¿Quiere responder?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:512 ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming call from %s"
msgstr "Llamada entrante de %s"
-#: ../src/empathy-event-manager.c:540
+#: ../src/empathy-event-manager.c:537
msgid "_Reject"
msgstr "_Rechazar"
-#: ../src/empathy-event-manager.c:546
+#: ../src/empathy-event-manager.c:543
msgid "_Answer"
msgstr "Re_spuesta"
-#: ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming video call from %s"
msgstr "Llamada de vídeo entrante de %s"
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:734
msgid "Room invitation"
msgstr "Invitación a una sala"
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:736
#, c-format
msgid "Invitation to join %s"
msgstr "Invitación para unirse a %s"
-#: ../src/empathy-event-manager.c:753
+#: ../src/empathy-event-manager.c:743
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s"
-#: ../src/empathy-event-manager.c:761
+#: ../src/empathy-event-manager.c:751
msgid "_Decline"
msgstr "_Rechazar"
-#: ../src/empathy-event-manager.c:766
+#: ../src/empathy-event-manager.c:756
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Unirse"
-#: ../src/empathy-event-manager.c:793
+#: ../src/empathy-event-manager.c:783
#, c-format
msgid "%s invited you to join %s"
msgstr "%s le ha invitado a unirse a %s"
-#: ../src/empathy-event-manager.c:799
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "You have been invited to join %s"
msgstr "Le han invitado a unirse a %s"
-#: ../src/empathy-event-manager.c:850
+#: ../src/empathy-event-manager.c:840
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Transferencia de archivo entrante de %s"
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1010 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "Se requiere una contraseña"
-#: ../src/empathy-event-manager.c:1076
+#: ../src/empathy-event-manager.c:1066
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s quiere permiso para ver cuándo está en línea"
-#: ../src/empathy-event-manager.c:1080
+#: ../src/empathy-event-manager.c:1070
#, c-format
msgid ""
"\n"
@@ -3561,7 +3601,7 @@ msgstr "«%s» enviado a %s"
msgid "File transfer completed"
msgstr "Transferencia de archivo completada"
-#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780
msgid "Waiting for the other participant's response"
msgstr "Esperando la respuesta del otro participante"
@@ -3575,15 +3615,15 @@ msgstr "Comprobando la integridad de «%s»"
msgid "Hashing \"%s\""
msgstr "Obteniendo el «hash» de «%s»"
-#: ../src/empathy-ft-manager.c:1029
+#: ../src/empathy-ft-manager.c:1026
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1041
+#: ../src/empathy-ft-manager.c:1038
msgid "File"
msgstr "Archivo"
-#: ../src/empathy-ft-manager.c:1063
+#: ../src/empathy-ft-manager.c:1060
msgid "Remaining"
msgstr "Restantes"
@@ -3622,39 +3662,55 @@ msgstr "Protocolo"
msgid "Source"
msgstr "Origen"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:394
msgid "Provide Password"
msgstr "Escriba su contraseña"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:400
msgid "Disconnect"
msgstr "Desconectar"
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:540
msgid "No match found"
msgstr "No se encontró ninguna coincidencia"
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:695
msgid "Reconnect"
msgstr "Reconectar"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:701
msgid "Edit Account"
msgstr "Editar cuenta"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:707
msgid "Close"
msgstr "Cerrar"
-#: ../src/empathy-main-window.c:1418
+#. Translators: this string will be something like:
+#. * Top up My Account ($1.23)..."
+#: ../src/empathy-main-window.c:849
+#, c-format
+msgid "Top up %s (%s)..."
+msgstr "Recargar %s (%s)…"
+
+#: ../src/empathy-main-window.c:924
+msgid "Top up account credit"
+msgstr "Recargar el saldo de la cuenta"
+
+#. top up button
+#: ../src/empathy-main-window.c:999
+msgid "Top Up..."
+msgstr "Recargar…"
+
+#: ../src/empathy-main-window.c:1752
msgid "Contact"
msgstr "Contacto"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:2101
msgid "Contact List"
msgstr "Lista de contactos"
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:2219
msgid "Show and edit accounts"
msgstr "Mostrar y editar cuentas"
@@ -3663,86 +3719,90 @@ msgid "Contacts on a _Map"
msgstr "Contactos en el _mapa"
#: ../src/empathy-main-window.ui.h:2
+msgid "Credit Balance"
+msgstr "Crédito"
+
+#: ../src/empathy-main-window.ui.h:3
msgid "Find in Contact _List"
msgstr "_Buscar en la lista de contactos"
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
msgid "Join _Favorites"
msgstr "Unirse a _favoritas"
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
msgid "Manage Favorites"
msgstr "Gestionar favoritos"
-#: ../src/empathy-main-window.ui.h:5
+#: ../src/empathy-main-window.ui.h:6
msgid "N_ormal Size"
msgstr "Tamaño n_ormal"
-#: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
+#: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
msgid "New _Call…"
msgstr "_Llamada nueva…"
-#: ../src/empathy-main-window.ui.h:7
+#: ../src/empathy-main-window.ui.h:8
msgid "Normal Size With _Avatars"
msgstr "Tamaño normal con _avatares"
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:9
msgid "P_references"
msgstr "Prefere_ncias"
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:10
msgid "Show P_rotocols"
msgstr "Mostrar p_rotocolos"
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:11
msgid "Sort by _Name"
msgstr "Ordenar por _nombre"
-#: ../src/empathy-main-window.ui.h:11
+#: ../src/empathy-main-window.ui.h:12
msgid "Sort by _Status"
msgstr "Ordenar por es_tado"
-#: ../src/empathy-main-window.ui.h:12
+#: ../src/empathy-main-window.ui.h:13
msgid "_Accounts"
msgstr "_Cuentas"
-#: ../src/empathy-main-window.ui.h:14
+#: ../src/empathy-main-window.ui.h:15
msgid "_Blocked Contacts"
msgstr "Contactos _bloqueados"
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:17
msgid "_Compact Size"
msgstr "Tamaño _compacto"
-#: ../src/empathy-main-window.ui.h:18
+#: ../src/empathy-main-window.ui.h:19
msgid "_Debug"
msgstr "_Depurar"
-#: ../src/empathy-main-window.ui.h:20
+#: ../src/empathy-main-window.ui.h:21
msgid "_File Transfers"
msgstr "_Transferencias de archivos"
-#: ../src/empathy-main-window.ui.h:22
+#: ../src/empathy-main-window.ui.h:23
msgid "_Join…"
msgstr "_Unirse…"
-#: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
+#: ../src/empathy-main-window.ui.h:24 ../src/empathy-status-icon.ui.h:3
msgid "_New Conversation…"
msgstr "Conversación _nueva…"
-#: ../src/empathy-main-window.ui.h:24
+#: ../src/empathy-main-window.ui.h:25
msgid "_Offline Contacts"
msgstr "Contactos _desconectados"
-#: ../src/empathy-main-window.ui.h:25
+#: ../src/empathy-main-window.ui.h:26
msgid "_Personal Information"
msgstr "Información p_ersonal"
-#: ../src/empathy-main-window.ui.h:27
+#: ../src/empathy-main-window.ui.h:28
msgid "_Room"
msgstr "_Sala"
-#: ../src/empathy-main-window.ui.h:28
+#: ../src/empathy-main-window.ui.h:29
msgid "_Search for Contacts…"
msgstr "_Buscar contactos…"
@@ -3756,7 +3816,7 @@ msgstr "Miembros"
#. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
#. yes/no, yes/no and a number.
-#: ../src/empathy-new-chatroom-dialog.c:560
+#: ../src/empathy-new-chatroom-dialog.c:553
#, c-format
msgid ""
"%s\n"
@@ -3769,16 +3829,16 @@ msgstr ""
"Se necesita contraseña: %s\n"
"Miembros: %s"
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "No"
msgstr "No"
-#: ../src/empathy-new-chatroom-dialog.c:591
+#: ../src/empathy-new-chatroom-dialog.c:584
msgid "Could not start room listing"
msgstr "No se pudo iniciar la lista de la sala"
-#: ../src/empathy-new-chatroom-dialog.c:601
+#: ../src/empathy-new-chatroom-dialog.c:594
msgid "Could not stop room listing"
msgstr "No se pudo parar la lista de la sala"
@@ -3813,39 +3873,79 @@ msgstr "Lista de salas"
msgid "_Room:"
msgstr "_Sala:"
-#: ../src/empathy-preferences.c:139
+#: ../src/empathy-preferences.c:147
msgid "Message received"
msgstr "Mensaje recibido"
-#: ../src/empathy-preferences.c:140
+#: ../src/empathy-preferences.c:148
msgid "Message sent"
msgstr "Mensaje enviado"
-#: ../src/empathy-preferences.c:141
+#: ../src/empathy-preferences.c:149
msgid "New conversation"
msgstr "Conversación nueva"
-#: ../src/empathy-preferences.c:142
+#: ../src/empathy-preferences.c:150
msgid "Contact goes online"
msgstr "El contacto se conecta"
-#: ../src/empathy-preferences.c:143
+#: ../src/empathy-preferences.c:151
msgid "Contact goes offline"
msgstr "El contacto se desconecta"
-#: ../src/empathy-preferences.c:144
+#: ../src/empathy-preferences.c:152
msgid "Account connected"
msgstr "Cuenta conectada"
-#: ../src/empathy-preferences.c:145
+#: ../src/empathy-preferences.c:153
msgid "Account disconnected"
msgstr "Cuenta desconectada"
-#: ../src/empathy-preferences.c:446
+#: ../src/empathy-preferences.c:450
msgid "Language"
msgstr "Idioma"
-#: ../src/empathy-preferences.c:875
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:700
+msgid "Juliet"
+msgstr "Julieta"
+
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:707
+msgid "Romeo"
+msgstr "Romeo"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:713
+msgid "O Romeo, Romeo, wherefore art thou Romeo?"
+msgstr "¡Oh, Romeo, Romeo!, ¿dónde estás que no te veo?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:716
+msgid "Deny thy father and refuse thy name;"
+msgstr "Niega a tu padre y rehúsa tu nombre;"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:719
+msgid "Or if thou wilt not, be but sworn my love"
+msgstr "O, si no quieres, júrame tan sólo que me amas"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:722
+msgid "And I'll no longer be a Capulet."
+msgstr "Y dejaré yo de ser una Capuleto"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:725
+msgid "Shall I hear more, or shall I speak at this?"
+msgstr "¿Debo oír más o contestar a lo dicho?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:728
+msgid "Juliet has disconnected"
+msgstr "Julieta se ha desconectado"
+
+#: ../src/empathy-preferences.c:962
msgid "Preferences"
msgstr "Preferencias"
@@ -3948,43 +4048,47 @@ msgstr ""
"diccionario instalado."
#: ../src/empathy-preferences.ui.h:24
+msgid "Theme Variant:"
+msgstr "Variante del tema:"
+
+#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "Temas"
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "C_onectarse automáticamente al inicio"
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
msgid "_Cellphone"
msgstr "Teléfono _móvil"
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
msgid "_Enable bubble notifications"
msgstr "_Activar notificaciones de burbuja"
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
msgid "_Enable sound notifications"
msgstr "_Activar notificaciones de sonido"
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:30
msgid "_GPS"
msgstr "_GPS"
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:31
msgid "_Network (IP, Wi-Fi)"
msgstr "_Red (IP, Wi-Fi)"
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:32
msgid "_Open new chats in separate windows"
msgstr "_Abrir charlas nuevas en ventanas separadas"
-#: ../src/empathy-preferences.ui.h:32
+#: ../src/empathy-preferences.ui.h:33
msgid "_Publish location to my contacts"
msgstr "_Publicar mi ubicación a mis contactos"
#. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:35
msgid "_Reduce location accuracy"
msgstr "_Reducir la precisión de la ubicación"
@@ -4135,7 +4239,7 @@ msgstr "Rechazar"
msgid "Accept"
msgstr "Aceptar"
-#: ../src/empathy-notifications-approver.c:223
+#: ../src/empathy-notifications-approver.c:226
msgid "Provide"
msgstr "Proporcionar"
@@ -4149,6 +4253,10 @@ msgstr "Llamada perdida de %s"
msgid "%s just tried to call you, but you were in another call."
msgstr "%s intentó llamarle, pero estaba en otra llamada."
+#: ../libempathy-gtk/empathy-search-bar.c:282
+msgid "_Match case"
+msgstr "_Coincidir con capitalización"
+
#~ msgid "_Enabled"
#~ msgstr "_Activada"
@@ -4281,9 +4389,6 @@ msgstr "%s intentó llamarle, pero estaba en otra llamada."
#~ msgid "_Import&#x2026;"
#~ msgstr "_Importar&#x2026;"
-#~ msgid "Salut account is created"
-#~ msgstr "Se creó la cuenta Salut"
-
#~ msgid "Whether the Salut account has been created on the first Empathy run."
#~ msgstr ""
#~ "Indica si la cuenta Salut se ha creado cuando ejecutó por primera vez "
diff --git a/po/gl.po b/po/gl.po
index 7c2127eb8..c4f5cc02d 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy-master-po-gl-57278_.merged\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-04-30 23:08+0200\n"
-"PO-Revision-Date: 2011-04-30 23:08+0200\n"
+"POT-Creation-Date: 2011-05-09 12:52+0200\n"
+"PO-Revision-Date: 2011-05-09 12:57+0200\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n"
@@ -253,113 +253,118 @@ msgstr "Facer emerxer unha notificación cando un contacto sae"
# rever
#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+msgid "Show Balance in contact list"
+msgstr "Mostrar o balance na lista de contactos"
+
+# rever
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show avatars"
msgstr "Mostrar os avatares"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show contact list in rooms"
msgstr "Mostrar a lista de contactos nas salas"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show hint about closing the main window"
msgstr "Mostrar unha indicación sobre pechar a xanela principal"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show offline contacts"
msgstr "Mostrar os contactos desconectados"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show protocols"
msgstr "Mostrar os protocolos"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Spell checking languages"
msgstr "Idiomas para a corrección ortográfica"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "The default folder to save file transfers in."
msgstr ""
"O cartafol predeterminado en que gardar as transferencias de ficheiros."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The last directory that an avatar image was chosen from."
msgstr "O último cartafol desde onde foi escollida unha imaxe de avatar."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The position for the chat window side pane"
msgstr "A posición do panel lateral da xanela de conversa"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The stored position (in pixels) of the chat window side pane."
msgstr ""
"A posición almacenada (en píxeles) do panel lateral da xanela de conversa."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The theme that is used to display the conversation in chat windows."
msgstr "O tema usado para mostrar as conversa nas xanelas de conversa."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "Use graphical smileys"
msgstr "Usar emoticonas gráficas"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
msgid "Use notification sounds"
msgstr "Usar sons de notificación"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use theme for chat rooms"
msgstr "Usar un tema para as salas de conversa"
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr ""
"Indica se o Empathy pode ou non publicar a localización do usuario aos seus "
"contactos."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Whether Empathy can use the GPS to guess the location."
msgstr ""
"Indica se o Empathy pode usar ou non o GPS para adiviñar a localización."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr ""
"Indica se o Empathy pode ou non usar a rede de telefonía móbil para adiviñar "
"a localización."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the network to guess the location."
msgstr ""
"Indica se o Empathy pode ou non usar a rede para adiviñar a localización."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Indica se Empathy migrou os seus rexistros de butterfly."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr ""
"Indica se o Empathy debería iniciar a sesión nas súas contas automaticamente "
"ao inicio ou non."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
@@ -367,7 +372,7 @@ msgstr ""
"inactivo."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
@@ -375,14 +380,14 @@ msgstr ""
"motivos de privacidade."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
"Indica se o Empathy debería usar o avatar dos contactos como a icona da "
"xanela da conversa ou non."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr ""
@@ -390,7 +395,7 @@ msgstr ""
"deberían ser activadas."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
@@ -399,7 +404,7 @@ msgstr ""
"desconectarse automaticamente ou non."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr ""
@@ -407,80 +412,80 @@ msgstr ""
"as quere verificar."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid "Whether to convert smileys into graphical images in conversations."
msgstr ""
"Indica se converter ou non as emoticonas en imaxes gráficas nas conversas."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
"Indica se reproducir ou non un son para notificar que os contactos inician "
"unha sesión na rede."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
"Indica se reproducir ou non un son para notificar que os contactos terminan "
"unha sesión na rede."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of events."
msgstr "Indica se reproducir ou non un son para notificar os eventos."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid "Whether to play a sound to notify of incoming messages."
msgstr ""
"Indica se reproducir ou non un son para notificar as mensaxes entrantes."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of new conversations."
msgstr "Indica se reproducir ou non un son para notificar as conversas novas."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of outgoing messages."
msgstr "Indica se reproducir ou non un son para notificar as mensaxes saíntes."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound when logging into a network."
msgstr ""
"Indica se reproducir ou non un son cando se inicia unha sesión na rede."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound when logging out of a network."
msgstr "Indica se reproducir ou non un son cando se sae da sesión na rede."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play sound notifications when away or busy."
msgstr ""
"Indica se reproducir ou non un son para notificar cando se está ocupado ou "
"ausente."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to show a popup notification when a contact goes offline."
msgstr ""
"Indica se mostrar ou non unha notificación emerxente cando un contacto está "
"desconectado."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to show a popup notification when a contact goes online."
msgstr ""
"Indica se mostrar ou non unha notificación emerxente cando un contacto está "
"conectado."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -489,14 +494,19 @@ msgstr ""
"mensaxe nova, aínda cando a conversa xa estea aberta mais non estea enfocada."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when receiving a new message."
msgstr ""
"Indica se mostrar ou non unha notificación emerxente cando se reciba unha "
"mensaxe nova."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+msgid "Whether to show account balances in the contact list."
+msgstr "Indica se mostrar ou non os balances na lista de contactos."
+
+# rever
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr ""
@@ -504,38 +514,38 @@ msgstr ""
"das xanelas de conversa."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show contacts that are offline in the contact list."
msgstr ""
"Indica se mostrar ou non os contactos que están desconectados na lista de "
"contactos."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid "Whether to show popup notifications when away or busy."
msgstr ""
"Indica se mostrar ou non as notificacións emerxentes cando se está ausente "
"ou ocupado."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show protocols for contacts in the contact list."
msgstr ""
"Indica se mostrar ou non os protocolos para os contacto na lista de "
"contactos."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show the contact list in chat rooms."
msgstr "Indica se mostrar ou non a lista de contactos nas salas de conversa."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show the contact list in compact mode."
msgstr "Indica se mostrar ou non a lista de contactos no modo compacto."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -544,12 +554,12 @@ msgstr ""
"principal co botón 'x' da barra de título."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to use the theme for chat rooms."
msgstr "Indica se usar ou non o tema para as salas de conversa."
# rever
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -565,7 +575,7 @@ msgstr "Xestionar as contas de mensaxaría e VoIP"
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2340
+#: ../src/empathy-accounts-dialog.c:2320
msgid "Messaging and VoIP Accounts"
msgstr "Contas de mensaxaría e VoIP"
@@ -620,158 +630,158 @@ msgstr "Produciuse un erro ao tentar transferir o ficheiro"
msgid "The other participant is unable to transfer the file"
msgstr "O outro participante non pode transferir o ficheiro"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
msgstr "Motivo descoñecido"
-#: ../libempathy/empathy-utils.c:304
+#: ../libempathy/empathy-utils.c:305
msgid "Available"
msgstr "Dispoñíbel"
-#: ../libempathy/empathy-utils.c:306
+#: ../libempathy/empathy-utils.c:307
msgid "Busy"
msgstr "Ocupado"
-#: ../libempathy/empathy-utils.c:309
+#: ../libempathy/empathy-utils.c:310
msgid "Away"
msgstr "Ausente"
-#: ../libempathy/empathy-utils.c:311
+#: ../libempathy/empathy-utils.c:312
msgid "Invisible"
msgstr "Invisíbel"
-#: ../libempathy/empathy-utils.c:313
+#: ../libempathy/empathy-utils.c:314
msgid "Offline"
msgstr "Desconectado"
#. translators: presence type is unknown
-#: ../libempathy/empathy-utils.c:316
+#: ../libempathy/empathy-utils.c:317
msgctxt "presence"
msgid "Unknown"
msgstr "Descoñecido"
# rever
-#: ../libempathy/empathy-utils.c:355
+#: ../libempathy/empathy-utils.c:356
msgid "No reason specified"
msgstr "Non se especificou un motivo"
-#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413
+#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:414
msgid "Status is set to offline"
msgstr "O estado está definido a desconectado"
# rever
-#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393
+#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
msgid "Network error"
msgstr "Erro de rede"
-#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395
+#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
msgid "Authentication failed"
msgstr "Fallou a autenticación"
# rever
-#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397
+#: ../libempathy/empathy-utils.c:364 ../libempathy/empathy-utils.c:398
msgid "Encryption error"
msgstr "Erro de cifrado"
# rever
-#: ../libempathy/empathy-utils.c:365
+#: ../libempathy/empathy-utils.c:366
msgid "Name in use"
msgstr "Nome en uso"
# rever
-#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399
+#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
msgid "Certificate not provided"
msgstr "Non se proporcionou o certificado"
-#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401
+#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
msgstr "Certificado non fiábel"
# rever
-#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403
+#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
msgstr "O certificado caducou"
# rever
-#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405
+#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
msgid "Certificate not activated"
msgstr "O certificado non está activado"
# rever
-#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407
+#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
msgid "Certificate hostname mismatch"
msgstr "O nome do host do certificado non coincide"
# rever
-#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409
+#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
msgid "Certificate fingerprint mismatch"
msgstr "A impresión dixital do certificado non coincide"
# rever
-#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411
+#: ../libempathy/empathy-utils.c:380 ../libempathy/empathy-utils.c:412
msgid "Certificate self-signed"
msgstr "Certificado autoasinado"
# rever
-#: ../libempathy/empathy-utils.c:381
+#: ../libempathy/empathy-utils.c:382
msgid "Certificate error"
msgstr "Erro de certificado"
-#: ../libempathy/empathy-utils.c:415
+#: ../libempathy/empathy-utils.c:416
msgid "Encryption is not available"
msgstr "O cifrado non está dispoñíbel"
# rever
-#: ../libempathy/empathy-utils.c:417
+#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
msgstr "O certificado non é válido"
# rever
-#: ../libempathy/empathy-utils.c:419
+#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
msgstr "Rexeitouse a conexión"
# rever
-#: ../libempathy/empathy-utils.c:421
+#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
msgstr "Non é posíbel estabelecer a conexión"
# rever
-#: ../libempathy/empathy-utils.c:423
+#: ../libempathy/empathy-utils.c:424
msgid "Connection has been lost"
msgstr "Perdeuse a conexión"
-#: ../libempathy/empathy-utils.c:425
+#: ../libempathy/empathy-utils.c:426
msgid "This resource is already connected to the server"
msgstr "Este recurso xa está conectado ao servidor"
-#: ../libempathy/empathy-utils.c:427
+#: ../libempathy/empathy-utils.c:428
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"A conexión foi substituída por unha nova conexión empregando o mesmo recurso"
-#: ../libempathy/empathy-utils.c:430
+#: ../libempathy/empathy-utils.c:431
msgid "The account already exists on the server"
msgstr "Esta conta xa existe no servidor"
-#: ../libempathy/empathy-utils.c:432
+#: ../libempathy/empathy-utils.c:433
msgid "Server is currently too busy to handle the connection"
msgstr "Nestes intres o servidor está moi ocupado para xesionar a conexión"
# rever
-#: ../libempathy/empathy-utils.c:434
+#: ../libempathy/empathy-utils.c:435
msgid "Certificate has been revoked"
msgstr "O certificado foi revocado"
-#: ../libempathy/empathy-utils.c:436
+#: ../libempathy/empathy-utils.c:437
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"O certificado usa un algoritmo de cifrado inseguro ou cripotograficamente "
"débil"
-#: ../libempathy/empathy-utils.c:439
+#: ../libempathy/empathy-utils.c:440
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -781,21 +791,21 @@ msgstr ""
"criptografía."
# rever
-#: ../libempathy/empathy-utils.c:602
+#: ../libempathy/empathy-utils.c:603
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "Persoas próximas"
# rever
-#: ../libempathy/empathy-utils.c:607
+#: ../libempathy/empathy-utils.c:608
msgid "Yahoo! Japan"
msgstr "Yahoo! Japan"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:637
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:637
+#: ../libempathy/empathy-utils.c:638
msgid "Facebook Chat"
msgstr "Chat de Facebook"
@@ -920,20 +930,20 @@ msgstr "Ca_ncelar"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2413
+#: ../libempathy-gtk/empathy-account-widget.c:2410
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s sobre %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2439
+#: ../libempathy-gtk/empathy-account-widget.c:2436
#, c-format
msgid "%s Account"
msgstr "Conta %s"
# rever
-#: ../libempathy-gtk/empathy-account-widget.c:2443
+#: ../libempathy-gtk/empathy-account-widget.c:2440
msgid "New account"
msgstr "Conta nova"
@@ -1378,35 +1388,35 @@ msgstr "Todos os ficheiros"
msgid "Click to enlarge"
msgstr "Prema para ampliar"
-#: ../libempathy-gtk/empathy-chat.c:652
+#: ../libempathy-gtk/empathy-chat.c:668
msgid "Failed to open private chat"
msgstr "Produciuse un fallo ao abrir un chat privado"
-#: ../libempathy-gtk/empathy-chat.c:717
+#: ../libempathy-gtk/empathy-chat.c:733
msgid "Topic not supported on this conversation"
msgstr "Ese asunto non se admite nesta conversación"
-#: ../libempathy-gtk/empathy-chat.c:723
+#: ../libempathy-gtk/empathy-chat.c:739
msgid "You are not allowed to change the topic"
msgstr "Non se lle permite cambiar o asunto"
-#: ../libempathy-gtk/empathy-chat.c:932
+#: ../libempathy-gtk/empathy-chat.c:948
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear, limpa todas as mensaxes da conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:935
+#: ../libempathy-gtk/empathy-chat.c:951
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <topic>, estabelece o asunto da conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:938
+#: ../libempathy-gtk/empathy-chat.c:954
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <chatroom id>, unirse a unha nova sala de conversa"
-#: ../libempathy-gtk/empathy-chat.c:941
+#: ../libempathy-gtk/empathy-chat.c:957
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <chatroom id>, unirse a unha nova sala de conversa"
-#: ../libempathy-gtk/empathy-chat.c:946
+#: ../libempathy-gtk/empathy-chat.c:962
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
@@ -1414,23 +1424,23 @@ msgstr ""
"/part [<chat room ID>] [<reason>]: abandonar a sala de char, por omisión a "
"actual"
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:967
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <contact id> [<message>], abre unha conversa privada"
-#: ../libempathy-gtk/empathy-chat.c:954
+#: ../libempathy-gtk/empathy-chat.c:970
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <contact id> <message>, abre unha conversa privada"
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:973
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <nickname>, cambia o seu nome de usuario no servidor actual"
-#: ../libempathy-gtk/empathy-chat.c:960
+#: ../libempathy-gtk/empathy-chat.c:976
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <message>, envía unha mensaxe ACTION á conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:963
+#: ../libempathy-gtk/empathy-chat.c:979
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1440,7 +1450,7 @@ msgstr ""
"unha mensaxe que comeza cunha '/'. Por exemplo: \"/say /join úsase para "
"unirse a unha nova sala de conversa\""
-#: ../libempathy-gtk/empathy-chat.c:968
+#: ../libempathy-gtk/empathy-chat.c:984
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1448,109 +1458,119 @@ msgstr ""
"/help [<command>], mostra todas as ordes admitidas. Se <command> está "
"definida, mostra o seu uso."
-#: ../libempathy-gtk/empathy-chat.c:978
+#: ../libempathy-gtk/empathy-chat.c:994
#, c-format
msgid "Usage: %s"
msgstr "Uso: %s"
-#: ../libempathy-gtk/empathy-chat.c:1017
+#: ../libempathy-gtk/empathy-chat.c:1033
msgid "Unknown command"
msgstr "Orde descoñecida"
-#: ../libempathy-gtk/empathy-chat.c:1143
+#: ../libempathy-gtk/empathy-chat.c:1159
msgid "Unknown command; see /help for the available commands"
msgstr "Orde descoñecida, vexa /help para obter as ordes dispoñíbeis"
-#: ../libempathy-gtk/empathy-chat.c:1281
+#. translators: error used when user doesn't have enough credit on his
+#. * account to send the message.
+#: ../libempathy-gtk/empathy-chat.c:1299
+msgid "insufficient balance to send message"
+msgstr "non ten balance suficiente para enviar a mensaxe"
+
+#: ../libempathy-gtk/empathy-chat.c:1301
+msgid "not capable"
+msgstr "non é posíbel"
+
+#: ../libempathy-gtk/empathy-chat.c:1308
msgid "offline"
msgstr "desconectado"
-#: ../libempathy-gtk/empathy-chat.c:1284
+#: ../libempathy-gtk/empathy-chat.c:1311
msgid "invalid contact"
msgstr "contacto incorrecto"
-#: ../libempathy-gtk/empathy-chat.c:1287
+#: ../libempathy-gtk/empathy-chat.c:1314
msgid "permission denied"
msgstr "permiso denegado"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1290
+#: ../libempathy-gtk/empathy-chat.c:1317
msgid "too long message"
msgstr "a mensaxe é demasiado longa"
-#: ../libempathy-gtk/empathy-chat.c:1293
+#: ../libempathy-gtk/empathy-chat.c:1320
msgid "not implemented"
msgstr "non implementado"
-#: ../libempathy-gtk/empathy-chat.c:1297
+#: ../libempathy-gtk/empathy-chat.c:1324
msgid "unknown"
msgstr "descoñecido"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1302
+#: ../libempathy-gtk/empathy-chat.c:1330
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Produciuse un erro ao enviar a mensaxe '%s': %s"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1306
+#: ../libempathy-gtk/empathy-chat.c:1334
#, c-format
msgid "Error sending message: %s"
msgstr "Produciuse un erro ao enviar a mensaxe: %s"
-#: ../libempathy-gtk/empathy-chat.c:1367 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Asunto:"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1379
+#: ../libempathy-gtk/empathy-chat.c:1407
#, c-format
msgid "Topic set to: %s"
msgstr "Cambiouse o asunto a: %s"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1381
+#: ../libempathy-gtk/empathy-chat.c:1409
msgid "No topic defined"
msgstr "Non se definiu un asunto"
-#: ../libempathy-gtk/empathy-chat.c:1888
+#: ../libempathy-gtk/empathy-chat.c:1916
msgid "(No Suggestions)"
msgstr "(Sen suxestións)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1956
+#: ../libempathy-gtk/empathy-chat.c:1984
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Engadir «%s» ao dicionario"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1993
+#: ../libempathy-gtk/empathy-chat.c:2021
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Engadir «%s» ao dicionario de %s"
-#: ../libempathy-gtk/empathy-chat.c:2050
+#: ../libempathy-gtk/empathy-chat.c:2078
msgid "Insert Smiley"
msgstr "Inserir unha emoticona"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2068
+#: ../libempathy-gtk/empathy-chat.c:2096
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "_Enviar"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2103
+#: ../libempathy-gtk/empathy-chat.c:2131
msgid "_Spelling Suggestions"
msgstr "Suxestións de _ortografía"
-#: ../libempathy-gtk/empathy-chat.c:2192
+#: ../libempathy-gtk/empathy-chat.c:2220
msgid "Failed to retrieve recent logs"
msgstr "Produciuse un fallo ao obter os rexistros recentes"
# rever
-#: ../libempathy-gtk/empathy-chat.c:2303
+#: ../libempathy-gtk/empathy-chat.c:2331
#, c-format
msgid "%s has disconnected"
msgstr "%s desconectou"
@@ -1558,12 +1578,12 @@ msgstr "%s desconectou"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2310
+#: ../libempathy-gtk/empathy-chat.c:2338
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s foi expulsado por %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2313
+#: ../libempathy-gtk/empathy-chat.c:2341
#, c-format
msgid "%s was kicked"
msgstr "%s foi expulsado"
@@ -1571,17 +1591,17 @@ msgstr "%s foi expulsado"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2321
+#: ../libempathy-gtk/empathy-chat.c:2349
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s foi vetado por %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2324
+#: ../libempathy-gtk/empathy-chat.c:2352
#, c-format
msgid "%s was banned"
msgstr "%s foi excluído"
-#: ../libempathy-gtk/empathy-chat.c:2328
+#: ../libempathy-gtk/empathy-chat.c:2356
#, c-format
msgid "%s has left the room"
msgstr "%s deixou a sala"
@@ -1591,95 +1611,102 @@ msgstr "%s deixou a sala"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2337
+#: ../libempathy-gtk/empathy-chat.c:2365
#, c-format
msgid " (%s)"
msgstr " (%s)"
# rever
-#: ../libempathy-gtk/empathy-chat.c:2362
+#: ../libempathy-gtk/empathy-chat.c:2390
#, c-format
msgid "%s has joined the room"
msgstr "%s uniuse á sala"
-#: ../libempathy-gtk/empathy-chat.c:2387
+#: ../libempathy-gtk/empathy-chat.c:2415
#, c-format
msgid "%s is now known as %s"
msgstr "%s agora é coñecido como %s"
-#: ../libempathy-gtk/empathy-chat.c:2526
+#: ../libempathy-gtk/empathy-chat.c:2554
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1126
+#: ../src/empathy-event-manager.c:1116
msgid "Disconnected"
msgstr "Desconectado"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3158
+#: ../libempathy-gtk/empathy-chat.c:3202
msgid "Would you like to store this password?"
msgstr "Desexa gardar este contrasinal?"
-#: ../libempathy-gtk/empathy-chat.c:3164
+#: ../libempathy-gtk/empathy-chat.c:3208
msgid "Remember"
msgstr "Lembrar"
-#: ../libempathy-gtk/empathy-chat.c:3174
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Not now"
msgstr "Agora non"
-#: ../libempathy-gtk/empathy-chat.c:3218
+#: ../libempathy-gtk/empathy-chat.c:3262
msgid "Retry"
msgstr "Reintentar"
-#: ../libempathy-gtk/empathy-chat.c:3222
+#: ../libempathy-gtk/empathy-chat.c:3266
msgid "Wrong password; please try again:"
msgstr "O contrasinal é incorrecto, ténteo de novo:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3339
+#: ../libempathy-gtk/empathy-chat.c:3383
msgid "This room is protected by a password:"
msgstr "Esta sala está protexida por un contrasinal:"
-#: ../libempathy-gtk/empathy-chat.c:3366
+#: ../libempathy-gtk/empathy-chat.c:3410
msgid "Join"
msgstr "Unirse"
-#: ../libempathy-gtk/empathy-chat.c:3536 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1137
msgid "Connected"
msgstr "Conectado"
-#: ../libempathy-gtk/empathy-chat.c:3589
+#: ../libempathy-gtk/empathy-chat.c:3657
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Conversa"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422
+#. Translators: this string is a something like
+#. * "Escher Cat (SMS)"
+#: ../libempathy-gtk/empathy-chat.c:3662
+#, c-format
+msgid "%s (SMS)"
+msgstr "%s (SMS)"
+
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:423
msgid "Unknown or invalid identifier"
msgstr "Identificador descoñecido ou non válido"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:425
msgid "Contact blocking temporarily unavailable"
msgstr "Bloqueo de contactos non dispoñíbel temporalmente"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:427
msgid "Contact blocking unavailable"
msgstr "Bloqueo de contactos non dispoñíbel"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:429
msgid "Permission Denied"
msgstr "Permiso denegado"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:433
msgid "Could not block contact"
msgstr "Non foi posíbel bloquear o contacto"
# rever
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:702
msgid "Edit Blocked Contacts"
msgstr "Editar os contactos bloqueados"
#. Account and Identifier
#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
#: ../libempathy-gtk/empathy-individual-widget.c:1479
#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
@@ -1690,13 +1717,13 @@ msgstr "Conta:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:962
+#: ../libempathy-gtk/empathy-theme-adium.c:996
msgid "_Copy Link Address"
msgstr "_Copiar o enderezo da ligazón"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:969
+#: ../libempathy-gtk/empathy-theme-adium.c:1003
msgid "_Open Link"
msgstr "_Abrir a ligazón"
@@ -1770,41 +1797,41 @@ msgstr "Persoas favoritas"
# rever
#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2343
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Está seguro de que quere eliminar o grupo '%s'?"
# rever
#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2346
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "Eliminando o grupo"
#. Remove
#: ../libempathy-gtk/empathy-contact-list-view.c:2038
#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2401
-#: ../libempathy-gtk/empathy-individual-view.c:2594
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "_Eliminar"
# rever
#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2465
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Está seguro de quere eliminar o contacto '%s'?"
#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2486
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "Eliminando o contacto"
# rever
#: ../libempathy-gtk/empathy-contact-menu.c:219
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
msgid "_Add Contact…"
msgstr "Eng_adir un contacto…"
@@ -1814,50 +1841,50 @@ msgid "_Block Contact"
msgstr "_Bloquear contacto"
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:517
-#: ../src/empathy-main-window.ui.h:15
+#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_Conversa"
#: ../libempathy-gtk/empathy-contact-menu.c:359
-#: ../libempathy-gtk/empathy-individual-menu.c:560
+#: ../libempathy-gtk/empathy-individual-menu.c:625
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Audiochamada"
#: ../libempathy-gtk/empathy-contact-menu.c:390
-#: ../libempathy-gtk/empathy-individual-menu.c:602
+#: ../libempathy-gtk/empathy-individual-menu.c:667
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Videochamada"
# rever
#: ../libempathy-gtk/empathy-contact-menu.c:436
-#: ../libempathy-gtk/empathy-individual-menu.c:645
-#: ../src/empathy-main-window.ui.h:26
+#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "Conversas _previas"
#: ../libempathy-gtk/empathy-contact-menu.c:458
-#: ../libempathy-gtk/empathy-individual-menu.c:686
+#: ../libempathy-gtk/empathy-individual-menu.c:751
msgid "Send File"
msgstr "Enviar ficheiro"
#: ../libempathy-gtk/empathy-contact-menu.c:481
-#: ../libempathy-gtk/empathy-individual-menu.c:728
+#: ../libempathy-gtk/empathy-individual-menu.c:793
msgid "Share My Desktop"
msgstr "Compartir o meu escritorio"
# rever
#: ../libempathy-gtk/empathy-contact-menu.c:521
-#: ../libempathy-gtk/empathy-contact-widget.c:1761
-#: ../libempathy-gtk/empathy-individual-menu.c:763
+#: ../libempathy-gtk/empathy-contact-widget.c:1751
+#: ../libempathy-gtk/empathy-individual-menu.c:828
#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "Favorito"
#: ../libempathy-gtk/empathy-contact-menu.c:550
-#: ../libempathy-gtk/empathy-individual-menu.c:791
+#: ../libempathy-gtk/empathy-individual-menu.c:856
msgid "Infor_mation"
msgstr "Infor_mación"
@@ -1868,34 +1895,34 @@ msgstr "_Editar"
# rever
#: ../libempathy-gtk/empathy-contact-menu.c:650
-#: ../libempathy-gtk/empathy-individual-menu.c:972
-#: ../src/empathy-chat-window.c:935
+#: ../libempathy-gtk/empathy-individual-menu.c:1037
+#: ../src/empathy-chat-window.c:986
msgid "Inviting you to this room"
msgstr "Invítao a vostede a esta sala"
# rever
#: ../libempathy-gtk/empathy-contact-menu.c:681
-#: ../libempathy-gtk/empathy-individual-menu.c:1019
+#: ../libempathy-gtk/empathy-individual-menu.c:1084
msgid "_Invite to Chat Room"
msgstr "Conv_idar a sala de conversa"
# rever
#. Title
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:513
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:514
msgid "Search contacts"
msgstr "Buscar contactos"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:543
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:544
msgid "Search: "
msgstr "Buscar:"
# rever
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:601
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:602
msgid "_Add Contact"
msgstr "_Engadir contacto"
# rever
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:619
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:620
msgid "No contacts found"
msgstr "Non se atoparon contactos"
@@ -2050,8 +2077,8 @@ msgstr "Latitude:"
msgid "Altitude:"
msgstr "Altitude:"
-#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:886
+#: ../libempathy-gtk/empathy-contact-widget.c:861
+#: ../libempathy-gtk/empathy-contact-widget.c:876
#: ../libempathy-gtk/empathy-individual-widget.c:616
#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
@@ -2059,25 +2086,25 @@ msgid "Location"
msgstr "Localización"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-contact-widget.c:878
#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:940
+#: ../libempathy-gtk/empathy-contact-widget.c:930
#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "%B %e, %Y de %R UTC"
# rever
-#: ../libempathy-gtk/empathy-contact-widget.c:1022
+#: ../libempathy-gtk/empathy-contact-widget.c:1012
#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "Gardar o avatar"
# rever
-#: ../libempathy-gtk/empathy-contact-widget.c:1078
+#: ../libempathy-gtk/empathy-contact-widget.c:1068
#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "Non foi posíbel gardar o avatar"
@@ -2150,7 +2177,7 @@ msgid "Select"
msgstr "Seleccionar"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1770
msgid "Group"
msgstr "Grupo"
@@ -2193,7 +2220,13 @@ msgstr "Ligaranse entre si os contactos seleccionados na lista da esquerda"
msgid "%s (%s)"
msgstr "%s (%s)"
-#: ../libempathy-gtk/empathy-individual-menu.c:839
+#. add an SMS button
+#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-new-message-dialog.c:248
+msgid "_SMS"
+msgstr "_SMS"
+
+#: ../libempathy-gtk/empathy-individual-menu.c:904
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "_Editar"
@@ -2201,16 +2234,16 @@ msgstr "_Editar"
# rever
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:865
+#: ../libempathy-gtk/empathy-individual-menu.c:930
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_Ligar contactos…"
-#: ../libempathy-gtk/empathy-individual-view.c:2308
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "Eliminar e _bloquear"
-#: ../libempathy-gtk/empathy-individual-view.c:2474
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2345,12 +2378,12 @@ msgid "Contact ID:"
msgstr "ID do contacto:"
#. add chat button
-#: ../libempathy-gtk/empathy-new-message-dialog.c:171
+#: ../libempathy-gtk/empathy-new-message-dialog.c:258
msgid "C_hat"
msgstr "Con_versa"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-message-dialog.c:181
+#: ../libempathy-gtk/empathy-new-message-dialog.c:277
msgid "New Conversation"
msgstr "Conversa nova"
@@ -2503,19 +2536,23 @@ msgstr "Gardar a mensaxe de estado _novo"
msgid "Saved Status Messages"
msgstr "Mensaxes de estado gardados"
-#: ../libempathy-gtk/empathy-theme-manager.c:67
+#: ../libempathy-gtk/empathy-theme-adium.c:1462
+msgid "Normal"
+msgstr "Normal"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "Clásico"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:69
msgid "Simple"
msgstr "Simple"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:70
msgid "Clean"
msgstr "Limpo"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:71
msgid "Blue"
msgstr "Azul"
@@ -2992,8 +3029,8 @@ msgid "Select the accounts you want to import:"
msgstr "Seleccione as contas que quere importar:"
#: ../src/empathy-account-assistant.c:813
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "Yes"
msgstr "Si"
@@ -3116,7 +3153,7 @@ msgid "This will not remove your account on the server."
msgstr "Isto non eliminará a súa conta no servidor."
# rever
-#: ../src/empathy-accounts-dialog.c:1434
+#: ../src/empathy-accounts-dialog.c:1432
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -3125,16 +3162,16 @@ msgstr ""
"Está seguro de que quere proceder?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1652
+#: ../src/empathy-accounts-dialog.c:1643
msgid "_Enable"
msgstr "_Activar"
-#: ../src/empathy-accounts-dialog.c:1653
+#: ../src/empathy-accounts-dialog.c:1644
msgid "_Disable"
msgstr "_Desactivar"
# rever
-#: ../src/empathy-accounts-dialog.c:2174
+#: ../src/empathy-accounts-dialog.c:2154
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -3174,11 +3211,11 @@ msgid "_Import…"
msgstr "_Importar…"
# rever
-#: ../src/empathy-auth-client.c:250
+#: ../src/empathy-auth-client.c:249
msgid " - Empathy authentication client"
msgstr "- Cliente de autenticación Empathy"
-#: ../src/empathy-auth-client.c:266
+#: ../src/empathy-auth-client.c:265
msgid "Empathy authentication client"
msgstr "Cliente de autenticación Empathy"
@@ -3468,40 +3505,52 @@ msgstr "Previsualizar o vídeo"
msgid "_Call"
msgstr "_Chamar"
-#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29
+#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:30
msgid "_View"
msgstr "_Ver"
-#: ../src/empathy-chat-window.c:474 ../src/empathy-chat-window.c:494
+#: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500
#, c-format
msgid "%s (%d unread)"
msgid_plural "%s (%d unread)"
msgstr[0] "%s (%d non lido)"
msgstr[1] "%s (%d non lidos)"
-#: ../src/empathy-chat-window.c:486
+#: ../src/empathy-chat-window.c:492
#, c-format
msgid "%s (and %u other)"
msgid_plural "%s (and %u others)"
msgstr[0] "%s (e outro %u)"
msgstr[1] "%s (e outros %u)"
-#: ../src/empathy-chat-window.c:502
+#: ../src/empathy-chat-window.c:508
#, c-format
msgid "%s (%d unread from others)"
msgid_plural "%s (%d unread from others)"
msgstr[0] "%s (%d non lido de outros)"
msgstr[1] "%s (%d non lidos de outros)"
-#: ../src/empathy-chat-window.c:511
+#: ../src/empathy-chat-window.c:517
#, c-format
msgid "%s (%d unread from all)"
msgid_plural "%s (%d unread from all)"
msgstr[0] "%s (%d non lido de todos)"
msgstr[1] "%s (%d non lidos de todos)"
+#: ../src/empathy-chat-window.c:732
+msgid "SMS:"
+msgstr "SMS:"
+
+# rever
+#: ../src/empathy-chat-window.c:742
+#, c-format
+msgid "Sending %d message"
+msgid_plural "Sending %d messages"
+msgstr[0] "Enviando %d mensaxe."
+msgstr[1] "Enviando %d mensaxes."
+
# rever
-#: ../src/empathy-chat-window.c:721
+#: ../src/empathy-chat-window.c:764
msgid "Typing a message."
msgstr "Escribindo unha mensaxe."
@@ -3538,7 +3587,7 @@ msgstr "Mover a lapela á _dereita"
msgid "Notify for All Messages"
msgstr "Notificar todas as mensaxes"
-#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:18
msgid "_Contents"
msgstr "_Contidos"
@@ -3550,7 +3599,7 @@ msgstr "_Conversa"
msgid "_Detach Tab"
msgstr "Des_prender lapela"
-#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19
+#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20
msgid "_Edit"
msgstr "_Editar"
@@ -3559,7 +3608,7 @@ msgstr "_Editar"
msgid "_Favorite Chat Room"
msgstr "Sala de conversa _favorita"
-#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:21
+#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22
msgid "_Help"
msgstr "A_xuda"
@@ -3604,100 +3653,100 @@ msgid "Manage Favorite Rooms"
msgstr "Xestionar as salas preferidas"
# rever
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming video call"
msgstr "Chamada de vídeo entrante"
# rever
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming call"
msgstr "Chamada entrante"
# rever
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:508
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "%s solicítalle unha videochamada. Desexa responderlle?"
# rever
-#: ../src/empathy-event-manager.c:512
+#: ../src/empathy-event-manager.c:509
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "%s estao chamando. Quérelle responder?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:512 ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming call from %s"
msgstr "Chamada entrante de %s"
-#: ../src/empathy-event-manager.c:540
+#: ../src/empathy-event-manager.c:537
msgid "_Reject"
msgstr "_Rexeitar"
# rever
-#: ../src/empathy-event-manager.c:546
+#: ../src/empathy-event-manager.c:543
msgid "_Answer"
msgstr "_Responder"
-#: ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming video call from %s"
msgstr "Videochamada entrante de %s"
# rever
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:734
msgid "Room invitation"
msgstr "Convite para unha sala"
# rever
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:736
#, c-format
msgid "Invitation to join %s"
msgstr "Invitación a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:753
+#: ../src/empathy-event-manager.c:743
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s estao convidando a unirse a %s"
-#: ../src/empathy-event-manager.c:761
+#: ../src/empathy-event-manager.c:751
msgid "_Decline"
msgstr "_Declinar"
-#: ../src/empathy-event-manager.c:766
+#: ../src/empathy-event-manager.c:756
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Unirse"
# rever
-#: ../src/empathy-event-manager.c:793
+#: ../src/empathy-event-manager.c:783
#, c-format
msgid "%s invited you to join %s"
msgstr "%s convidouno a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:799
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "You have been invited to join %s"
msgstr "Vostede foi convidado a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:850
+#: ../src/empathy-event-manager.c:840
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Transferencia de ficheiro entrante de %s"
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1010 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "Requírese o contrasinal"
-#: ../src/empathy-event-manager.c:1076
+#: ../src/empathy-event-manager.c:1066
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cando vostede está dispoñíbel"
-#: ../src/empathy-event-manager.c:1080
+#: ../src/empathy-event-manager.c:1070
#, c-format
msgid ""
"\n"
@@ -3793,7 +3842,7 @@ msgid "File transfer completed"
msgstr "Transferencia de ficheiros rematada"
# rever
-#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780
msgid "Waiting for the other participant's response"
msgstr "Agardando pola resposta do outro participante"
@@ -3807,15 +3856,15 @@ msgstr "Verificando a integridade de «%s»"
msgid "Hashing \"%s\""
msgstr "Aplicando o hash «%s»"
-#: ../src/empathy-ft-manager.c:1029
+#: ../src/empathy-ft-manager.c:1026
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1041
+#: ../src/empathy-ft-manager.c:1038
msgid "File"
msgstr "Ficheiro"
-#: ../src/empathy-ft-manager.c:1063
+#: ../src/empathy-ft-manager.c:1060
msgid "Remaining"
msgstr "Restantes"
@@ -3857,41 +3906,57 @@ msgstr "Protocolo"
msgid "Source"
msgstr "Orixe"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:394
msgid "Provide Password"
msgstr "Escriba o seu contrasinal"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:400
msgid "Disconnect"
msgstr "Desconectar"
# rever
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:540
msgid "No match found"
msgstr "Non se atopou ningunha coincidencia."
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:695
msgid "Reconnect"
msgstr "Reconectar"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:701
msgid "Edit Account"
msgstr "Editar a conta"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:707
msgid "Close"
msgstr "Pechar"
-#: ../src/empathy-main-window.c:1418
+#. Translators: this string will be something like:
+#. * Top up My Account ($1.23)..."
+#: ../src/empathy-main-window.c:849
+#, c-format
+msgid "Top up %s (%s)..."
+msgstr "Recargar %s (%s)…"
+
+#: ../src/empathy-main-window.c:924
+msgid "Top up account credit"
+msgstr "Recargar o saldo da conta"
+
+#. top up button
+#: ../src/empathy-main-window.c:999
+msgid "Top Up..."
+msgstr "Recargar…"
+
+#: ../src/empathy-main-window.c:1752
msgid "Contact"
msgstr "Contacto"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:2101
msgid "Contact List"
msgstr "Lista de contactos"
# rever
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:2219
msgid "Show and edit accounts"
msgstr "Mostrar e editar contas"
@@ -3900,92 +3965,96 @@ msgid "Contacts on a _Map"
msgstr "Contactos no mapa"
#: ../src/empathy-main-window.ui.h:2
+msgid "Credit Balance"
+msgstr "Crédito"
+
+#: ../src/empathy-main-window.ui.h:3
msgid "Find in Contact _List"
msgstr "_Buscar na lista de contactos"
# rever
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
msgid "Join _Favorites"
msgstr "Unirse a pre_feridos"
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
msgid "Manage Favorites"
msgstr "Xestionar as preferidas"
-#: ../src/empathy-main-window.ui.h:5
+#: ../src/empathy-main-window.ui.h:6
msgid "N_ormal Size"
msgstr "Tamañ_o normal"
-#: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
+#: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
msgid "New _Call…"
msgstr "Nova _chamada…"
-#: ../src/empathy-main-window.ui.h:7
+#: ../src/empathy-main-window.ui.h:8
msgid "Normal Size With _Avatars"
msgstr "Tamaño normal con _avatares"
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:9
msgid "P_references"
msgstr "P_referencias"
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:10
msgid "Show P_rotocols"
msgstr "Mostrar os p_rotocolos"
# rever
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:11
msgid "Sort by _Name"
msgstr "Ordenar por _nome"
# rever
-#: ../src/empathy-main-window.ui.h:11
+#: ../src/empathy-main-window.ui.h:12
msgid "Sort by _Status"
msgstr "Ordenar por es_tado"
-#: ../src/empathy-main-window.ui.h:12
+#: ../src/empathy-main-window.ui.h:13
msgid "_Accounts"
msgstr "_Contas"
# rever
-#: ../src/empathy-main-window.ui.h:14
+#: ../src/empathy-main-window.ui.h:15
msgid "_Blocked Contacts"
msgstr "Contactos _bloqueados"
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:17
msgid "_Compact Size"
msgstr "Ta_maño compacto"
-#: ../src/empathy-main-window.ui.h:18
+#: ../src/empathy-main-window.ui.h:19
msgid "_Debug"
msgstr "_Depuración"
-#: ../src/empathy-main-window.ui.h:20
+#: ../src/empathy-main-window.ui.h:21
msgid "_File Transfers"
msgstr "Trans_ferencias de ficheiros"
-#: ../src/empathy-main-window.ui.h:22
+#: ../src/empathy-main-window.ui.h:23
msgid "_Join…"
msgstr "_Unirse…"
-#: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
+#: ../src/empathy-main-window.ui.h:24 ../src/empathy-status-icon.ui.h:3
msgid "_New Conversation…"
msgstr "_Nova conversa…"
# rever
-#: ../src/empathy-main-window.ui.h:24
+#: ../src/empathy-main-window.ui.h:25
msgid "_Offline Contacts"
msgstr "Mostrar os contactos _desconectados"
-#: ../src/empathy-main-window.ui.h:25
+#: ../src/empathy-main-window.ui.h:26
msgid "_Personal Information"
msgstr "Información _persoal"
-#: ../src/empathy-main-window.ui.h:27
+#: ../src/empathy-main-window.ui.h:28
msgid "_Room"
msgstr "Sa_la"
# rever
-#: ../src/empathy-main-window.ui.h:28
+#: ../src/empathy-main-window.ui.h:29
msgid "_Search for Contacts…"
msgstr "_Buscar contactos…"
@@ -4000,7 +4069,7 @@ msgstr "Membros"
#. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
#. yes/no, yes/no and a number.
-#: ../src/empathy-new-chatroom-dialog.c:560
+#: ../src/empathy-new-chatroom-dialog.c:553
#, c-format
msgid ""
"%s\n"
@@ -4013,16 +4082,16 @@ msgstr ""
"Contrasinal requirido: %s\n"
"Membros: %s"
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "No"
msgstr "Non"
-#: ../src/empathy-new-chatroom-dialog.c:591
+#: ../src/empathy-new-chatroom-dialog.c:584
msgid "Could not start room listing"
msgstr "Non foi posíbel arrincar a lista da sala"
-#: ../src/empathy-new-chatroom-dialog.c:601
+#: ../src/empathy-new-chatroom-dialog.c:594
msgid "Could not stop room listing"
msgstr "Non foi posíbel deter a lista da sala"
@@ -4060,43 +4129,84 @@ msgstr "Lista de _salas"
msgid "_Room:"
msgstr "Sa_la:"
-#: ../src/empathy-preferences.c:139
+#: ../src/empathy-preferences.c:147
msgid "Message received"
msgstr "Mensaxe recibida"
-#: ../src/empathy-preferences.c:140
+#: ../src/empathy-preferences.c:148
msgid "Message sent"
msgstr "Mensaxe enviada"
-#: ../src/empathy-preferences.c:141
+#: ../src/empathy-preferences.c:149
msgid "New conversation"
msgstr "Conversa nova"
# rever
-#: ../src/empathy-preferences.c:142
+#: ../src/empathy-preferences.c:150
msgid "Contact goes online"
msgstr "O contacto conéctase"
# rever
-#: ../src/empathy-preferences.c:143
+#: ../src/empathy-preferences.c:151
msgid "Contact goes offline"
msgstr "O contacto desconéctase"
# rever
-#: ../src/empathy-preferences.c:144
+#: ../src/empathy-preferences.c:152
msgid "Account connected"
msgstr "Conta conectada"
# rever
-#: ../src/empathy-preferences.c:145
+#: ../src/empathy-preferences.c:153
msgid "Account disconnected"
msgstr "Conta desconectada"
-#: ../src/empathy-preferences.c:446
+#: ../src/empathy-preferences.c:450
msgid "Language"
msgstr "Idioma"
-#: ../src/empathy-preferences.c:875
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:700
+msgid "Juliet"
+msgstr "Xulieta"
+
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:707
+msgid "Romeo"
+msgstr "Romeo"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:713
+msgid "O Romeo, Romeo, wherefore art thou Romeo?"
+msgstr "Oh, Romeo, Romeo!, ¿onde estás que non te vexo?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:716
+msgid "Deny thy father and refuse thy name;"
+msgstr "Nega ao teu pai e rexeita o teu nome;"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:719
+msgid "Or if thou wilt not, be but sworn my love"
+msgstr "Ou, se non queres, xúrame tan só que me amas"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:722
+msgid "And I'll no longer be a Capulet."
+msgstr "Y deixarei eu de ser unha Capuleto."
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:725
+msgid "Shall I hear more, or shall I speak at this?"
+msgstr "Debo escoitar máis ou contestar ao dito?"
+
+# rever
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:728
+msgid "Juliet has disconnected"
+msgstr "Xulieta desconectouse"
+
+#: ../src/empathy-preferences.c:962
msgid "Preferences"
msgstr "Preferencias"
@@ -4210,48 +4320,52 @@ msgstr ""
"dicionario instalado."
#: ../src/empathy-preferences.ui.h:24
+msgid "Theme Variant:"
+msgstr "Variante do tema:"
+
+#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "Temas"
# rever
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "_Conectar automaticamente ao iniciar"
# rever
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
msgid "_Cellphone"
msgstr "_Teléfono móbil"
# rever
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
msgid "_Enable bubble notifications"
msgstr "_Activar as burbullas de notificación"
# rever
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
msgid "_Enable sound notifications"
msgstr "_Activar as notificacións de son"
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:30
msgid "_GPS"
msgstr "_GPS"
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:31
msgid "_Network (IP, Wi-Fi)"
msgstr "_Rede (IP, Wifi)"
# rever
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:32
msgid "_Open new chats in separate windows"
msgstr "A_brir as conversas novas en xanelas separadas"
-#: ../src/empathy-preferences.ui.h:32
+#: ../src/empathy-preferences.ui.h:33
msgid "_Publish location to my contacts"
msgstr "_Publicar a miña localización aos meus contactos"
#. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:35
msgid "_Reduce location accuracy"
msgstr "_Reducir a precisión de localización"
@@ -4406,7 +4520,7 @@ msgstr "Declinar"
msgid "Accept"
msgstr "Aceptar"
-#: ../src/empathy-notifications-approver.c:223
+#: ../src/empathy-notifications-approver.c:226
msgid "Provide"
msgstr "Fornecer"
@@ -4420,6 +4534,10 @@ msgstr "Chamada perdida de %s"
msgid "%s just tried to call you, but you were in another call."
msgstr "%s tentou chamarlle, pero vostede estaba noutra chamada."
+#: ../libempathy-gtk/empathy-search-bar.c:282
+msgid "_Match case"
+msgstr "_Coincidir con capitalización"
+
#~ msgid "_Enabled"
#~ msgstr "_Activado"
diff --git a/po/he.po b/po/he.po
index d5c4f63fa..ff07c934f 100644
--- a/po/he.po
+++ b/po/he.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-04-18 10:45+0300\n"
-"PO-Revision-Date: 2011-04-18 10:46+0200\n"
+"POT-Creation-Date: 2011-05-13 08:30+0300\n"
+"PO-Revision-Date: 2011-05-13 08:35+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -207,111 +208,115 @@ msgid "Pop up notifications when a contact logs out"
msgstr "Pop up notifications when a contact logs out"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+msgid "Show Balance in contact list"
+msgstr "Show Balance in contact list"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show avatars"
msgstr "Show avatars"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show contact list in rooms"
msgstr "Show contact list in rooms"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show hint about closing the main window"
msgstr "Show hint about closing the main window"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show offline contacts"
msgstr "Show offline contacts"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show protocols"
msgstr "Show protocols"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Spell checking languages"
msgstr "Spell checking languages"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "The default folder to save file transfers in."
msgstr "The default folder to save file transfers in."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The last directory that an avatar image was chosen from."
msgstr "The last directory that an avatar image was chosen from."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The position for the chat window side pane"
msgstr "The position for the chat window side pane"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The stored position (in pixels) of the chat window side pane."
msgstr "The stored position (in pixels) of the chat window side pane."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The theme that is used to display the conversation in chat windows."
msgstr "The theme that is used to display the conversation in chat windows."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "Use graphical smileys"
msgstr "Use graphical smileys"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
msgid "Use notification sounds"
msgstr "Use notification sounds"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use theme for chat rooms"
msgstr "Use theme for chat rooms"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr "Whether Empathy can publish the user's location to their contacts."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Whether Empathy can use the GPS to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr "Whether Empathy can use the cellular network to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the network to guess the location."
msgstr "Whether Empathy can use the network to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Whether Empathy has migrated butterfly logs."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr ""
"Whether Empathy should automatically log into your accounts on startup."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
"Whether Empathy should go into away mode automatically if the user is idle."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
@@ -319,64 +324,64 @@ msgstr ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr ""
"Whether to check words typed against the languages you want to check with."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid "Whether to convert smileys into graphical images in conversations."
msgstr "Whether to convert smileys into graphical images in conversations."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
"Whether to play a sound to notify of contacts logging into the network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
"Whether to play a sound to notify of contacts logging out of the network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of events."
msgstr "Whether to play a sound to notify of events."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid "Whether to play a sound to notify of incoming messages."
msgstr "Whether to play a sound to notify of incoming messages."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of new conversations."
msgstr "Whether to play a sound to notify of new conversations."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of outgoing messages."
msgstr "Whether to play a sound to notify of outgoing messages."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound when logging into a network."
msgstr "Whether to play a sound when logging into a network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound when logging out of a network."
msgstr "Whether to play a sound when logging out of a network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play sound notifications when away or busy."
msgstr "Whether to play sound notifications when away or busy."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to show a popup notification when a contact goes offline."
msgstr "Whether to show a popup notification when a contact goes offline."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to show a popup notification when a contact goes online."
msgstr "Whether to show a popup notification when a contact goes online."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -384,37 +389,41 @@ msgstr ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when receiving a new message."
msgstr "Whether to show a popup notification when receiving a new message."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+msgid "Whether to show account balances in the contact list."
+msgstr "Whether to show account balances in the contact list."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr ""
"Whether to show avatars for contacts in the contact list and chat windows."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show contacts that are offline in the contact list."
msgstr "Whether to show contacts that are offline in the contact list."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid "Whether to show popup notifications when away or busy."
msgstr "Whether to show popup notifications when away or busy."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show protocols for contacts in the contact list."
msgstr "Whether to show protocols for contacts in the contact list."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show the contact list in chat rooms."
msgstr "Whether to show the contact list in chat rooms."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show the contact list in compact mode."
msgstr "Whether to show the contact list in compact mode."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -422,11 +431,11 @@ msgstr ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to use the theme for chat rooms."
msgstr "Whether to use the theme for chat rooms."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -442,7 +451,7 @@ msgstr "ניהול חשבונות התכתבות ו־VoIP"
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2269
+#: ../src/empathy-accounts-dialog.c:2320
msgid "Messaging and VoIP Accounts"
msgstr "חשבונות התכתבות ו־VoIP"
@@ -490,148 +499,140 @@ msgstr "התרחשה שגיאה בזמן ניסיון העברת הקובץ"
msgid "The other participant is unable to transfer the file"
msgstr "המשתתף האחר לא יכול להעביר את הקובץ"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
msgstr "סיבה לא ידועה"
-#: ../libempathy/empathy-utils.c:304
+#: ../libempathy/empathy-utils.c:305
msgid "Available"
msgstr "זמין"
-#: ../libempathy/empathy-utils.c:306
+#: ../libempathy/empathy-utils.c:307
msgid "Busy"
msgstr "עסוק"
-#: ../libempathy/empathy-utils.c:309
+#: ../libempathy/empathy-utils.c:310
msgid "Away"
msgstr "מרוחק"
-#: ../libempathy/empathy-utils.c:311
+#: ../libempathy/empathy-utils.c:312
msgid "Invisible"
msgstr "בלתי נראה"
-#: ../libempathy/empathy-utils.c:313
+#: ../libempathy/empathy-utils.c:314
msgid "Offline"
msgstr "לא מחובר"
#. translators: presence type is unknown
-#. translators: encoding video codec is unknown
-#. translators: encoding audio codec is unknown
-#. translators: decoding video codec is unknown
-#. translators: decoding audio codec is unknown
-#: ../libempathy/empathy-utils.c:316
-#: ../src/empathy-streamed-media-window.c:1905
-#: ../src/empathy-streamed-media-window.c:1907
-#: ../src/empathy-streamed-media-window.c:1909
-#: ../src/empathy-streamed-media-window.c:1911
-#: ../src/empathy-call-window.ui.h:18
+#: ../libempathy/empathy-utils.c:317
+msgctxt "presence"
msgid "Unknown"
msgstr "לא ידוע"
-#: ../libempathy/empathy-utils.c:355
+#: ../libempathy/empathy-utils.c:356
msgid "No reason specified"
msgstr "לא צויינה סיבה"
-#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413
+#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:414
msgid "Status is set to offline"
msgstr "המצב מוגדר כמנותק"
-#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393
+#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
msgid "Network error"
msgstr "שגיאת רשת"
-#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395
+#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
msgid "Authentication failed"
msgstr "האימות נכשל"
-#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397
+#: ../libempathy/empathy-utils.c:364 ../libempathy/empathy-utils.c:398
msgid "Encryption error"
msgstr "שגיאת הצפנה"
-#: ../libempathy/empathy-utils.c:365
+#: ../libempathy/empathy-utils.c:366
msgid "Name in use"
msgstr "השם בשימוש"
-#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399
+#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
msgid "Certificate not provided"
msgstr "לא סופקה תעודה"
-#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401
+#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
msgstr "התעודה אינה מאובטחת"
-#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403
+#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
msgstr "התעודה לא תקפה"
-#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405
+#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
msgid "Certificate not activated"
msgstr "התעודה אינה פעילה"
-#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407
+#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
msgid "Certificate hostname mismatch"
msgstr "שם המארח בתעודה לא תואם"
-#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409
+#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
msgid "Certificate fingerprint mismatch"
msgstr "טביעת האצבע של התעודה אינה תואמת"
-#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411
+#: ../libempathy/empathy-utils.c:380 ../libempathy/empathy-utils.c:412
msgid "Certificate self-signed"
msgstr "תעודה בחתימה עצמית"
-#: ../libempathy/empathy-utils.c:381
+#: ../libempathy/empathy-utils.c:382
msgid "Certificate error"
msgstr "שגיאת תעודה"
-#: ../libempathy/empathy-utils.c:415
+#: ../libempathy/empathy-utils.c:416
msgid "Encryption is not available"
msgstr "אין הצפנה זמינה"
-#: ../libempathy/empathy-utils.c:417
+#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
msgstr "התעודה שגויה"
-#: ../libempathy/empathy-utils.c:419
+#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
msgstr "החיבור נתקל בסירוב"
-#: ../libempathy/empathy-utils.c:421
+#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
msgstr "לא ניתן לקיים את החיבור"
-#: ../libempathy/empathy-utils.c:423
+#: ../libempathy/empathy-utils.c:424
msgid "Connection has been lost"
msgstr "החיבור נקטע"
-#: ../libempathy/empathy-utils.c:425
+#: ../libempathy/empathy-utils.c:426
msgid "This resource is already connected to the server"
msgstr "המשאב כבר מחובר לשרת"
-#: ../libempathy/empathy-utils.c:427
+#: ../libempathy/empathy-utils.c:428
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
-#: ../libempathy/empathy-utils.c:430
+#: ../libempathy/empathy-utils.c:431
msgid "The account already exists on the server"
msgstr "החשבון כבר קיים בשרת"
-#: ../libempathy/empathy-utils.c:432
+#: ../libempathy/empathy-utils.c:433
msgid "Server is currently too busy to handle the connection"
msgstr "השרת עסוק מכדי לטפל בחיבור"
-#: ../libempathy/empathy-utils.c:434
+#: ../libempathy/empathy-utils.c:435
msgid "Certificate has been revoked"
msgstr "התעודה נשללה"
-#: ../libempathy/empathy-utils.c:436
+#: ../libempathy/empathy-utils.c:437
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"התעודה משתמשת באלגוריתם הצפנה בלתי מאובטח או שהוא חלש מבחינה קריפטוגרפית"
-#: ../libempathy/empathy-utils.c:439
+#: ../libempathy/empathy-utils.c:440
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -639,66 +640,66 @@ msgstr ""
"אורך אישור האבטחה של השרת או עומק מחרוזת אישור האבטחה של השרת חורגים "
"מהמגבלות שהוצבו על ידי ספריית ההצפנה"
-#: ../libempathy/empathy-utils.c:602
+#: ../libempathy/empathy-utils.c:603
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "אנשים בקרבתי"
-#: ../libempathy/empathy-utils.c:607
+#: ../libempathy/empathy-utils.c:608
msgid "Yahoo! Japan"
msgstr "‏Yahoo! יפן"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:637
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:637
+#: ../libempathy/empathy-utils.c:638
msgid "Facebook Chat"
msgstr "צ׳אט Facebook"
-#: ../libempathy/empathy-time.c:137
+#: ../libempathy/empathy-time.c:100
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "לפני שנייה"
msgstr[1] "לפני %d שניות"
-#: ../libempathy/empathy-time.c:142
+#: ../libempathy/empathy-time.c:105
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "לפני דקה"
msgstr[1] "לפני %d דקות"
-#: ../libempathy/empathy-time.c:147
+#: ../libempathy/empathy-time.c:110
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "לפני שעה"
msgstr[1] "לפני %d שעות"
-#: ../libempathy/empathy-time.c:152
+#: ../libempathy/empathy-time.c:115
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "לפני יום"
msgstr[1] "לפני %d ימים"
-#: ../libempathy/empathy-time.c:157
+#: ../libempathy/empathy-time.c:120
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "לפני שבוע"
msgstr[1] "לפני %d שבועות"
-#: ../libempathy/empathy-time.c:162
+#: ../libempathy/empathy-time.c:125
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "לפני חודש"
msgstr[1] "לפני %d חודשים"
-#: ../libempathy/empathy-time.c:167
+#: ../libempathy/empathy-time.c:130
msgid "in the future"
msgstr "בעתיד"
@@ -706,85 +707,67 @@ msgstr "בעתיד"
msgid "All"
msgstr "הכול"
-#: ../libempathy-gtk/empathy-account-widget.c:682
+#: ../libempathy-gtk/empathy-account-widget.c:678
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "חשבון"
-#: ../libempathy-gtk/empathy-account-widget.c:683
+#: ../libempathy-gtk/empathy-account-widget.c:679
msgid "Password"
msgstr "ססמה"
-#: ../libempathy-gtk/empathy-account-widget.c:684
+#: ../libempathy-gtk/empathy-account-widget.c:680
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "שרת"
-#: ../libempathy-gtk/empathy-account-widget.c:685
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "פתחה"
-#: ../libempathy-gtk/empathy-account-widget.c:757
-#: ../libempathy-gtk/empathy-account-widget.c:814
+#: ../libempathy-gtk/empathy-account-widget.c:753
+#: ../libempathy-gtk/empathy-account-widget.c:810
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1166
+#: ../libempathy-gtk/empathy-account-widget.c:1151
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "החשבון %s נערך דרך החשבונות המקוונים שלי."
-#: ../libempathy-gtk/empathy-account-widget.c:1172
+#: ../libempathy-gtk/empathy-account-widget.c:1157
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "לא ניתן לערוך את החשבון %s ב־Empathy."
-#: ../libempathy-gtk/empathy-account-widget.c:1192
+#: ../libempathy-gtk/empathy-account-widget.c:1177
msgid "Launch My Web Accounts"
msgstr "טעינת החשבונות המקוונים שלי"
-#: ../libempathy-gtk/empathy-account-widget.c:1530
+#: ../libempathy-gtk/empathy-account-widget.c:1515
msgid "Username:"
msgstr "ש_ם משתמש:"
-#: ../libempathy-gtk/empathy-account-widget.c:1897
+#: ../libempathy-gtk/empathy-account-widget.c:1833
msgid "A_pply"
msgstr "ה_חלה"
-#: ../libempathy-gtk/empathy-account-widget.c:1927
+#: ../libempathy-gtk/empathy-account-widget.c:1863
msgid "L_og in"
msgstr "_כניסה"
-#. Account and Identifier
-#: ../libempathy-gtk/empathy-account-widget.c:1993
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1481
-#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
-#: ../src/empathy-chatrooms-window.ui.h:1
-#: ../src/empathy-new-chatroom-dialog.ui.h:1
-msgid "Account:"
-msgstr "חשבון:"
-
-#. translators: this is the label of a checkbox used to enable/disable IM
-#. * accounts
-#: ../libempathy-gtk/empathy-account-widget.c:2006
-msgid "_Enabled"
-msgstr "מו_פעל"
-
-#: ../libempathy-gtk/empathy-account-widget.c:2071
+#: ../libempathy-gtk/empathy-account-widget.c:1937
msgid "This account already exists on the server"
msgstr "חשבון זה כבר קיים על השרת"
-#: ../libempathy-gtk/empathy-account-widget.c:2074
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "Create a new account on the server"
msgstr "יצירת חשבון חדש על השרת"
-#: ../libempathy-gtk/empathy-account-widget.c:2266
+#: ../libempathy-gtk/empathy-account-widget.c:2132
msgid "Ca_ncel"
msgstr "_ביטול"
@@ -793,19 +776,19 @@ msgstr "_ביטול"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2563
+#: ../libempathy-gtk/empathy-account-widget.c:2410
#, c-format
msgid "%1$s on %2$s"
msgstr "‏%1$s על גבי %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2589
+#: ../libempathy-gtk/empathy-account-widget.c:2436
#, c-format
msgid "%s Account"
msgstr "חשבון %s"
-#: ../libempathy-gtk/empathy-account-widget.c:2593
+#: ../libempathy-gtk/empathy-account-widget.c:2440
msgid "New account"
msgstr "חשבון חדש"
@@ -1233,57 +1216,57 @@ msgstr "כל הקבצים"
msgid "Click to enlarge"
msgstr "יש ללחוץ כדי להגדיל"
-#: ../libempathy-gtk/empathy-chat.c:652
+#: ../libempathy-gtk/empathy-chat.c:668
msgid "Failed to open private chat"
msgstr "ארע כשל בפתיחת שיחה פרטית"
-#: ../libempathy-gtk/empathy-chat.c:717
+#: ../libempathy-gtk/empathy-chat.c:733
msgid "Topic not supported on this conversation"
msgstr "אין תמיכה בשימוש בנושא בדיון זה"
-#: ../libempathy-gtk/empathy-chat.c:723
+#: ../libempathy-gtk/empathy-chat.c:739
msgid "You are not allowed to change the topic"
msgstr "אין לך הרשאה לשנות את הנושא"
-#: ../libempathy-gtk/empathy-chat.c:930
+#: ../libempathy-gtk/empathy-chat.c:948
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: פינוי כל ההודעות מהדיון הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:933
+#: ../libempathy-gtk/empathy-chat.c:951
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <נושא>:‎ הגדרת נושא השיחה הנוכחית"
-#: ../libempathy-gtk/empathy-chat.c:936
+#: ../libempathy-gtk/empathy-chat.c:954
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
-#: ../libempathy-gtk/empathy-chat.c:939
+#: ../libempathy-gtk/empathy-chat.c:957
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
-#: ../libempathy-gtk/empathy-chat.c:944
+#: ../libempathy-gtk/empathy-chat.c:962
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
msgstr "/part [<זיהוי החדר>]‎ [<סיבה>]:‎ עזיבת ערוץ השיחה, הנוכחי הוא בררת המחדל"
-#: ../libempathy-gtk/empathy-chat.c:949
+#: ../libempathy-gtk/empathy-chat.c:967
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <זיהוי איש הקשר> ‎[<הודעה>]:‎ פתיחת צ'אט אישי"
-#: ../libempathy-gtk/empathy-chat.c:952
+#: ../libempathy-gtk/empathy-chat.c:970
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <זיהוי איש הקשר>‎ <הודעה>:‎ פתיחת צ'אט פרטי"
-#: ../libempathy-gtk/empathy-chat.c:955
+#: ../libempathy-gtk/empathy-chat.c:973
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <כינוי>:‎ שינוי הכינוי שלך בשרת הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:958
+#: ../libempathy-gtk/empathy-chat.c:976
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <הודעה>:‎ שליחת הודעת ACTION לדיון הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:961
+#: ../libempathy-gtk/empathy-chat.c:979
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1292,7 +1275,7 @@ msgstr ""
"/say <הודעה>:‎ שליחת <הודעה> לדיון הנוכחי. פקודה זו משמשת לשליחת הודעות "
"המתחילות ב־'/'. לדוגמה: \"/say /join משמשת לצורך התחברות לחדר שיחה חדש\""
-#: ../libempathy-gtk/empathy-chat.c:966
+#: ../libempathy-gtk/empathy-chat.c:984
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1300,98 +1283,113 @@ msgstr ""
"/help [<פקודה>]:‎ הצגת כל הפקודות הנתמכות. אם יש הגדרה ל־<פקודה> יוצג אופן "
"הפעלתה."
-#: ../libempathy-gtk/empathy-chat.c:976
+#: ../libempathy-gtk/empathy-chat.c:994
#, c-format
msgid "Usage: %s"
msgstr "שימוש: %s"
-#: ../libempathy-gtk/empathy-chat.c:1015
+#: ../libempathy-gtk/empathy-chat.c:1033
msgid "Unknown command"
msgstr "פקודה לא ידועה"
-#: ../libempathy-gtk/empathy-chat.c:1141
+#: ../libempathy-gtk/empathy-chat.c:1159
msgid "Unknown command; see /help for the available commands"
msgstr "פקודה בלתי מוכרת; יש לעיין ב־‎/help לצפייה בפקודות הזמינות"
-#: ../libempathy-gtk/empathy-chat.c:1278
+#. translators: error used when user doesn't have enough credit on his
+#. * account to send the message.
+#: ../libempathy-gtk/empathy-chat.c:1299
+msgid "insufficient balance to send message"
+msgstr "המאזן אינו מאפשר לשלוח הודעה"
+
+#: ../libempathy-gtk/empathy-chat.c:1301
+msgid "not capable"
+msgstr "ללא יכולת"
+
+#: ../libempathy-gtk/empathy-chat.c:1308
msgid "offline"
msgstr "לא מחובר"
-#: ../libempathy-gtk/empathy-chat.c:1281
+#: ../libempathy-gtk/empathy-chat.c:1311
msgid "invalid contact"
msgstr "איש קשר לא תקין"
-#: ../libempathy-gtk/empathy-chat.c:1284
+#: ../libempathy-gtk/empathy-chat.c:1314
msgid "permission denied"
msgstr "איש קשר לא תקין"
-#: ../libempathy-gtk/empathy-chat.c:1287
+#: ../libempathy-gtk/empathy-chat.c:1317
msgid "too long message"
msgstr "הודעה ארוכה מדי"
-#: ../libempathy-gtk/empathy-chat.c:1290
+#: ../libempathy-gtk/empathy-chat.c:1320
msgid "not implemented"
msgstr "לא ממומש"
-#: ../libempathy-gtk/empathy-chat.c:1294
+#: ../libempathy-gtk/empathy-chat.c:1324
msgid "unknown"
msgstr "לא ידוע"
-#: ../libempathy-gtk/empathy-chat.c:1298
+#: ../libempathy-gtk/empathy-chat.c:1330
#, c-format
msgid "Error sending message '%s': %s"
msgstr "שגיאה בשליחת ההודעה '%s': ‏%s"
-#: ../libempathy-gtk/empathy-chat.c:1359 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1334
+#, c-format
+msgid "Error sending message: %s"
+msgstr "שגיאה בשליחת ההודעה: ‏%s"
+
+#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "נושא:"
-#: ../libempathy-gtk/empathy-chat.c:1371
+#: ../libempathy-gtk/empathy-chat.c:1407
#, c-format
msgid "Topic set to: %s"
msgstr "הנושא הוגדר ל־: %s"
-#: ../libempathy-gtk/empathy-chat.c:1373
+#: ../libempathy-gtk/empathy-chat.c:1409
msgid "No topic defined"
msgstr "לא נקבע נושא"
-#: ../libempathy-gtk/empathy-chat.c:1872
+#: ../libempathy-gtk/empathy-chat.c:1916
msgid "(No Suggestions)"
msgstr "(אין הצעות)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1940
+#: ../libempathy-gtk/empathy-chat.c:1984
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "הוספת '%s' למילון"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1977
+#: ../libempathy-gtk/empathy-chat.c:2021
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "הוספת '%s' למילון %s"
-#: ../libempathy-gtk/empathy-chat.c:2034
+#: ../libempathy-gtk/empathy-chat.c:2078
msgid "Insert Smiley"
msgstr "הכנס סמיילי"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2052
+#: ../libempathy-gtk/empathy-chat.c:2096
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "_שלח"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2087
+#: ../libempathy-gtk/empathy-chat.c:2131
msgid "_Spelling Suggestions"
msgstr "הצעות _איות"
-#: ../libempathy-gtk/empathy-chat.c:2176
+#: ../libempathy-gtk/empathy-chat.c:2220
msgid "Failed to retrieve recent logs"
msgstr "ארע כשל בקבלת הדוחות האחרונים"
-#: ../libempathy-gtk/empathy-chat.c:2287
+#: ../libempathy-gtk/empathy-chat.c:2331
#, c-format
msgid "%s has disconnected"
msgstr "‏%s התנתק"
@@ -1399,12 +1397,12 @@ msgstr "‏%s התנתק"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2294
+#: ../libempathy-gtk/empathy-chat.c:2338
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "‏%1$s סולק על ידי %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2297
+#: ../libempathy-gtk/empathy-chat.c:2341
#, c-format
msgid "%s was kicked"
msgstr "‏%s סולק"
@@ -1412,17 +1410,17 @@ msgstr "‏%s סולק"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2305
+#: ../libempathy-gtk/empathy-chat.c:2349
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "‏%1$s נחסם על ידי %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2308
+#: ../libempathy-gtk/empathy-chat.c:2352
#, c-format
msgid "%s was banned"
msgstr "‏%s נחסם"
-#: ../libempathy-gtk/empathy-chat.c:2312
+#: ../libempathy-gtk/empathy-chat.c:2356
#, c-format
msgid "%s has left the room"
msgstr "‏%s עזב את החדר"
@@ -1432,105 +1430,123 @@ msgstr "‏%s עזב את החדר"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2321
+#: ../libempathy-gtk/empathy-chat.c:2365
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2346
+#: ../libempathy-gtk/empathy-chat.c:2390
#, c-format
msgid "%s has joined the room"
msgstr "‏%s הצטרף לחדר"
-#: ../libempathy-gtk/empathy-chat.c:2371
+#: ../libempathy-gtk/empathy-chat.c:2415
#, c-format
msgid "%s is now known as %s"
msgstr "‏%s נודע כעת בכינוי %s"
-#: ../libempathy-gtk/empathy-chat.c:2510
-#: ../src/empathy-streamed-media-window.c:1953
-#: ../src/empathy-event-manager.c:1126
+#: ../libempathy-gtk/empathy-chat.c:2554
+#: ../src/empathy-streamed-media-window.c:1957
+#: ../src/empathy-event-manager.c:1117
msgid "Disconnected"
msgstr "מנותק"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3140
+#: ../libempathy-gtk/empathy-chat.c:3202
msgid "Would you like to store this password?"
msgstr "האם ברצונך לאחסן ססמה זו?"
-#: ../libempathy-gtk/empathy-chat.c:3146
+#: ../libempathy-gtk/empathy-chat.c:3208
msgid "Remember"
msgstr "שמירה"
-#: ../libempathy-gtk/empathy-chat.c:3156
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Not now"
msgstr "לא כעת"
-#: ../libempathy-gtk/empathy-chat.c:3200
+#: ../libempathy-gtk/empathy-chat.c:3262
msgid "Retry"
msgstr "ניסיון חוזר"
-#: ../libempathy-gtk/empathy-chat.c:3204
+#: ../libempathy-gtk/empathy-chat.c:3266
msgid "Wrong password; please try again:"
msgstr "ססמה שגויה; נא לנסות שוב:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3321
+#: ../libempathy-gtk/empathy-chat.c:3383
msgid "This room is protected by a password:"
msgstr "חדר זה מוגן בססמה:"
-#: ../libempathy-gtk/empathy-chat.c:3348
+#: ../libempathy-gtk/empathy-chat.c:3410
msgid "Join"
msgstr "הצטרפות"
-#: ../libempathy-gtk/empathy-chat.c:3518 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1138
msgid "Connected"
msgstr "מחובר"
-#: ../libempathy-gtk/empathy-chat.c:3571
+#: ../libempathy-gtk/empathy-chat.c:3657
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "שיחה"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422
+#. Translators: this string is a something like
+#. * "Escher Cat (SMS)"
+#: ../libempathy-gtk/empathy-chat.c:3662
+#, c-format
+msgid "%s (SMS)"
+msgstr "%s (SMS)"
+
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:423
msgid "Unknown or invalid identifier"
msgstr "המזהה אינו ידוע או שגוי"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:425
msgid "Contact blocking temporarily unavailable"
msgstr "חסימת אנשי קשר אינה זמינה כרגע"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:427
msgid "Contact blocking unavailable"
msgstr "חסימת אנשי קשר אינה זמינה"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:429
msgid "Permission Denied"
msgstr "ההרשאה נדחתה"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:433
msgid "Could not block contact"
msgstr "לא ניתן לחסום את איש הקשר"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:702
msgid "Edit Blocked Contacts"
msgstr "עריכת אנשי הקשר החסומים"
+#. Account and Identifier
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
+#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
+#: ../src/empathy-chatrooms-window.ui.h:1
+#: ../src/empathy-new-chatroom-dialog.ui.h:1
+msgid "Account:"
+msgstr "חשבון:"
+
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:794
+#: ../libempathy-gtk/empathy-theme-adium.c:1002
msgid "_Copy Link Address"
msgstr "העתקת _מיקום הקישור"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:801
+#: ../libempathy-gtk/empathy-theme-adium.c:1009
msgid "_Open Link"
msgstr "_פתיחת קישור"
#. Translators: timestamp displayed between conversations in
#. * chat windows (strftime format string)
-#: ../libempathy-gtk/empathy-chat-text-view.c:420
+#: ../libempathy-gtk/empathy-chat-text-view.c:415
msgid "%A %B %d %Y"
msgstr "%A %d ב%B %Y"
@@ -1593,38 +1609,38 @@ msgid "Favorite People"
msgstr "אנשים מועדפים"
#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2343
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "האם להסיר את הקבוצה '%s'?"
#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2346
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "הקבוצה מוסרת"
#. Remove
#: ../libempathy-gtk/empathy-contact-list-view.c:2038
#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2401
-#: ../libempathy-gtk/empathy-individual-view.c:2595
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "ה_סרה"
#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2465
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "להסיר את איש הקשר '%s'?"
#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2486
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "איש קשר מוסר"
#: ../libempathy-gtk/empathy-contact-menu.c:219
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
msgid "_Add Contact…"
msgstr "הוספת _איש קשר…"
@@ -1633,81 +1649,81 @@ msgid "_Block Contact"
msgstr "ח_סימת איש קשר"
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:517
-#: ../src/empathy-main-window.ui.h:15
+#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_שיחה"
-#: ../libempathy-gtk/empathy-contact-menu.c:359
-#: ../libempathy-gtk/empathy-individual-menu.c:560
+#: ../libempathy-gtk/empathy-contact-menu.c:358
+#: ../libempathy-gtk/empathy-individual-menu.c:625
msgctxt "menu item"
msgid "_Audio Call"
msgstr "שיחה _קולית"
-#: ../libempathy-gtk/empathy-contact-menu.c:390
-#: ../libempathy-gtk/empathy-individual-menu.c:602
+#: ../libempathy-gtk/empathy-contact-menu.c:389
+#: ../libempathy-gtk/empathy-individual-menu.c:667
msgctxt "menu item"
msgid "_Video Call"
msgstr "שיחת _וידאו"
-#: ../libempathy-gtk/empathy-contact-menu.c:436
-#: ../libempathy-gtk/empathy-individual-menu.c:645
-#: ../src/empathy-main-window.ui.h:26
+#: ../libempathy-gtk/empathy-contact-menu.c:435
+#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "שיחות _קודמות"
-#: ../libempathy-gtk/empathy-contact-menu.c:458
-#: ../libempathy-gtk/empathy-individual-menu.c:686
+#: ../libempathy-gtk/empathy-contact-menu.c:457
+#: ../libempathy-gtk/empathy-individual-menu.c:751
msgid "Send File"
msgstr "שליחת קובץ"
-#: ../libempathy-gtk/empathy-contact-menu.c:481
-#: ../libempathy-gtk/empathy-individual-menu.c:728
+#: ../libempathy-gtk/empathy-contact-menu.c:480
+#: ../libempathy-gtk/empathy-individual-menu.c:793
msgid "Share My Desktop"
msgstr "שיתוף שולחן העבודה שלי"
-#: ../libempathy-gtk/empathy-contact-menu.c:521
-#: ../libempathy-gtk/empathy-contact-widget.c:1763
-#: ../libempathy-gtk/empathy-individual-menu.c:763
-#: ../libempathy-gtk/empathy-individual-widget.c:1372
+#: ../libempathy-gtk/empathy-contact-menu.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:1751
+#: ../libempathy-gtk/empathy-individual-menu.c:828
+#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "מועדף"
-#: ../libempathy-gtk/empathy-contact-menu.c:550
-#: ../libempathy-gtk/empathy-individual-menu.c:791
+#: ../libempathy-gtk/empathy-contact-menu.c:549
+#: ../libempathy-gtk/empathy-individual-menu.c:856
msgid "Infor_mation"
msgstr "_מידע"
-#: ../libempathy-gtk/empathy-contact-menu.c:596
+#: ../libempathy-gtk/empathy-contact-menu.c:595
msgctxt "Edit contact (contextual menu)"
msgid "_Edit"
msgstr "ע_ריכה"
-#: ../libempathy-gtk/empathy-contact-menu.c:650
-#: ../libempathy-gtk/empathy-individual-menu.c:972
-#: ../src/empathy-chat-window.c:935
+#: ../libempathy-gtk/empathy-contact-menu.c:649
+#: ../libempathy-gtk/empathy-individual-menu.c:1037
+#: ../src/empathy-chat-window.c:986
msgid "Inviting you to this room"
msgstr "מזמין/ה אותך לחדר זה"
-#: ../libempathy-gtk/empathy-contact-menu.c:681
-#: ../libempathy-gtk/empathy-individual-menu.c:1019
+#: ../libempathy-gtk/empathy-contact-menu.c:680
+#: ../libempathy-gtk/empathy-individual-menu.c:1084
msgid "_Invite to Chat Room"
msgstr "ה_זמנה לחדר שיחה"
#. Title
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:513
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:514
msgid "Search contacts"
msgstr "חיפוש בין אנשי הקשר"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:543
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:544
msgid "Search: "
msgstr "חיפוש:"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:601
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:602
msgid "_Add Contact"
msgstr "הוספת _איש קשר"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:619
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:620
msgid "No contacts found"
msgstr "לא נמצאו אנשי קשר"
@@ -1860,33 +1876,33 @@ msgstr "קו רוחב:"
msgid "Altitude:"
msgstr "גובה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-contact-widget.c:861
+#: ../libempathy-gtk/empathy-contact-widget.c:876
#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "מיקום"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:890
-#: ../libempathy-gtk/empathy-individual-widget.c:635
+#: ../libempathy-gtk/empathy-contact-widget.c:878
+#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:942
-#: ../libempathy-gtk/empathy-individual-widget.c:684
+#: ../libempathy-gtk/empathy-contact-widget.c:930
+#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "‏%B %e, %Y ב־‏%R ‏UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1024
-#: ../libempathy-gtk/empathy-individual-widget.c:919
+#: ../libempathy-gtk/empathy-contact-widget.c:1012
+#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "שמירת תמונה אישית"
-#: ../libempathy-gtk/empathy-contact-widget.c:1080
-#: ../libempathy-gtk/empathy-individual-widget.c:977
+#: ../libempathy-gtk/empathy-contact-widget.c:1068
+#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "לא ניתן לשמור תמונה אישית"
@@ -1896,7 +1912,7 @@ msgstr "<b>מיקום</b> ב(תאריך)\t"
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1307
+#: ../libempathy-gtk/empathy-individual-widget.c:1305
msgid "Alias:"
msgstr "כינוי:"
@@ -1916,7 +1932,7 @@ msgstr "פרטי איש קשר"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1511
+#: ../libempathy-gtk/empathy-individual-widget.c:1509
msgid "Identifier:"
msgstr "מזהה:"
@@ -1955,7 +1971,7 @@ msgid "Select"
msgstr "בחירה"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1770
msgid "Group"
msgstr "קבוצה"
@@ -1996,23 +2012,29 @@ msgstr "אנשי הקשר שנבחרו ברשימה שמימין יקושרו ז
msgid "%s (%s)"
msgstr "%s (%s)"
-#: ../libempathy-gtk/empathy-individual-menu.c:839
+#. add an SMS button
+#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-new-message-dialog.c:248
+msgid "_SMS"
+msgstr "_SMS"
+
+#: ../libempathy-gtk/empathy-individual-menu.c:904
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "ע_ריכה"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:865
+#: ../libempathy-gtk/empathy-individual-menu.c:930
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_קישור אנשי קשר…"
-#: ../libempathy-gtk/empathy-individual-view.c:2308
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "מחיקה ו_חסימה"
-#: ../libempathy-gtk/empathy-individual-view.c:2474
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2021,7 +2043,7 @@ msgstr ""
"האם אכן ברצונך להסיר את איש הקשר המקושר '%s'? נא לשים לב שפעולה זו תסיר את "
"כל אנשי הקשר המתאגדים לאיש קשר מקושר זה."
-#: ../libempathy-gtk/empathy-individual-widget.c:1652
+#: ../libempathy-gtk/empathy-individual-widget.c:1650
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2142,27 +2164,27 @@ msgid "Contact ID:"
msgstr "מזהה איש הקשר:"
#. add chat button
-#: ../libempathy-gtk/empathy-new-message-dialog.c:171
+#: ../libempathy-gtk/empathy-new-message-dialog.c:258
msgid "C_hat"
msgstr "שי_חה"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-message-dialog.c:181
+#: ../libempathy-gtk/empathy-new-message-dialog.c:277
msgid "New Conversation"
msgstr "שיחה חדשה"
#. add video toggle
-#: ../libempathy-gtk/empathy-new-call-dialog.c:253
+#: ../libempathy-gtk/empathy-new-call-dialog.c:254
msgid "Send _Video"
msgstr "שליחת _וידאו"
#. add chat button
-#: ../libempathy-gtk/empathy-new-call-dialog.c:261
+#: ../libempathy-gtk/empathy-new-call-dialog.c:262
msgid "C_all"
msgstr "ה_תקשרות"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-call-dialog.c:271
+#: ../libempathy-gtk/empathy-new-call-dialog.c:272
msgid "New Call"
msgstr "שיחה חדשה"
@@ -2289,19 +2311,23 @@ msgstr "שמירת הודעת המ_צב החדשה"
msgid "Saved Status Messages"
msgstr "הודעות המצב שנשמרו"
-#: ../libempathy-gtk/empathy-theme-manager.c:67
+#: ../libempathy-gtk/empathy-theme-adium.c:1468
+msgid "Normal"
+msgstr "רגיל"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "קלאסי"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:69
msgid "Simple"
msgstr "פשוט"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:70
msgid "Clean"
msgstr "נקי"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:71
msgid "Blue"
msgstr "כחול"
@@ -2754,8 +2780,8 @@ msgid "Select the accounts you want to import:"
msgstr "נא לבחור את החשבון שברצונך לייבא:"
#: ../src/empathy-account-assistant.c:813
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "Yes"
msgstr "כן"
@@ -2827,34 +2853,34 @@ msgstr "ישנם שינויים שלא נשמרו בחשבון ה־%s שלך."
msgid "Your new account has not been saved yet."
msgstr "החשבון החדש שלך לא נשמר עדיין."
-#: ../src/empathy-accounts-dialog.c:286
+#: ../src/empathy-accounts-dialog.c:345
#: ../src/empathy-streamed-media-window.c:809
msgid "Connecting…"
msgstr "בהתחברות…"
-#: ../src/empathy-accounts-dialog.c:327
+#: ../src/empathy-accounts-dialog.c:386
#, c-format
msgid "Offline — %s"
msgstr "לא מחובר — %s"
-#: ../src/empathy-accounts-dialog.c:339
+#: ../src/empathy-accounts-dialog.c:398
#, c-format
msgid "Disconnected — %s"
msgstr "מנותק — %s"
-#: ../src/empathy-accounts-dialog.c:350
+#: ../src/empathy-accounts-dialog.c:409
msgid "Offline — No Network Connection"
msgstr "מנותק — אין חיבור לרשת"
-#: ../src/empathy-accounts-dialog.c:357
+#: ../src/empathy-accounts-dialog.c:416
msgid "Unknown Status"
msgstr "מצב לא ידוע"
-#: ../src/empathy-accounts-dialog.c:369
+#: ../src/empathy-accounts-dialog.c:428
msgid "Offline — Account Disabled"
msgstr "מנותק — החשבון מנוטרל"
-#: ../src/empathy-accounts-dialog.c:772
+#: ../src/empathy-accounts-dialog.c:831
msgid ""
"You are about to create a new account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2862,16 +2888,16 @@ msgstr ""
"עומד להיווצר חשבון חדש, מה שיבטל\n"
"את השינויים שלך. האם ברצונך להמשיך?"
-#: ../src/empathy-accounts-dialog.c:1133
+#: ../src/empathy-accounts-dialog.c:1192
#, c-format
msgid "Do you want to remove %s from your computer?"
msgstr "האם ברצונך להסיר את החשבון '%s' ממחשבך?"
-#: ../src/empathy-accounts-dialog.c:1137
+#: ../src/empathy-accounts-dialog.c:1196
msgid "This will not remove your account on the server."
msgstr "פעולה זו לא תסיר את חשבונך מהשרת."
-#: ../src/empathy-accounts-dialog.c:1375
+#: ../src/empathy-accounts-dialog.c:1432
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2880,15 +2906,15 @@ msgstr ""
"את השינויים שלך. האת אתה בטוח שברצונך להמשיך?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1593
+#: ../src/empathy-accounts-dialog.c:1643
msgid "_Enable"
msgstr "ה_פעלה"
-#: ../src/empathy-accounts-dialog.c:1594
+#: ../src/empathy-accounts-dialog.c:1644
msgid "_Disable"
msgstr "נ_טרול"
-#: ../src/empathy-accounts-dialog.c:2113
+#: ../src/empathy-accounts-dialog.c:2154
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2923,11 +2949,11 @@ msgstr "הו_ספה…"
msgid "_Import…"
msgstr "י_בוא…"
-#: ../src/empathy-auth-client.c:250
+#: ../src/empathy-auth-client.c:249
msgid " - Empathy authentication client"
msgstr "- לקוח האימות של Empathy"
-#: ../src/empathy-auth-client.c:266
+#: ../src/empathy-auth-client.c:265
msgid "Empathy authentication client"
msgstr "לקוח האימות של Empathy"
@@ -3012,31 +3038,51 @@ msgstr "כתובת ה־IP של שרת הממסר"
msgid "The IP address of the multicast group"
msgstr "כתובת ה־IP של קבוצת התשדורת"
+#: ../src/empathy-streamed-media-window.c:1906
+msgctxt "encoding video codec"
+msgid "Unknown"
+msgstr "לא ידוע"
+
+#: ../src/empathy-streamed-media-window.c:1909
+msgctxt "encoding audio codec"
+msgid "Unknown"
+msgstr "לא ידוע"
+
+#: ../src/empathy-streamed-media-window.c:1912
+msgctxt "decoding video codec"
+msgid "Unknown"
+msgstr "לא ידוע"
+
+#: ../src/empathy-streamed-media-window.c:1915
+msgctxt "decoding audio codec"
+msgid "Unknown"
+msgstr "לא ידוע"
+
#. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-streamed-media-window.c:2270
+#: ../src/empathy-streamed-media-window.c:2274
#, c-format
msgid "Connected — %d:%02dm"
msgstr "מחובר — %d:%02d דק׳"
-#: ../src/empathy-streamed-media-window.c:2331
+#: ../src/empathy-streamed-media-window.c:2335
msgid "Technical Details"
msgstr "פרטים טכניים"
-#: ../src/empathy-streamed-media-window.c:2369
+#: ../src/empathy-streamed-media-window.c:2373
#, c-format
msgid ""
"%s's software does not understand any of the audio formats supported by your "
"computer"
msgstr "התכנה של %s אינה מבינה את מבני השמע הנתמכים על ידי המחשב שלך"
-#: ../src/empathy-streamed-media-window.c:2374
+#: ../src/empathy-streamed-media-window.c:2378
#, c-format
msgid ""
"%s's software does not understand any of the video formats supported by your "
"computer"
msgstr "התכנה של %s אינה מבינה את מבני הווידאו הנתמכים על ידי המחשב שלך"
-#: ../src/empathy-streamed-media-window.c:2380
+#: ../src/empathy-streamed-media-window.c:2384
#, c-format
msgid ""
"Can't establish a connection to %s. One of you might be on a network that "
@@ -3045,21 +3091,21 @@ msgstr ""
"לא ניתן להפעיל את החיבור אל %s. כנראה אחד ממשתתפי השיחה מחובר לרשת שאינה "
"מאפשרת חיבורים ישירים."
-#: ../src/empathy-streamed-media-window.c:2386
+#: ../src/empathy-streamed-media-window.c:2390
msgid "There was a failure on the network"
msgstr "אירעה שגיאה ברשת"
-#: ../src/empathy-streamed-media-window.c:2390
+#: ../src/empathy-streamed-media-window.c:2394
msgid ""
"The audio formats necessary for this call are not installed on your computer"
msgstr "מבני השמע הדרושים לקיום שיחה זו אינם מותקנים במחשבך"
-#: ../src/empathy-streamed-media-window.c:2393
+#: ../src/empathy-streamed-media-window.c:2397
msgid ""
"The video formats necessary for this call are not installed on your computer"
msgstr "מבני הווידאו הדרושים לקיום שיחה זו אינם מותקנים במחשבך"
-#: ../src/empathy-streamed-media-window.c:2403
+#: ../src/empathy-streamed-media-window.c:2407
#, c-format
msgid ""
"Something unexpected happened in a Telepathy component. Please <a href=\"%s"
@@ -3069,19 +3115,19 @@ msgstr ""
"משהו בלתי צפוי ארע ברכיב של Telepathy. נא <a href=\"%s\">לדווח על באג זה</a> "
"ולהוסיף דוחות שנאספו מחלון 'ניפוי השגיאות' שבתפריט העזרה."
-#: ../src/empathy-streamed-media-window.c:2411
+#: ../src/empathy-streamed-media-window.c:2415
msgid "There was a failure in the call engine"
msgstr "אירעה שגיאה במנוע הקריאה"
-#: ../src/empathy-streamed-media-window.c:2414
+#: ../src/empathy-streamed-media-window.c:2418
msgid "The end of the stream was reached"
msgstr "התזרים הגיע לסיומו"
-#: ../src/empathy-streamed-media-window.c:2454
+#: ../src/empathy-streamed-media-window.c:2458
msgid "Can't establish audio stream"
msgstr "לא ניתן לקיים תזרים שמע"
-#: ../src/empathy-streamed-media-window.c:2464
+#: ../src/empathy-streamed-media-window.c:2468
msgid "Can't establish video stream"
msgstr "לא ניתן לקיים תזרים וידאו"
@@ -3153,6 +3199,10 @@ msgstr "שלח צליל"
msgid "Toggle audio transmission"
msgstr "החלפה בין העברה ואי העברה של שמע"
+#: ../src/empathy-call-window.ui.h:18
+msgid "Unknown"
+msgstr "לא ידוע"
+
#: ../src/empathy-call-window.ui.h:19
msgid "V_ideo"
msgstr "_וידאו"
@@ -3177,39 +3227,50 @@ msgstr "תצוגה מקדימה לווידאו"
msgid "_Call"
msgstr "_שיחה"
-#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29
+#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:30
msgid "_View"
msgstr "_תצוגה"
-#: ../src/empathy-chat-window.c:474 ../src/empathy-chat-window.c:494
+#: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500
#, c-format
msgid "%s (%d unread)"
msgid_plural "%s (%d unread)"
msgstr[0] "‏%s (אחת שלא נקראה)"
msgstr[1] "‏%s ‏(%d שלא נקראו)"
-#: ../src/empathy-chat-window.c:486
+#: ../src/empathy-chat-window.c:492
#, c-format
msgid "%s (and %u other)"
msgid_plural "%s (and %u others)"
msgstr[0] "‏%s (ואחד נוסף)"
msgstr[1] "‏%s (ו־%u נוספים)"
-#: ../src/empathy-chat-window.c:502
+#: ../src/empathy-chat-window.c:508
#, c-format
msgid "%s (%d unread from others)"
msgid_plural "%s (%d unread from others)"
msgstr[0] "‏%s (אחת שלא נקראה מאחרים)"
msgstr[1] "‏%s (%d שלא נקראו מאחרים)"
-#: ../src/empathy-chat-window.c:511
+#: ../src/empathy-chat-window.c:517
#, c-format
msgid "%s (%d unread from all)"
msgid_plural "%s (%d unread from all)"
msgstr[0] "‏%s (אחת שלא נקראה מכולם)"
msgstr[1] "‏%s (%d שלא נקראו מכולם)"
-#: ../src/empathy-chat-window.c:721
+#: ../src/empathy-chat-window.c:732
+msgid "SMS:"
+msgstr "SMS:"
+
+#: ../src/empathy-chat-window.c:742
+#, c-format
+msgid "Sending %d message"
+msgid_plural "Sending %d messages"
+msgstr[0] "נשלחת הודעה אחת"
+msgstr[1] "נשלחות %d הודעות"
+
+#: ../src/empathy-chat-window.c:764
msgid "Typing a message."
msgstr "הודעה מוקלדת."
@@ -3245,7 +3306,7 @@ msgstr "הזזת הלשונית _ימינה"
msgid "Notify for All Messages"
msgstr "התרעה עבור כל ההודעות"
-#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:18
msgid "_Contents"
msgstr "_תכנים"
@@ -3257,7 +3318,7 @@ msgstr "_שיחה"
msgid "_Detach Tab"
msgstr "_ניתוק הלשונית"
-#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19
+#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20
msgid "_Edit"
msgstr "ע_ריכה"
@@ -3265,7 +3326,7 @@ msgstr "ע_ריכה"
msgid "_Favorite Chat Room"
msgstr "_הוספת חדר השיחה למועדפים"
-#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:21
+#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22
msgid "_Help"
msgstr "ע_זרה"
@@ -3305,90 +3366,90 @@ msgstr "חיבור אוטומטי"
msgid "Manage Favorite Rooms"
msgstr "ניהול חדרי שיחה מועדפים"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:505
msgid "Incoming video call"
msgstr "שיחה קולית נכנסת"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:505
msgid "Incoming call"
msgstr "שיחה נכנסת"
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:509
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "‏%s מתקשר אליך עם וידאו, האם ברצונך לענות?"
-#: ../src/empathy-event-manager.c:512
+#: ../src/empathy-event-manager.c:510
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "‏%s מתקשר אליך, האם ברצונך לענות?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:513 ../src/empathy-event-manager.c:662
#, c-format
msgid "Incoming call from %s"
msgstr "שיחה נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:540
+#: ../src/empathy-event-manager.c:538
msgid "_Reject"
msgstr "_דחייה"
-#: ../src/empathy-event-manager.c:546
+#: ../src/empathy-event-manager.c:544
msgid "_Answer"
msgstr "_מענה"
-#: ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:662
#, c-format
msgid "Incoming video call from %s"
msgstr "שיחת וידאו נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:735
msgid "Room invitation"
msgstr "הזמנה לחדר"
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:737
#, c-format
msgid "Invitation to join %s"
msgstr "הזמנה להצטרף ל־%s"
-#: ../src/empathy-event-manager.c:753
+#: ../src/empathy-event-manager.c:744
#, c-format
msgid "%s is inviting you to join %s"
msgstr "‏%s מזמין/ה אותך להצטרף אל %s"
-#: ../src/empathy-event-manager.c:761
+#: ../src/empathy-event-manager.c:752
msgid "_Decline"
msgstr "_סירוב"
-#: ../src/empathy-event-manager.c:766
+#: ../src/empathy-event-manager.c:757
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "ה_צטרפות"
-#: ../src/empathy-event-manager.c:793
+#: ../src/empathy-event-manager.c:784
#, c-format
msgid "%s invited you to join %s"
msgstr "‏%s הזמין/ה אותך להצטרף אל %s"
-#: ../src/empathy-event-manager.c:799
+#: ../src/empathy-event-manager.c:790
#, c-format
msgid "You have been invited to join %s"
msgstr "הוזמנת להצטרף אל %s"
-#: ../src/empathy-event-manager.c:850
+#: ../src/empathy-event-manager.c:841
#, c-format
msgid "Incoming file transfer from %s"
msgstr "העברת קבצים נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1011 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "נדרשת ססמה"
-#: ../src/empathy-event-manager.c:1076
+#: ../src/empathy-event-manager.c:1067
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s רוצה הרשאות לצפייה מתי המשתמש שלך מחובר"
-#: ../src/empathy-event-manager.c:1080
+#: ../src/empathy-event-manager.c:1071
#, c-format
msgid ""
"\n"
@@ -3474,7 +3535,7 @@ msgstr "הקובץ \"%s\" נשלח אל %s"
msgid "File transfer completed"
msgstr "העברת קובץ הושלמה"
-#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780
msgid "Waiting for the other participant's response"
msgstr "בהמתנה לתגובה של משתתפים נוספים"
@@ -3488,15 +3549,15 @@ msgstr "נבדקת השלמות של \"%s\""
msgid "Hashing \"%s\""
msgstr "מתבצע גיבוב ל־\"%s\""
-#: ../src/empathy-ft-manager.c:1029
+#: ../src/empathy-ft-manager.c:1026
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1041
+#: ../src/empathy-ft-manager.c:1038
msgid "File"
msgstr "קובץ"
-#: ../src/empathy-ft-manager.c:1063
+#: ../src/empathy-ft-manager.c:1060
msgid "Remaining"
msgstr "נותר"
@@ -3532,39 +3593,55 @@ msgstr "פרוטוקול"
msgid "Source"
msgstr "מקור"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:394
msgid "Provide Password"
msgstr "הזנת ססמה"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:400
msgid "Disconnect"
msgstr "ניתוק"
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:540
msgid "No match found"
msgstr "לא נמצאה התאמה"
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:695
msgid "Reconnect"
msgstr "התחברות מחדש"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:701
msgid "Edit Account"
msgstr "עריכת חשבון"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:707
msgid "Close"
msgstr "סגירה"
-#: ../src/empathy-main-window.c:1418
+#. Translators: this string will be something like:
+#. * Top up My Account ($1.23)..."
+#: ../src/empathy-main-window.c:849
+#, c-format
+msgid "Top up %s (%s)..."
+msgstr "Top up %s (%s)..."
+
+#: ../src/empathy-main-window.c:924
+msgid "Top up account credit"
+msgstr "אשראי חשבון ה־Top up"
+
+#. top up button
+#: ../src/empathy-main-window.c:999
+msgid "Top Up..."
+msgstr "Top Up..."
+
+#: ../src/empathy-main-window.c:1752
msgid "Contact"
msgstr "איש קשר"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:2101
msgid "Contact List"
msgstr "רשימת אנשי קשר"
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:2219
msgid "Show and edit accounts"
msgstr "הצגה ועריכה של חשבונות"
@@ -3573,86 +3650,90 @@ msgid "Contacts on a _Map"
msgstr "אנשי קשר על ה_מפה"
#: ../src/empathy-main-window.ui.h:2
+msgid "Credit Balance"
+msgstr "מאזן האשראי"
+
+#: ../src/empathy-main-window.ui.h:3
msgid "Find in Contact _List"
msgstr "_חיפוש ברשימת אנשי הקשר"
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
msgid "Join _Favorites"
msgstr "_צירוף למועדפים"
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
msgid "Manage Favorites"
msgstr "ניהול מועדפים"
-#: ../src/empathy-main-window.ui.h:5
+#: ../src/empathy-main-window.ui.h:6
msgid "N_ormal Size"
msgstr "גודל _רגיל"
-#: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
+#: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
msgid "New _Call…"
msgstr "_שיחה חדשה…"
-#: ../src/empathy-main-window.ui.h:7
+#: ../src/empathy-main-window.ui.h:8
msgid "Normal Size With _Avatars"
msgstr "גודל רגיל עם _תמונות אישיות"
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:9
msgid "P_references"
msgstr "העד_פות"
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:10
msgid "Show P_rotocols"
msgstr "הצגת פ_רוטוקולים"
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:11
msgid "Sort by _Name"
msgstr "מיון לפי _שם"
-#: ../src/empathy-main-window.ui.h:11
+#: ../src/empathy-main-window.ui.h:12
msgid "Sort by _Status"
msgstr "מיון לפי _מצב"
-#: ../src/empathy-main-window.ui.h:12
+#: ../src/empathy-main-window.ui.h:13
msgid "_Accounts"
msgstr "_חשבונות"
-#: ../src/empathy-main-window.ui.h:14
+#: ../src/empathy-main-window.ui.h:15
msgid "_Blocked Contacts"
msgstr "אנשי קשר _חסומים"
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:17
msgid "_Compact Size"
msgstr "גודל _קומפקטי"
-#: ../src/empathy-main-window.ui.h:18
+#: ../src/empathy-main-window.ui.h:19
msgid "_Debug"
msgstr "_ניפוי שגיאות"
-#: ../src/empathy-main-window.ui.h:20
+#: ../src/empathy-main-window.ui.h:21
msgid "_File Transfers"
msgstr "העברות _קבצים"
-#: ../src/empathy-main-window.ui.h:22
+#: ../src/empathy-main-window.ui.h:23
msgid "_Join…"
msgstr "ה_צטרפות…"
-#: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
+#: ../src/empathy-main-window.ui.h:24 ../src/empathy-status-icon.ui.h:3
msgid "_New Conversation…"
msgstr "_שיחה חדשה…"
-#: ../src/empathy-main-window.ui.h:24
+#: ../src/empathy-main-window.ui.h:25
msgid "_Offline Contacts"
msgstr "אנשי קשר _לא מחוברים"
-#: ../src/empathy-main-window.ui.h:25
+#: ../src/empathy-main-window.ui.h:26
msgid "_Personal Information"
msgstr "מידע _אישי"
-#: ../src/empathy-main-window.ui.h:27
+#: ../src/empathy-main-window.ui.h:28
msgid "_Room"
msgstr "_חדר"
-#: ../src/empathy-main-window.ui.h:28
+#: ../src/empathy-main-window.ui.h:29
msgid "_Search for Contacts…"
msgstr "_חיפוש אחר אנשי קשר…"
@@ -3666,7 +3747,7 @@ msgstr "חברים"
#. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
#. yes/no, yes/no and a number.
-#: ../src/empathy-new-chatroom-dialog.c:560
+#: ../src/empathy-new-chatroom-dialog.c:553
#, c-format
msgid ""
"%s\n"
@@ -3679,16 +3760,16 @@ msgstr ""
"נדרשת ססמה: %s\n"
"חברים: %s"
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "No"
msgstr "לא"
-#: ../src/empathy-new-chatroom-dialog.c:591
+#: ../src/empathy-new-chatroom-dialog.c:584
msgid "Could not start room listing"
msgstr "לא ניתן להתחיל את הצגת החדרים"
-#: ../src/empathy-new-chatroom-dialog.c:601
+#: ../src/empathy-new-chatroom-dialog.c:594
msgid "Could not stop room listing"
msgstr "לא ניתן לעצור את הצגת החדרים"
@@ -3722,39 +3803,79 @@ msgstr "רשימת חדרים"
msgid "_Room:"
msgstr "_חדר:"
-#: ../src/empathy-preferences.c:139
+#: ../src/empathy-preferences.c:147
msgid "Message received"
msgstr "התקבלה הודעה"
-#: ../src/empathy-preferences.c:140
+#: ../src/empathy-preferences.c:148
msgid "Message sent"
msgstr "הודעה נשלחה"
-#: ../src/empathy-preferences.c:141
+#: ../src/empathy-preferences.c:149
msgid "New conversation"
msgstr "שיחה חדשה"
-#: ../src/empathy-preferences.c:142
+#: ../src/empathy-preferences.c:150
msgid "Contact goes online"
msgstr "איש קשר מתחבר"
-#: ../src/empathy-preferences.c:143
+#: ../src/empathy-preferences.c:151
msgid "Contact goes offline"
msgstr "איש קשר מתנתק"
-#: ../src/empathy-preferences.c:144
+#: ../src/empathy-preferences.c:152
msgid "Account connected"
msgstr "חשבון מחובר"
-#: ../src/empathy-preferences.c:145
+#: ../src/empathy-preferences.c:153
msgid "Account disconnected"
msgstr "חשבון נותק"
-#: ../src/empathy-preferences.c:446
+#: ../src/empathy-preferences.c:450
msgid "Language"
msgstr "שפה"
-#: ../src/empathy-preferences.c:875
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:700
+msgid "Juliet"
+msgstr "יוליה"
+
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:707
+msgid "Romeo"
+msgstr "רומיאו"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:713
+msgid "O Romeo, Romeo, wherefore art thou Romeo?"
+msgstr "הו רומיאו, רומיאו, מן אין שבת רומיאו?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:716
+msgid "Deny thy father and refuse thy name;"
+msgstr "התכחש לאביך וסרב לשמו;"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:719
+msgid "Or if thou wilt not, be but sworn my love"
+msgstr "או אם לא תסכים, אשבע לך באהבתי"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:722
+msgid "And I'll no longer be a Capulet."
+msgstr "ולא אהיה עוד בת קפולט."
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:725
+msgid "Shall I hear more, or shall I speak at this?"
+msgstr "האם דיברתי די או שמא אוסיף לדבר?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:728
+msgid "Juliet has disconnected"
+msgstr "יוליה התנתקה"
+
+#: ../src/empathy-preferences.c:962
msgid "Preferences"
msgstr "העדפות"
@@ -3854,43 +3975,47 @@ msgid ""
msgstr "ברשימת השפות מוצגות שפות שעבורן מותקנים אצלך מילונים."
#: ../src/empathy-preferences.ui.h:24
+msgid "Theme Variant:"
+msgstr "הגוון הערכה:"
+
+#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "ערכות נושא"
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "התחברות _אוטומטית עם ההפעלה"
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
msgid "_Cellphone"
msgstr "טלפון _סלולרי"
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
msgid "_Enable bubble notifications"
msgstr "ה_פעלת התרעות בתוך בועה"
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
msgid "_Enable sound notifications"
msgstr "ה_פעלת התרעות קוליות"
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:30
msgid "_GPS"
msgstr "_GPS"
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:31
msgid "_Network (IP, Wi-Fi)"
msgstr "_רשת (IP, אלחוטית)"
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:32
msgid "_Open new chats in separate windows"
msgstr "_פתיחת שיחות חדשות בחלונות נפרדים"
-#: ../src/empathy-preferences.ui.h:32
+#: ../src/empathy-preferences.ui.h:33
msgid "_Publish location to my contacts"
msgstr "_פרסום המיקום שלי לאנשי הקשר שלי"
#. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:35
msgid "_Reduce location accuracy"
msgstr "ה_פחתת דיוק המיקום"
@@ -3902,7 +4027,7 @@ msgstr "מצב"
msgid "_Quit"
msgstr "יצי_אה"
-#: ../src/empathy-map-view.c:442
+#: ../src/empathy-map-view.c:448
msgid "Contact Map View"
msgstr "מפת אנשי קשר"
@@ -4038,7 +4163,7 @@ msgstr "סירוב"
msgid "Accept"
msgstr "אישור"
-#: ../src/empathy-notifications-approver.c:223
+#: ../src/empathy-notifications-approver.c:226
msgid "Provide"
msgstr "הזנה"
@@ -4052,6 +4177,13 @@ msgstr "שיחה שלא נענתה מאת %s"
msgid "%s just tried to call you, but you were in another call."
msgstr "התקבלה בקשת שיחה מאת %s, אך באותו הזמן כבר היית בשיחה אחרת."
+#: ../libempathy-gtk/empathy-search-bar.c:282
+msgid "_Match case"
+msgstr "התאמת _רישיות"
+
+#~ msgid "_Enabled"
+#~ msgstr "מו_פעל"
+
#~ msgid "%s is now offline."
#~ msgstr "‏%s מנותק/ת כעת."
@@ -4127,9 +4259,6 @@ msgstr "התקבלה בקשת שיחה מאת %s, אך באותו הזמן כב
#~ msgid "%s account"
#~ msgstr "חשבון %s"
-#~ msgid "Salut account is created"
-#~ msgstr "Salut account is created"
-
#~ msgid "Whether the Salut account has been created on the first Empathy run."
#~ msgstr ""
#~ "Whether the Salut account has been created on the first Empathy run."
diff --git a/po/nb.po b/po/nb.po
index e7f05be23..183b6ed3d 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy 2.92.x\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-20 11:24+0100\n"
-"PO-Revision-Date: 2011-03-17 09:53+0100\n"
+"POT-Creation-Date: 2011-05-04 11:11+0200\n"
+"PO-Revision-Date: 2011-05-04 11:14+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: no\n"
@@ -441,7 +441,7 @@ msgstr "Håndter meldings- og VoIP-kontoer"
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2242
+#: ../src/empathy-accounts-dialog.c:2340
msgid "Messaging and VoIP Accounts"
msgstr "Meldings- og VoIP-kontoer"
@@ -489,7 +489,7 @@ msgstr "Feil under overføring av filen"
msgid "The other participant is unable to transfer the file"
msgstr "Avsender kan ikke overføre filen"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:382
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383
msgid "Unknown reason"
msgstr "Ukjent årsak"
@@ -513,120 +513,117 @@ msgstr "Usynlig"
msgid "Offline"
msgstr "Frakoblet"
-#: ../libempathy/empathy-utils.c:315
-#: ../src/empathy-streamed-media-window.c:1904
-#: ../src/empathy-streamed-media-window.c:1905
-#: ../src/empathy-streamed-media-window.c:1906
-#: ../src/empathy-streamed-media-window.c:1907
-#: ../src/empathy-call-window.ui.h:18
+#. translators: presence type is unknown
+#: ../libempathy/empathy-utils.c:316
+msgctxt "presence"
msgid "Unknown"
msgstr "Ukjent"
-#: ../libempathy/empathy-utils.c:354
+#: ../libempathy/empathy-utils.c:355
msgid "No reason specified"
msgstr "Ingen årsak oppgitt"
-#: ../libempathy/empathy-utils.c:356 ../libempathy/empathy-utils.c:412
+#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413
msgid "Status is set to offline"
msgstr "Status er satt til frakoblet"
-#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:392
+#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393
msgid "Network error"
msgstr "Nettverksfeil"
-#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
+#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395
msgid "Authentication failed"
msgstr "Autentiseringen feilet"
-#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
+#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397
msgid "Encryption error"
msgstr "Krypteringsfeil"
-#: ../libempathy/empathy-utils.c:364
+#: ../libempathy/empathy-utils.c:365
msgid "Name in use"
msgstr "Navn i bruk"
-#: ../libempathy/empathy-utils.c:366 ../libempathy/empathy-utils.c:398
+#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399
msgid "Certificate not provided"
msgstr "Sertifikat ikke oppgitt"
-#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
+#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401
msgid "Certificate untrusted"
msgstr "Stoler ikke på sertifikat"
-#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
+#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403
msgid "Certificate expired"
msgstr "Sertifikat utgått"
-#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
+#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405
msgid "Certificate not activated"
msgstr "Sertifikat ikke aktivert"
-#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
+#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407
msgid "Certificate hostname mismatch"
msgstr "Feil vertsnavn i forhold til sertifikat"
-#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
+#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409
msgid "Certificate fingerprint mismatch"
msgstr "Fingeravtrykk stemmer ikke for sertifikat"
-#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
+#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411
msgid "Certificate self-signed"
msgstr "Selvsignert sertifikat"
-#: ../libempathy/empathy-utils.c:380
+#: ../libempathy/empathy-utils.c:381
msgid "Certificate error"
msgstr "Sertifikatsfeil"
-#: ../libempathy/empathy-utils.c:414
+#: ../libempathy/empathy-utils.c:415
msgid "Encryption is not available"
msgstr "Kryptering er ikke tilgjengelig"
-#: ../libempathy/empathy-utils.c:416
+#: ../libempathy/empathy-utils.c:417
msgid "Certificate is invalid"
msgstr "Sertifikatet ikke ugyldig"
-#: ../libempathy/empathy-utils.c:418
+#: ../libempathy/empathy-utils.c:419
msgid "Connection has been refused"
msgstr "Tilkobling nektes"
-#: ../libempathy/empathy-utils.c:420
+#: ../libempathy/empathy-utils.c:421
msgid "Connection can't be established"
msgstr "Tilkobling kan ikke etableres"
-#: ../libempathy/empathy-utils.c:422
+#: ../libempathy/empathy-utils.c:423
msgid "Connection has been lost"
msgstr "Tilkobling mistet"
-#: ../libempathy/empathy-utils.c:424
+#: ../libempathy/empathy-utils.c:425
msgid "This resource is already connected to the server"
msgstr "Denne ressursen er allerede koblet til tjeneren"
-#: ../libempathy/empathy-utils.c:426
+#: ../libempathy/empathy-utils.c:427
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Tilkoblingen er erstattet med en ny tilkobling som bruker samme ressurs"
-#: ../libempathy/empathy-utils.c:429
+#: ../libempathy/empathy-utils.c:430
msgid "The account already exists on the server"
msgstr "Kontoen eksisterer allerede på tjeneren"
-#: ../libempathy/empathy-utils.c:431
+#: ../libempathy/empathy-utils.c:432
msgid "Server is currently too busy to handle the connection"
msgstr "Tjeneren er for opptatt til å håndtere tilkoblingen"
-#: ../libempathy/empathy-utils.c:433
+#: ../libempathy/empathy-utils.c:434
msgid "Certificate has been revoked"
msgstr "Sertifikatet er trukket tilbake"
-#: ../libempathy/empathy-utils.c:435
+#: ../libempathy/empathy-utils.c:436
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Sertifikatet bruker en usikker cipher-algoritme eller er kryptografisk svakt"
-#: ../libempathy/empathy-utils.c:438
+#: ../libempathy/empathy-utils.c:439
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -634,66 +631,66 @@ msgstr ""
"Lengden på tjenersertifikatet eller dybden på sertifikatkjeden på tjeneren "
"oversteg grensen som settes av kryptografibiblioteket"
-#: ../libempathy/empathy-utils.c:601
+#: ../libempathy/empathy-utils.c:602
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "Personer i nærheten"
-#: ../libempathy/empathy-utils.c:606
+#: ../libempathy/empathy-utils.c:607
msgid "Yahoo! Japan"
msgstr "Yahoo! Japan"
-#: ../libempathy/empathy-utils.c:635
+#: ../libempathy/empathy-utils.c:636
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:637
msgid "Facebook Chat"
msgstr "Facebook-prat"
-#: ../libempathy/empathy-time.c:137
+#: ../libempathy/empathy-time.c:100
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "%d sekund siden"
msgstr[1] "%d sekunder siden"
-#: ../libempathy/empathy-time.c:142
+#: ../libempathy/empathy-time.c:105
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d minutt siden"
msgstr[1] "%d minutter siden"
-#: ../libempathy/empathy-time.c:147
+#: ../libempathy/empathy-time.c:110
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d time siden"
msgstr[1] "%d timer siden"
-#: ../libempathy/empathy-time.c:152
+#: ../libempathy/empathy-time.c:115
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d dag siden"
msgstr[1] "%d dager siden"
-#: ../libempathy/empathy-time.c:157
+#: ../libempathy/empathy-time.c:120
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d uke siden"
msgstr[1] "%d uker siden"
-#: ../libempathy/empathy-time.c:162
+#: ../libempathy/empathy-time.c:125
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d måned siden"
msgstr[1] "%d måneder siden"
-#: ../libempathy/empathy-time.c:167
+#: ../libempathy/empathy-time.c:130
msgid "in the future"
msgstr "i fremtiden"
@@ -701,83 +698,67 @@ msgstr "i fremtiden"
msgid "All"
msgstr "Alle"
-#: ../libempathy-gtk/empathy-account-widget.c:682
+#: ../libempathy-gtk/empathy-account-widget.c:678
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "Konto"
-#: ../libempathy-gtk/empathy-account-widget.c:683
+#: ../libempathy-gtk/empathy-account-widget.c:679
msgid "Password"
msgstr "Passord"
-#: ../libempathy-gtk/empathy-account-widget.c:684
+#: ../libempathy-gtk/empathy-account-widget.c:680
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "Tjener"
-#: ../libempathy-gtk/empathy-account-widget.c:685
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "Port"
-#: ../libempathy-gtk/empathy-account-widget.c:757
-#: ../libempathy-gtk/empathy-account-widget.c:814
+#: ../libempathy-gtk/empathy-account-widget.c:753
+#: ../libempathy-gtk/empathy-account-widget.c:810
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1166
+#: ../libempathy-gtk/empathy-account-widget.c:1151
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "Konto %s er redigert via Mine nettkontoer."
-#: ../libempathy-gtk/empathy-account-widget.c:1172
+#: ../libempathy-gtk/empathy-account-widget.c:1157
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "Konto %s kan ikke redigeres i Empathy."
-#: ../libempathy-gtk/empathy-account-widget.c:1192
+#: ../libempathy-gtk/empathy-account-widget.c:1177
msgid "Launch My Web Accounts"
msgstr "Start Mine nettkontoer"
-#: ../libempathy-gtk/empathy-account-widget.c:1530
+#: ../libempathy-gtk/empathy-account-widget.c:1515
msgid "Username:"
msgstr "Brukernavn:"
-#: ../libempathy-gtk/empathy-account-widget.c:1897
+#: ../libempathy-gtk/empathy-account-widget.c:1833
msgid "A_pply"
msgstr "_Bruk"
-#: ../libempathy-gtk/empathy-account-widget.c:1927
+#: ../libempathy-gtk/empathy-account-widget.c:1863
msgid "L_og in"
msgstr "L_ogg inn"
-#. Account and Identifier
-#: ../libempathy-gtk/empathy-account-widget.c:1993
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1481
-#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
-#: ../src/empathy-chatrooms-window.ui.h:1
-#: ../src/empathy-new-chatroom-dialog.ui.h:1
-msgid "Account:"
-msgstr "Konto:"
-
-#: ../libempathy-gtk/empathy-account-widget.c:2004
-msgid "_Enabled"
-msgstr "Slått _på"
-
-#: ../libempathy-gtk/empathy-account-widget.c:2069
+#: ../libempathy-gtk/empathy-account-widget.c:1937
msgid "This account already exists on the server"
msgstr "Denne kontoen eksisterer allerede på tjeneren"
-#: ../libempathy-gtk/empathy-account-widget.c:2072
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "Create a new account on the server"
msgstr "Lag en ny konto på tjeneren"
-#: ../libempathy-gtk/empathy-account-widget.c:2264
+#: ../libempathy-gtk/empathy-account-widget.c:2132
msgid "Ca_ncel"
msgstr "A_vbryt"
@@ -786,19 +767,19 @@ msgstr "A_vbryt"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2561
+#: ../libempathy-gtk/empathy-account-widget.c:2413
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s av %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2587
+#: ../libempathy-gtk/empathy-account-widget.c:2439
#, c-format
msgid "%s Account"
msgstr "%s-konto"
-#: ../libempathy-gtk/empathy-account-widget.c:2591
+#: ../libempathy-gtk/empathy-account-widget.c:2443
msgid "New account"
msgstr "Ny konto"
@@ -1238,23 +1219,23 @@ msgstr "Emne er ikke støttet for denne samtalen"
msgid "You are not allowed to change the topic"
msgstr "Du har ikke lov til å bytte emne"
-#: ../libempathy-gtk/empathy-chat.c:906
+#: ../libempathy-gtk/empathy-chat.c:932
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: tøm alle meldinger fra aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:909
+#: ../libempathy-gtk/empathy-chat.c:935
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <emne>: sett emne for aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:912
+#: ../libempathy-gtk/empathy-chat.c:938
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <ID for praterom>: bli med i et nytt praterom"
-#: ../libempathy-gtk/empathy-chat.c:915
+#: ../libempathy-gtk/empathy-chat.c:941
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <prateroms-ID>: bli med i et nytt praterom"
-#: ../libempathy-gtk/empathy-chat.c:920
+#: ../libempathy-gtk/empathy-chat.c:946
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
@@ -1262,23 +1243,23 @@ msgstr ""
"/part [<praterom-ID>] [<årsak>]: forlat praterommet, forvalg er det aktive "
"rommet"
-#: ../libempathy-gtk/empathy-chat.c:925
+#: ../libempathy-gtk/empathy-chat.c:951
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <kontakt-ID> [<melding>]: åpne en privat samtale"
-#: ../libempathy-gtk/empathy-chat.c:928
+#: ../libempathy-gtk/empathy-chat.c:954
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <kontakt-ID> <melding>: åpne en privat samtale"
-#: ../libempathy-gtk/empathy-chat.c:931
+#: ../libempathy-gtk/empathy-chat.c:957
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <kallenavn>: bytt kallenavn på denne tjeneren"
-#: ../libempathy-gtk/empathy-chat.c:934
+#: ../libempathy-gtk/empathy-chat.c:960
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <melding>: send en HANDLINGS-melding til aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:937
+#: ../libempathy-gtk/empathy-chat.c:963
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1288,7 +1269,7 @@ msgstr ""
"sende en melding som starter med tegnet «/». For eksempel: «/say /join "
"brukes til å bli med i et nytt praterom»"
-#: ../libempathy-gtk/empathy-chat.c:942
+#: ../libempathy-gtk/empathy-chat.c:968
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1296,98 +1277,103 @@ msgstr ""
"/help [<kommando>]: vis alle støttede kommandoer. Vis hjelp for <kommando> "
"hvis den er definert."
-#: ../libempathy-gtk/empathy-chat.c:952
+#: ../libempathy-gtk/empathy-chat.c:978
#, c-format
msgid "Usage: %s"
msgstr "Bruk: %s"
-#: ../libempathy-gtk/empathy-chat.c:991
+#: ../libempathy-gtk/empathy-chat.c:1017
msgid "Unknown command"
msgstr "Ukjent kommando"
-#: ../libempathy-gtk/empathy-chat.c:1117
+#: ../libempathy-gtk/empathy-chat.c:1143
msgid "Unknown command; see /help for the available commands"
msgstr "Ukjent kommando; se /help for tilgjengelige kommandoer"
-#: ../libempathy-gtk/empathy-chat.c:1254
+#: ../libempathy-gtk/empathy-chat.c:1281
msgid "offline"
msgstr "frakoblet"
-#: ../libempathy-gtk/empathy-chat.c:1257
+#: ../libempathy-gtk/empathy-chat.c:1284
msgid "invalid contact"
msgstr "ugyldig kontakt"
-#: ../libempathy-gtk/empathy-chat.c:1260
+#: ../libempathy-gtk/empathy-chat.c:1287
msgid "permission denied"
msgstr "tilgang nektet"
-#: ../libempathy-gtk/empathy-chat.c:1263
+#: ../libempathy-gtk/empathy-chat.c:1290
msgid "too long message"
msgstr "meldingen er for lang"
-#: ../libempathy-gtk/empathy-chat.c:1266
+#: ../libempathy-gtk/empathy-chat.c:1293
msgid "not implemented"
msgstr "ikke implementert"
-#: ../libempathy-gtk/empathy-chat.c:1270
+#: ../libempathy-gtk/empathy-chat.c:1297
msgid "unknown"
msgstr "ukjent"
-#: ../libempathy-gtk/empathy-chat.c:1274
+#: ../libempathy-gtk/empathy-chat.c:1302
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Feil ved sending av melding «%s»: %s"
-#: ../libempathy-gtk/empathy-chat.c:1335 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1306
+#, c-format
+msgid "Error sending message: %s"
+msgstr "Feil ved sending av melding: %s"
+
+#: ../libempathy-gtk/empathy-chat.c:1367 ../src/empathy-chat-window.c:717
msgid "Topic:"
msgstr "Emne:"
-#: ../libempathy-gtk/empathy-chat.c:1347
+#: ../libempathy-gtk/empathy-chat.c:1379
#, c-format
msgid "Topic set to: %s"
msgstr "Emnet er satt til: %s"
-#: ../libempathy-gtk/empathy-chat.c:1349
+#: ../libempathy-gtk/empathy-chat.c:1381
msgid "No topic defined"
msgstr "Emne ikke definert"
-#: ../libempathy-gtk/empathy-chat.c:1848
+#: ../libempathy-gtk/empathy-chat.c:1888
msgid "(No Suggestions)"
msgstr "(Ingen forslag)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1916
+#: ../libempathy-gtk/empathy-chat.c:1956
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Legg til «%s» i ordboken"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1953
+#: ../libempathy-gtk/empathy-chat.c:1993
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Legg til «%s» i ordbok for %s"
-#: ../libempathy-gtk/empathy-chat.c:2010
+#: ../libempathy-gtk/empathy-chat.c:2050
msgid "Insert Smiley"
msgstr "Sett inn smilefjes"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2028
+#: ../libempathy-gtk/empathy-chat.c:2068
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "_Send"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2063
+#: ../libempathy-gtk/empathy-chat.c:2103
msgid "_Spelling Suggestions"
msgstr "_Staveforslag"
-#: ../libempathy-gtk/empathy-chat.c:2152
+#: ../libempathy-gtk/empathy-chat.c:2192
msgid "Failed to retrieve recent logs"
msgstr "Klarte ikke å hente siste logger"
-#: ../libempathy-gtk/empathy-chat.c:2263
+#: ../libempathy-gtk/empathy-chat.c:2303
#, c-format
msgid "%s has disconnected"
msgstr "%s har koblet fra"
@@ -1395,12 +1381,12 @@ msgstr "%s har koblet fra"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2270
+#: ../libempathy-gtk/empathy-chat.c:2310
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s ble sparket av %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2273
+#: ../libempathy-gtk/empathy-chat.c:2313
#, c-format
msgid "%s was kicked"
msgstr "%s ble sparket"
@@ -1408,17 +1394,17 @@ msgstr "%s ble sparket"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2281
+#: ../libempathy-gtk/empathy-chat.c:2321
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s ble bannlyst av %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2284
+#: ../libempathy-gtk/empathy-chat.c:2324
#, c-format
msgid "%s was banned"
msgstr "%s ble bannlyst"
-#: ../libempathy-gtk/empathy-chat.c:2288
+#: ../libempathy-gtk/empathy-chat.c:2328
#, c-format
msgid "%s has left the room"
msgstr "%s har forlatt rommet"
@@ -1428,62 +1414,62 @@ msgstr "%s har forlatt rommet"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2297
+#: ../libempathy-gtk/empathy-chat.c:2337
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2322
+#: ../libempathy-gtk/empathy-chat.c:2362
#, c-format
msgid "%s has joined the room"
msgstr "%s har blitt med i rommet"
-#: ../libempathy-gtk/empathy-chat.c:2347
+#: ../libempathy-gtk/empathy-chat.c:2387
#, c-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
-#: ../libempathy-gtk/empathy-chat.c:2486
-#: ../src/empathy-streamed-media-window.c:1949
-#: ../src/empathy-event-manager.c:1122
+#: ../libempathy-gtk/empathy-chat.c:2526
+#: ../src/empathy-streamed-media-window.c:1957
+#: ../src/empathy-event-manager.c:1126
msgid "Disconnected"
msgstr "Koblet fra"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3116
+#: ../libempathy-gtk/empathy-chat.c:3158
msgid "Would you like to store this password?"
msgstr "Vil du lagre dette passordet?"
-#: ../libempathy-gtk/empathy-chat.c:3122
+#: ../libempathy-gtk/empathy-chat.c:3164
msgid "Remember"
msgstr "Husk"
-#: ../libempathy-gtk/empathy-chat.c:3132
+#: ../libempathy-gtk/empathy-chat.c:3174
msgid "Not now"
msgstr "Ikke nå"
-#: ../libempathy-gtk/empathy-chat.c:3176
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Retry"
msgstr "Prøv igjen"
-#: ../libempathy-gtk/empathy-chat.c:3180
+#: ../libempathy-gtk/empathy-chat.c:3222
msgid "Wrong password; please try again:"
msgstr "Feil passord; vennligst prøv igjen:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3297
+#: ../libempathy-gtk/empathy-chat.c:3339
msgid "This room is protected by a password:"
msgstr "Dette rommet er beskyttet med et passord:"
-#: ../libempathy-gtk/empathy-chat.c:3324
+#: ../libempathy-gtk/empathy-chat.c:3366
msgid "Join"
msgstr "Bli med"
-#: ../libempathy-gtk/empathy-chat.c:3494 ../src/empathy-event-manager.c:1144
+#: ../libempathy-gtk/empathy-chat.c:3536 ../src/empathy-event-manager.c:1147
msgid "Connected"
msgstr "Koblet til"
-#: ../libempathy-gtk/empathy-chat.c:3547
+#: ../libempathy-gtk/empathy-chat.c:3589
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Samtale"
@@ -1512,21 +1498,32 @@ msgstr "Kunne ikke blokkere kontakt"
msgid "Edit Blocked Contacts"
msgstr "Rediger blokkerte kontakter"
+#. Account and Identifier
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
+#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
+#: ../src/empathy-chatrooms-window.ui.h:1
+#: ../src/empathy-new-chatroom-dialog.ui.h:1
+msgid "Account:"
+msgstr "Konto:"
+
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:794
+#: ../libempathy-gtk/empathy-theme-adium.c:1026
msgid "_Copy Link Address"
msgstr "_Kopier lenkens adresse"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:801
+#: ../libempathy-gtk/empathy-theme-adium.c:1033
msgid "_Open Link"
msgstr "_Åpne lenke"
#. Translators: timestamp displayed between conversations in
#. * chat windows (strftime format string)
-#: ../libempathy-gtk/empathy-chat-text-view.c:420
+#: ../libempathy-gtk/empathy-chat-text-view.c:415
msgid "%A %B %d %Y"
msgstr "%A %d %B %Y"
@@ -1544,24 +1541,24 @@ msgstr "Personlig informasjon"
msgid "New Contact"
msgstr "Ny kontakt"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:532
+#: ../libempathy-gtk/empathy-contact-dialogs.c:533
#: ../libempathy-gtk/empathy-individual-dialogs.c:199
#, c-format
msgid "Block %s?"
msgstr "Blokker %s?"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:537
+#: ../libempathy-gtk/empathy-contact-dialogs.c:538
#: ../libempathy-gtk/empathy-individual-dialogs.c:247
#, c-format
msgid "Are you sure you want to block '%s' from contacting you again?"
msgstr "Er du sikker på at du vil blokkere «%s» fra å kontakte deg igjen?"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:542
+#: ../libempathy-gtk/empathy-contact-dialogs.c:543
#: ../libempathy-gtk/empathy-individual-dialogs.c:269
msgid "_Block"
msgstr "_Blokker"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:552
+#: ../libempathy-gtk/empathy-contact-dialogs.c:559
#: ../libempathy-gtk/empathy-individual-dialogs.c:278
msgid "_Report this contact as abusive"
msgid_plural "_Report these contacts as abusive"
@@ -1588,34 +1585,34 @@ msgstr "Ikke gruppert"
msgid "Favorite People"
msgstr "Favorittpersoner"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2001
-#: ../libempathy-gtk/empathy-individual-view.c:2336
+#: ../libempathy-gtk/empathy-contact-list-view.c:1987
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Vil du virkelig fjerne gruppen «%s»?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2003
-#: ../libempathy-gtk/empathy-individual-view.c:2339
+#: ../libempathy-gtk/empathy-contact-list-view.c:1989
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "Fjerner gruppe"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2052
-#: ../libempathy-gtk/empathy-contact-list-view.c:2129
-#: ../libempathy-gtk/empathy-individual-view.c:2394
-#: ../libempathy-gtk/empathy-individual-view.c:2588
+#: ../libempathy-gtk/empathy-contact-list-view.c:2038
+#: ../libempathy-gtk/empathy-contact-list-view.c:2115
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "Fje_rn"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2082
-#: ../libempathy-gtk/empathy-individual-view.c:2458
+#: ../libempathy-gtk/empathy-contact-list-view.c:2068
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Vil du virkelig fjerne kontakten «%s»?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2084
-#: ../libempathy-gtk/empathy-individual-view.c:2479
+#: ../libempathy-gtk/empathy-contact-list-view.c:2070
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "Fjerner kontakt"
@@ -1624,68 +1621,68 @@ msgstr "Fjerner kontakt"
msgid "_Add Contact…"
msgstr "_Legg til kontakt …"
-#: ../libempathy-gtk/empathy-contact-menu.c:296
+#: ../libempathy-gtk/empathy-contact-menu.c:299
msgid "_Block Contact"
msgstr "_Blokker kontakt"
-#: ../libempathy-gtk/empathy-contact-menu.c:325
+#: ../libempathy-gtk/empathy-contact-menu.c:328
#: ../libempathy-gtk/empathy-individual-menu.c:517
#: ../src/empathy-main-window.ui.h:15
msgid "_Chat"
msgstr "_Prat"
-#: ../libempathy-gtk/empathy-contact-menu.c:356
+#: ../libempathy-gtk/empathy-contact-menu.c:359
#: ../libempathy-gtk/empathy-individual-menu.c:560
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Lydsamtale"
-#: ../libempathy-gtk/empathy-contact-menu.c:387
+#: ../libempathy-gtk/empathy-contact-menu.c:390
#: ../libempathy-gtk/empathy-individual-menu.c:602
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Videosamtale"
-#: ../libempathy-gtk/empathy-contact-menu.c:433
+#: ../libempathy-gtk/empathy-contact-menu.c:436
#: ../libempathy-gtk/empathy-individual-menu.c:645
#: ../src/empathy-main-window.ui.h:26
msgid "_Previous Conversations"
msgstr "_Tidligere samtaler"
-#: ../libempathy-gtk/empathy-contact-menu.c:455
+#: ../libempathy-gtk/empathy-contact-menu.c:458
#: ../libempathy-gtk/empathy-individual-menu.c:686
msgid "Send File"
msgstr "Send fil"
-#: ../libempathy-gtk/empathy-contact-menu.c:478
+#: ../libempathy-gtk/empathy-contact-menu.c:481
#: ../libempathy-gtk/empathy-individual-menu.c:728
msgid "Share My Desktop"
msgstr "Del mitt skrivebord"
-#: ../libempathy-gtk/empathy-contact-menu.c:518
-#: ../libempathy-gtk/empathy-contact-widget.c:1763
+#: ../libempathy-gtk/empathy-contact-menu.c:521
+#: ../libempathy-gtk/empathy-contact-widget.c:1761
#: ../libempathy-gtk/empathy-individual-menu.c:763
-#: ../libempathy-gtk/empathy-individual-widget.c:1372
+#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "Favoritt"
-#: ../libempathy-gtk/empathy-contact-menu.c:547
+#: ../libempathy-gtk/empathy-contact-menu.c:550
#: ../libempathy-gtk/empathy-individual-menu.c:791
msgid "Infor_mation"
msgstr "Infor_masjon"
-#: ../libempathy-gtk/empathy-contact-menu.c:593
+#: ../libempathy-gtk/empathy-contact-menu.c:596
msgctxt "Edit contact (contextual menu)"
msgid "_Edit"
msgstr "R_ediger"
-#: ../libempathy-gtk/empathy-contact-menu.c:647
+#: ../libempathy-gtk/empathy-contact-menu.c:650
#: ../libempathy-gtk/empathy-individual-menu.c:972
#: ../src/empathy-chat-window.c:935
msgid "Inviting you to this room"
msgstr "Inviterer deg til dette rommet"
-#: ../libempathy-gtk/empathy-contact-menu.c:678
+#: ../libempathy-gtk/empathy-contact-menu.c:681
#: ../libempathy-gtk/empathy-individual-menu.c:1019
msgid "_Invite to Chat Room"
msgstr "_Inviter til praterom"
@@ -1857,32 +1854,32 @@ msgid "Altitude:"
msgstr "Høyde:"
#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-contact-widget.c:886
#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "Sted"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:890
-#: ../libempathy-gtk/empathy-individual-widget.c:635
+#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:942
-#: ../libempathy-gtk/empathy-individual-widget.c:684
+#: ../libempathy-gtk/empathy-contact-widget.c:940
+#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "%B %e, %Y, %R UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1024
-#: ../libempathy-gtk/empathy-individual-widget.c:919
+#: ../libempathy-gtk/empathy-contact-widget.c:1022
+#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "Lagre personbilder"
-#: ../libempathy-gtk/empathy-contact-widget.c:1080
-#: ../libempathy-gtk/empathy-individual-widget.c:977
+#: ../libempathy-gtk/empathy-contact-widget.c:1078
+#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "Kan ikke lagre personbilde"
@@ -1892,7 +1889,7 @@ msgstr "<b>Plassering</b> (dato)\t"
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1307
+#: ../libempathy-gtk/empathy-individual-widget.c:1305
msgid "Alias:"
msgstr "Alias:"
@@ -1912,7 +1909,7 @@ msgstr "Kontaktdetaljer"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1511
+#: ../libempathy-gtk/empathy-individual-widget.c:1509
msgid "Identifier:"
msgstr "Identifikator:"
@@ -1951,7 +1948,7 @@ msgid "Select"
msgstr "Velg"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1439
msgid "Group"
msgstr "Gruppe"
@@ -2004,11 +2001,11 @@ msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "Koble kontakter …"
-#: ../libempathy-gtk/empathy-individual-view.c:2301
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "Slett og _blokker"
-#: ../libempathy-gtk/empathy-individual-view.c:2467
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2017,7 +2014,7 @@ msgstr ""
"Vil du virkelig fjerne lenket kontakt «%s»? Merk at dette vil fjerne alle "
"kontaktene den lenkede kontakten består av."
-#: ../libempathy-gtk/empathy-individual-widget.c:1652
+#: ../libempathy-gtk/empathy-individual-widget.c:1650
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2285,19 +2282,19 @@ msgstr "Lagre _nye statusmeldinger"
msgid "Saved Status Messages"
msgstr "Lagrede statusmeldinger"
-#: ../libempathy-gtk/empathy-theme-manager.c:67
+#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "Klassisk"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:69
msgid "Simple"
msgstr "Enkel"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:70
msgid "Clean"
msgstr "Tøm"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:71
msgid "Blue"
msgstr "Blå"
@@ -2827,34 +2824,34 @@ msgstr "Det finnes ikke-lagrede endringer for din %s-konto."
msgid "Your new account has not been saved yet."
msgstr "Din nye konto er ikke lagret ennå."
-#: ../src/empathy-accounts-dialog.c:286
+#: ../src/empathy-accounts-dialog.c:345
#: ../src/empathy-streamed-media-window.c:809
msgid "Connecting…"
msgstr "Kobler til …"
-#: ../src/empathy-accounts-dialog.c:327
+#: ../src/empathy-accounts-dialog.c:386
#, c-format
msgid "Offline — %s"
msgstr "Frakoblet - %s"
-#: ../src/empathy-accounts-dialog.c:339
+#: ../src/empathy-accounts-dialog.c:398
#, c-format
msgid "Disconnected — %s"
msgstr "Koblet fra - %s"
-#: ../src/empathy-accounts-dialog.c:350
+#: ../src/empathy-accounts-dialog.c:409
msgid "Offline — No Network Connection"
msgstr "Frakoblet - Ingen nettverkstilkobling"
-#: ../src/empathy-accounts-dialog.c:357
+#: ../src/empathy-accounts-dialog.c:416
msgid "Unknown Status"
msgstr "Ukjent status"
-#: ../src/empathy-accounts-dialog.c:369
+#: ../src/empathy-accounts-dialog.c:428
msgid "Offline — Account Disabled"
msgstr "Frakoblet - Konto deaktivert"
-#: ../src/empathy-accounts-dialog.c:772
+#: ../src/empathy-accounts-dialog.c:831
msgid ""
"You are about to create a new account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2862,16 +2859,16 @@ msgstr ""
"Du er i ferd med å lage en ny konto hvilket vil forkaste\n"
"dine endringer. Er du sikker på at du vil fortsette?"
-#: ../src/empathy-accounts-dialog.c:1133
+#: ../src/empathy-accounts-dialog.c:1192
#, c-format
msgid "Do you want to remove %s from your computer?"
msgstr "Vil du fjerne %s fra din datamaskin?"
-#: ../src/empathy-accounts-dialog.c:1137
+#: ../src/empathy-accounts-dialog.c:1196
msgid "This will not remove your account on the server."
msgstr "Dette vil ikke fjerne din konto på tjeneren."
-#: ../src/empathy-accounts-dialog.c:1375
+#: ../src/empathy-accounts-dialog.c:1434
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2880,15 +2877,15 @@ msgstr ""
"dine endringer. Er du sikker på at du vil fortsette?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1571
+#: ../src/empathy-accounts-dialog.c:1652
msgid "_Enable"
msgstr "Slå _på"
-#: ../src/empathy-accounts-dialog.c:1572
+#: ../src/empathy-accounts-dialog.c:1653
msgid "_Disable"
msgstr "Slå _av"
-#: ../src/empathy-accounts-dialog.c:2086
+#: ../src/empathy-accounts-dialog.c:2174
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2924,11 +2921,11 @@ msgstr "_Legg til …"
msgid "_Import…"
msgstr "_Importer …"
-#: ../src/empathy-auth-client.c:246
+#: ../src/empathy-auth-client.c:250
msgid " - Empathy authentication client"
msgstr "- Empathy autentiseringsklient"
-#: ../src/empathy-auth-client.c:262
+#: ../src/empathy-auth-client.c:266
msgid "Empathy authentication client"
msgstr "Empathy autentiseringsklient"
@@ -3013,17 +3010,37 @@ msgstr "IP-adresse for en relay-tjener"
msgid "The IP address of the multicast group"
msgstr "IP-adresse for multicast-gruppe"
+#: ../src/empathy-streamed-media-window.c:1906
+msgctxt "encoding video codec"
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../src/empathy-streamed-media-window.c:1909
+msgctxt "encoding audio codec"
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../src/empathy-streamed-media-window.c:1912
+msgctxt "decoding video codec"
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../src/empathy-streamed-media-window.c:1915
+msgctxt "decoding audio codec"
+msgid "Unknown"
+msgstr "Ukjent"
+
#. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-streamed-media-window.c:2266
+#: ../src/empathy-streamed-media-window.c:2274
#, c-format
msgid "Connected — %d:%02dm"
msgstr "Koblet til - %d:%02dm"
-#: ../src/empathy-streamed-media-window.c:2327
+#: ../src/empathy-streamed-media-window.c:2335
msgid "Technical Details"
msgstr "Tekniske detaljer"
-#: ../src/empathy-streamed-media-window.c:2365
+#: ../src/empathy-streamed-media-window.c:2373
#, c-format
msgid ""
"%s's software does not understand any of the audio formats supported by your "
@@ -3032,7 +3049,7 @@ msgstr ""
"Programvaren til %s forstår ikke noen av lydformatene som støttes av din "
"datamaskin"
-#: ../src/empathy-streamed-media-window.c:2370
+#: ../src/empathy-streamed-media-window.c:2378
#, c-format
msgid ""
"%s's software does not understand any of the video formats supported by your "
@@ -3041,7 +3058,7 @@ msgstr ""
"Programvaren til %s forstår ikke noen av videoformatene som støttes av din "
"datamaskin"
-#: ../src/empathy-streamed-media-window.c:2376
+#: ../src/empathy-streamed-media-window.c:2384
#, c-format
msgid ""
"Can't establish a connection to %s. One of you might be on a network that "
@@ -3050,25 +3067,25 @@ msgstr ""
"Kan ikke etablere tilkobling til %s. En av dere kan være på et nettverk som "
"ikke tillater direkte tilkoblinger."
-#: ../src/empathy-streamed-media-window.c:2382
+#: ../src/empathy-streamed-media-window.c:2390
msgid "There was a failure on the network"
msgstr "Det oppsto en feil på nettverket"
-#: ../src/empathy-streamed-media-window.c:2386
+#: ../src/empathy-streamed-media-window.c:2394
msgid ""
"The audio formats necessary for this call are not installed on your computer"
msgstr ""
"Lydformatene som kreves for denne samtalen er ikke installert på din "
"datamaskin"
-#: ../src/empathy-streamed-media-window.c:2389
+#: ../src/empathy-streamed-media-window.c:2397
msgid ""
"The video formats necessary for this call are not installed on your computer"
msgstr ""
"Videoformatene som kreves for denne samtalen er ikke installert på din "
"datamaskin"
-#: ../src/empathy-streamed-media-window.c:2399
+#: ../src/empathy-streamed-media-window.c:2407
#, c-format
msgid ""
"Something unexpected happened in a Telepathy component. Please <a href=\"%s"
@@ -3079,19 +3096,19 @@ msgstr ""
"\">rapporter denne feilen</a> og legg ved loggene som samles inn i "
"«Feilsøking»-vinduet i Hjelp-menyen."
-#: ../src/empathy-streamed-media-window.c:2407
+#: ../src/empathy-streamed-media-window.c:2415
msgid "There was a failure in the call engine"
msgstr "Det oppsto en feil i samtalemotoren"
-#: ../src/empathy-streamed-media-window.c:2410
+#: ../src/empathy-streamed-media-window.c:2418
msgid "The end of the stream was reached"
msgstr "Slutt på strømmen ble nådd"
-#: ../src/empathy-streamed-media-window.c:2450
+#: ../src/empathy-streamed-media-window.c:2458
msgid "Can't establish audio stream"
msgstr "Kan ikke etablere lydstrøm"
-#: ../src/empathy-streamed-media-window.c:2460
+#: ../src/empathy-streamed-media-window.c:2468
msgid "Can't establish video stream"
msgstr "Kan ikke etablere videostrøm"
@@ -3163,6 +3180,10 @@ msgstr "Send lyd"
msgid "Toggle audio transmission"
msgstr "Slå av/på overføring av lyd"
+#: ../src/empathy-call-window.ui.h:18
+msgid "Unknown"
+msgstr "Ukjent"
+
#: ../src/empathy-call-window.ui.h:19
msgid "V_ideo"
msgstr "V_ideo"
@@ -3333,7 +3354,7 @@ msgstr "%s ringer deg med video. Vil du svare?"
msgid "%s is calling you. Do you want to answer?"
msgstr "%s ringer deg. Vil du svare?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:660
+#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming call from %s"
msgstr "Innkommende samtale fra %s"
@@ -3346,59 +3367,59 @@ msgstr "Av_vis"
msgid "_Answer"
msgstr "Sv_ar"
-#: ../src/empathy-event-manager.c:660
+#: ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming video call from %s"
msgstr "Innkommende videosamtale fra %s"
-#: ../src/empathy-event-manager.c:737
+#: ../src/empathy-event-manager.c:744
msgid "Room invitation"
msgstr "Invitasjon til rom"
-#: ../src/empathy-event-manager.c:739
+#: ../src/empathy-event-manager.c:746
#, c-format
msgid "Invitation to join %s"
msgstr "Invitasjon til å bli med i %s"
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:753
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s inviterer deg til å bli med i %s"
-#: ../src/empathy-event-manager.c:754
+#: ../src/empathy-event-manager.c:761
msgid "_Decline"
msgstr "_Avslå"
-#: ../src/empathy-event-manager.c:759
+#: ../src/empathy-event-manager.c:766
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Bli med"
-#: ../src/empathy-event-manager.c:786
+#: ../src/empathy-event-manager.c:793
#, c-format
msgid "%s invited you to join %s"
msgstr "%s inviterte deg til å bli med i %s"
-#: ../src/empathy-event-manager.c:792
+#: ../src/empathy-event-manager.c:799
#, c-format
msgid "You have been invited to join %s"
msgstr "Du har blitt invitert til å bli med i %s"
-#: ../src/empathy-event-manager.c:843
+#: ../src/empathy-event-manager.c:850
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Innkommende filoverføring fra %s"
-#: ../src/empathy-event-manager.c:1013 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:373
msgid "Password required"
msgstr "Passord kreves"
-#: ../src/empathy-event-manager.c:1069
+#: ../src/empathy-event-manager.c:1076
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s ønsker rettigheter til å se når du er tilkoblet"
-#: ../src/empathy-event-manager.c:1073
+#: ../src/empathy-event-manager.c:1080
#, c-format
msgid ""
"\n"
@@ -3408,105 +3429,105 @@ msgstr ""
"Melding: %s"
#. Translators: time left, when it is more than one hour
-#: ../src/empathy-ft-manager.c:99
+#: ../src/empathy-ft-manager.c:100
#, c-format
msgid "%u:%02u.%02u"
msgstr "%u:%02u.%02u"
#. Translators: time left, when is is less than one hour
-#: ../src/empathy-ft-manager.c:102
+#: ../src/empathy-ft-manager.c:103
#, c-format
msgid "%02u.%02u"
msgstr "%02u.%02u"
-#: ../src/empathy-ft-manager.c:178
+#: ../src/empathy-ft-manager.c:179
msgctxt "file transfer percent"
msgid "Unknown"
msgstr "Ukjent"
-#: ../src/empathy-ft-manager.c:273
+#: ../src/empathy-ft-manager.c:274
#, c-format
msgid "%s of %s at %s/s"
msgstr "%s av %s med %s/s"
-#: ../src/empathy-ft-manager.c:274
+#: ../src/empathy-ft-manager.c:275
#, c-format
msgid "%s of %s"
msgstr "%s av %s"
#. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:305
+#: ../src/empathy-ft-manager.c:306
#, c-format
msgid "Receiving \"%s\" from %s"
msgstr "Mottar «%s» fra %s"
#. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:308
+#: ../src/empathy-ft-manager.c:309
#, c-format
msgid "Sending \"%s\" to %s"
msgstr "Sender «%s» til %s"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:338
+#: ../src/empathy-ft-manager.c:339
#, c-format
msgid "Error receiving \"%s\" from %s"
msgstr "Feil ved mottak av «%s» fra %s"
-#: ../src/empathy-ft-manager.c:341
+#: ../src/empathy-ft-manager.c:342
msgid "Error receiving a file"
msgstr "Feil ved mottak av en fil"
-#: ../src/empathy-ft-manager.c:346
+#: ../src/empathy-ft-manager.c:347
#, c-format
msgid "Error sending \"%s\" to %s"
msgstr "Feil ved sending av «%s» til %s"
-#: ../src/empathy-ft-manager.c:349
+#: ../src/empathy-ft-manager.c:350
msgid "Error sending a file"
msgstr "Feil ved sending av en fil"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:488
+#: ../src/empathy-ft-manager.c:489
#, c-format
msgid "\"%s\" received from %s"
msgstr "«%s» mottatt fra %s"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:493
+#: ../src/empathy-ft-manager.c:494
#, c-format
msgid "\"%s\" sent to %s"
msgstr "«%s» sendt til %s"
-#: ../src/empathy-ft-manager.c:496
+#: ../src/empathy-ft-manager.c:497
msgid "File transfer completed"
msgstr "Filoverføring fullført"
-#: ../src/empathy-ft-manager.c:615 ../src/empathy-ft-manager.c:782
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
msgid "Waiting for the other participant's response"
msgstr "Venter på svar fra motparten"
-#: ../src/empathy-ft-manager.c:641 ../src/empathy-ft-manager.c:679
+#: ../src/empathy-ft-manager.c:642 ../src/empathy-ft-manager.c:680
#, c-format
msgid "Checking integrity of \"%s\""
msgstr "Sjekker integriteten for «%s»"
-#: ../src/empathy-ft-manager.c:644 ../src/empathy-ft-manager.c:682
+#: ../src/empathy-ft-manager.c:645 ../src/empathy-ft-manager.c:683
#, c-format
msgid "Hashing \"%s\""
msgstr "Hasher «%s»"
-#: ../src/empathy-ft-manager.c:1016
+#: ../src/empathy-ft-manager.c:1029
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1028
+#: ../src/empathy-ft-manager.c:1041
msgid "File"
msgstr "Fil"
-#: ../src/empathy-ft-manager.c:1050
+#: ../src/empathy-ft-manager.c:1063
msgid "Remaining"
msgstr "Gjenstår"
@@ -3541,39 +3562,39 @@ msgstr "Protokoll"
msgid "Source"
msgstr "Kilde"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:390
msgid "Provide Password"
msgstr "Oppgi passord"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:396
msgid "Disconnect"
msgstr "Koble fra"
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:536
msgid "No match found"
msgstr "Ingen treff funnet"
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:691
msgid "Reconnect"
msgstr "Koble til på nytt"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:697
msgid "Edit Account"
msgstr "Rediger konto"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:703
msgid "Close"
msgstr "Lukk"
-#: ../src/empathy-main-window.c:1418
+#: ../src/empathy-main-window.c:1421
msgid "Contact"
msgstr "Kontakt"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:1768
msgid "Contact List"
msgstr "Kontaktliste"
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:1884
msgid "Show and edit accounts"
msgstr "Vis og rediger kontoer"
@@ -3732,39 +3753,79 @@ msgstr "Romliste"
msgid "_Room:"
msgstr "_Rom:"
-#: ../src/empathy-preferences.c:139
+#: ../src/empathy-preferences.c:147
msgid "Message received"
msgstr "Melding mottatt"
-#: ../src/empathy-preferences.c:140
+#: ../src/empathy-preferences.c:148
msgid "Message sent"
msgstr "Melding sendt"
-#: ../src/empathy-preferences.c:141
+#: ../src/empathy-preferences.c:149
msgid "New conversation"
msgstr "Ny samtale"
-#: ../src/empathy-preferences.c:142
+#: ../src/empathy-preferences.c:150
msgid "Contact goes online"
msgstr "Kontakt kobler til"
-#: ../src/empathy-preferences.c:143
+#: ../src/empathy-preferences.c:151
msgid "Contact goes offline"
msgstr "Kontakt kobler fra"
-#: ../src/empathy-preferences.c:144
+#: ../src/empathy-preferences.c:152
msgid "Account connected"
msgstr "Konto koblet til"
-#: ../src/empathy-preferences.c:145
+#: ../src/empathy-preferences.c:153
msgid "Account disconnected"
msgstr "Konto koblet fra"
-#: ../src/empathy-preferences.c:446
+#: ../src/empathy-preferences.c:454
msgid "Language"
msgstr "Språk"
-#: ../src/empathy-preferences.c:875
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:704
+msgid "Juliet"
+msgstr "Juliet"
+
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:711
+msgid "Romeo"
+msgstr "Romeo"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:717
+msgid "O Romeo, Romeo, wherefore art thou Romeo?"
+msgstr "O Romeo, Romeo, wherefore art thou Romeo?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:720
+msgid "Deny thy father and refuse thy name;"
+msgstr "Deny thy father and refuse thy name;"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:723
+msgid "Or if thou wilt not, be but sworn my love"
+msgstr "Or if thou wilt not, be but sworn my love"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:726
+msgid "And I'll no longer be a Capulet."
+msgstr "And I'll no longer be a Capulet."
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:729
+msgid "Shall I hear more, or shall I speak at this?"
+msgstr "Shall I hear more, or shall I speak at this?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:732
+msgid "Juliet has disconnected"
+msgstr "Juliet har koblet fra"
+
+#: ../src/empathy-preferences.c:966
msgid "Preferences"
msgstr "Brukervalg"
@@ -3865,43 +3926,47 @@ msgstr ""
"Listen med språk viser bare de språkene det er installert ordliste for."
#: ../src/empathy-preferences.ui.h:24
+msgid "Theme Variant:"
+msgstr "Temavariant:"
+
+#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "Temaer"
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "Koble til _automatisk ved oppstart"
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
msgid "_Cellphone"
msgstr "_Mobiltelefon"
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
msgid "_Enable bubble notifications"
msgstr "_Aktiver varsling med bobler"
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
msgid "_Enable sound notifications"
msgstr "_Aktiver varsling med lyder"
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:30
msgid "_GPS"
msgstr "_GPS"
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:31
msgid "_Network (IP, Wi-Fi)"
msgstr "_Nettverk (IP, Wi-Fi)"
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:32
msgid "_Open new chats in separate windows"
msgstr "_Åpne nye samtaler i egne vinduer"
-#: ../src/empathy-preferences.ui.h:32
+#: ../src/empathy-preferences.ui.h:33
msgid "_Publish location to my contacts"
msgstr "_Publiser plassering til mine kontakter"
#. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:35
msgid "_Reduce location accuracy"
msgstr "_Reduser nøyaktighet for plassering"
@@ -3913,7 +3978,7 @@ msgstr "Status"
msgid "_Quit"
msgstr "_Avslutt"
-#: ../src/empathy-map-view.c:442
+#: ../src/empathy-map-view.c:448
msgid "Contact Map View"
msgstr "Kartvisning for kontakter"
@@ -4051,6 +4116,10 @@ msgstr "Avslå"
msgid "Accept"
msgstr "Godta"
+#: ../src/empathy-notifications-approver.c:223
+msgid "Provide"
+msgstr "Oppgi"
+
#: ../src/empathy-call-observer.c:130
#, c-format
msgid "Missed call from %s"
@@ -4060,3 +4129,7 @@ msgstr "Tapt anrop fra %s"
#, c-format
msgid "%s just tried to call you, but you were in another call."
msgstr "%s prøvde å ringe deg, men du var i en annen samtale."
+
+#: ../libempathy-gtk/empathy-search-bar.c:282
+msgid "_Match case"
+msgstr "Skill _mellom små/store bokstaver"
diff --git a/po/tr.po b/po/tr.po
index a4e72e3c8..a51ca2b82 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: empathy\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=empathy&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-04-21 09:08+0000\n"
-"PO-Revision-Date: 2011-04-26 15:19+0300\n"
+"POT-Creation-Date: 2011-05-02 12:56+0000\n"
+"PO-Revision-Date: 2011-05-03 11:22+0300\n"
"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -536,7 +536,6 @@ msgstr "Çevrimdışı"
#. translators: presence type is unknown
#: ../libempathy/empathy-utils.c:316
-#| msgid "Unknown"
msgctxt "presence"
msgid "Unknown"
msgstr "Bilinmiyor"
@@ -1338,7 +1337,6 @@ msgstr "'%s' mesajı gönderilirken hata : %s"
#: ../libempathy-gtk/empathy-chat.c:1306
#, c-format
-#| msgid "Error sending message '%s': %s"
msgid "Error sending message: %s"
msgstr "Mesaj gönderme hatası: %s"
@@ -1355,43 +1353,43 @@ msgstr "Başlık değiştirildi: %s"
msgid "No topic defined"
msgstr "Başlık belirtilmemiş"
-#: ../libempathy-gtk/empathy-chat.c:1880
+#: ../libempathy-gtk/empathy-chat.c:1888
msgid "(No Suggestions)"
msgstr "(Öneri Yok)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1948
+#: ../libempathy-gtk/empathy-chat.c:1956
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "'%s' kelimesini Sözlüğe ekle"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1985
+#: ../libempathy-gtk/empathy-chat.c:1993
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "'%s' kelimesini %s Sözlüğe ekle"
-#: ../libempathy-gtk/empathy-chat.c:2042
+#: ../libempathy-gtk/empathy-chat.c:2050
msgid "Insert Smiley"
msgstr "Gülümseme Ekle"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2060
+#: ../libempathy-gtk/empathy-chat.c:2068
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "_Gönder"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2095
+#: ../libempathy-gtk/empathy-chat.c:2103
msgid "_Spelling Suggestions"
msgstr "_Yazım Önerileri"
-#: ../libempathy-gtk/empathy-chat.c:2184
+#: ../libempathy-gtk/empathy-chat.c:2192
msgid "Failed to retrieve recent logs"
msgstr "Son kayıtlara erişme başarısız oldu"
-#: ../libempathy-gtk/empathy-chat.c:2295
+#: ../libempathy-gtk/empathy-chat.c:2303
#, c-format
msgid "%s has disconnected"
msgstr "%s bağlantısını kesti"
@@ -1399,12 +1397,12 @@ msgstr "%s bağlantısını kesti"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2302
+#: ../libempathy-gtk/empathy-chat.c:2310
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%2$s tarafından %1$s kanaldan atıldı"
-#: ../libempathy-gtk/empathy-chat.c:2305
+#: ../libempathy-gtk/empathy-chat.c:2313
#, c-format
msgid "%s was kicked"
msgstr "%s kanaldan atıldı"
@@ -1412,17 +1410,17 @@ msgstr "%s kanaldan atıldı"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2313
+#: ../libempathy-gtk/empathy-chat.c:2321
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%2$s tarafından %1$s yasaklandı"
-#: ../libempathy-gtk/empathy-chat.c:2316
+#: ../libempathy-gtk/empathy-chat.c:2324
#, c-format
msgid "%s was banned"
msgstr "%s yasaklandı"
-#: ../libempathy-gtk/empathy-chat.c:2320
+#: ../libempathy-gtk/empathy-chat.c:2328
#, c-format
msgid "%s has left the room"
msgstr "%s odayı terk etti"
@@ -1432,62 +1430,62 @@ msgstr "%s odayı terk etti"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2329
+#: ../libempathy-gtk/empathy-chat.c:2337
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2354
+#: ../libempathy-gtk/empathy-chat.c:2362
#, c-format
msgid "%s has joined the room"
msgstr "%s odaya katıldı"
-#: ../libempathy-gtk/empathy-chat.c:2379
+#: ../libempathy-gtk/empathy-chat.c:2387
#, c-format
msgid "%s is now known as %s"
msgstr "%s şimdi %s olarak biliniyor"
-#: ../libempathy-gtk/empathy-chat.c:2518
+#: ../libempathy-gtk/empathy-chat.c:2526
#: ../src/empathy-streamed-media-window.c:1957
#: ../src/empathy-event-manager.c:1126
msgid "Disconnected"
msgstr "Bağlı Değil"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3148
+#: ../libempathy-gtk/empathy-chat.c:3158
msgid "Would you like to store this password?"
msgstr "Bu parolayı kaydetmek istiyor musunuz?"
-#: ../libempathy-gtk/empathy-chat.c:3154
+#: ../libempathy-gtk/empathy-chat.c:3164
msgid "Remember"
msgstr "Hatırla"
-#: ../libempathy-gtk/empathy-chat.c:3164
+#: ../libempathy-gtk/empathy-chat.c:3174
msgid "Not now"
msgstr "Şimdi değil"
-#: ../libempathy-gtk/empathy-chat.c:3208
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Retry"
msgstr "Yeniden Dene"
-#: ../libempathy-gtk/empathy-chat.c:3212
+#: ../libempathy-gtk/empathy-chat.c:3222
msgid "Wrong password; please try again:"
msgstr "Yanlış parola: lütfen tekrar deneyin:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3329
+#: ../libempathy-gtk/empathy-chat.c:3339
msgid "This room is protected by a password:"
msgstr "Bu oda bir parolayla korunuyor:"
-#: ../libempathy-gtk/empathy-chat.c:3356
+#: ../libempathy-gtk/empathy-chat.c:3366
msgid "Join"
msgstr "Katıl"
-#: ../libempathy-gtk/empathy-chat.c:3526 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3536 ../src/empathy-event-manager.c:1147
msgid "Connected"
msgstr "Bağlı"
-#: ../libempathy-gtk/empathy-chat.c:3579
+#: ../libempathy-gtk/empathy-chat.c:3589
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Konuşma"
@@ -1529,13 +1527,13 @@ msgstr "Hesap:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:794
+#: ../libempathy-gtk/empathy-theme-adium.c:1010
msgid "_Copy Link Address"
msgstr "Bağ Adresini _Kopyala"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:801
+#: ../libempathy-gtk/empathy-theme-adium.c:1017
msgid "_Open Link"
msgstr "_Bağı Aç"
@@ -1605,33 +1603,33 @@ msgid "Favorite People"
msgstr "Sık Görüşülen Kişiler"
#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2343
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Gerçekten '%s' grubunu kaldırmak istiyor musunuz?"
#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2346
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "Grup kaldırılıyor"
#. Remove
#: ../libempathy-gtk/empathy-contact-list-view.c:2038
#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2401
-#: ../libempathy-gtk/empathy-individual-view.c:2594
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "Kaldı_r"
#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2465
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Gerçekten '%s' bağlantısını kaldırmak istiyor musunuz?"
#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2486
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "Bağlantı kaldırılıyor"
@@ -1967,7 +1965,7 @@ msgid "Select"
msgstr "Seç"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1439
msgid "Group"
msgstr "Grup"
@@ -2018,11 +2016,11 @@ msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_Kişileri Bağla..."
-#: ../libempathy-gtk/empathy-individual-view.c:2308
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "Sil ve _Engelle"
-#: ../libempathy-gtk/empathy-individual-view.c:2474
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2667,7 +2665,7 @@ msgstr ""
"Deniz Koçak <deniz.kocak@linux.org.tr>\n"
"Barış Çiçek <baris@teamforce.name.tr>\n"
"Muhammet Kara <muhammet.k@gmail.com>\n"
-"Ubuntu'yu Türkçe'ye Çevirenler Takımı"
+"Launchpad Çevirmenleri"
#: ../src/empathy-account-assistant.c:167
msgid "There was an error while importing the accounts."
@@ -3027,25 +3025,21 @@ msgid "The IP address of the multicast group"
msgstr "Çoklu yayın grubunun IP adresi"
#: ../src/empathy-streamed-media-window.c:1906
-#| msgid "Unknown"
msgctxt "encoding video codec"
msgid "Unknown"
msgstr "Bilinmiyor"
#: ../src/empathy-streamed-media-window.c:1909
-#| msgid "Unknown"
msgctxt "encoding audio codec"
msgid "Unknown"
msgstr "Bilinmiyor"
#: ../src/empathy-streamed-media-window.c:1912
-#| msgid "Unknown"
msgctxt "decoding video codec"
msgid "Unknown"
msgstr "Bilinmiyor"
#: ../src/empathy-streamed-media-window.c:1915
-#| msgid "Unknown"
msgctxt "decoding audio codec"
msgid "Unknown"
msgstr "Bilinmiyor"
@@ -3423,7 +3417,7 @@ msgstr "%s'e katılmaya davet edildiniz"
msgid "Incoming file transfer from %s"
msgstr "%s kişisinden gelen dosya transferi"
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:373
msgid "Password required"
msgstr "Parola gerekli"
@@ -3578,39 +3572,39 @@ msgstr "Protokol"
msgid "Source"
msgstr "Kaynak"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:390
msgid "Provide Password"
msgstr "Parola Gir"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:396
msgid "Disconnect"
msgstr "Bağlantıyı kes"
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:536
msgid "No match found"
msgstr "Eşleşme bulunamadı"
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:691
msgid "Reconnect"
msgstr "Yeniden Bağlan"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:697
msgid "Edit Account"
msgstr "Hesabı Düzenle"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:703
msgid "Close"
msgstr "Kapat"
-#: ../src/empathy-main-window.c:1418
+#: ../src/empathy-main-window.c:1421
msgid "Contact"
msgstr "Bağlantı"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:1768
msgid "Contact List"
msgstr "Bağlantı Listesi"
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:1884
msgid "Show and edit accounts"
msgstr "Hesapları göster ve düzenle"
@@ -4091,7 +4085,6 @@ msgid "Accept"
msgstr "Kabul Et"
#: ../src/empathy-notifications-approver.c:223
-#| msgid "Preview"
msgid "Provide"
msgstr "Sağla"
@@ -4105,6 +4098,11 @@ msgstr "Cevapsız çağrı %s"
msgid "%s just tried to call you, but you were in another call."
msgstr "%s sizi aramayı denedi, fakat siz başka bir arama ile meşguldünüz."
+#: ../libempathy-gtk/empathy-search-bar.c:282
+#| msgid "Match case"
+msgid "_Match case"
+msgstr "_BÜYÜK/küçük harf eşleştir"
+
#~ msgid "_Enabled"
#~ msgstr "_Etkin"
diff --git a/po/uk.po b/po/uk.po
index 7f35fa4e7..9f8d29e11 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Empathy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-17 19:23+0200\n"
-"PO-Revision-Date: 2011-03-17 19:36+0300\n"
+"POT-Creation-Date: 2011-05-09 23:16+0300\n"
+"PO-Revision-Date: 2011-05-09 23:45+0300\n"
"Last-Translator: Korostil Daniel <ted.korostiled@gmail.com>\n"
"Language-Team: translation@linux.org.ua\n"
"Language: uk\n"
@@ -215,107 +215,111 @@ msgid "Pop up notifications when a contact logs out"
msgstr "Контекстні сповіщення, коли контакт вийде"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+msgid "Show Balance in contact list"
+msgstr "Показувати баланс у списку контактів"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show avatars"
msgstr "Показувати аватари"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show contact list in rooms"
msgstr "Показати список співрозмовників у кімнаті"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show hint about closing the main window"
msgstr "Показувати підтвердження про закриття головного вікна"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show offline contacts"
msgstr "Показувати відсутніх співрозмовників"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show protocols"
msgstr "Показати протокол:"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Spell checking languages"
msgstr "Перевірка правопису для мов"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "The default folder to save file transfers in."
msgstr "Типова тека для збереження вхідних файлів."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The last directory that an avatar image was chosen from."
msgstr "Останній каталог, з якого обирались зображення аватарів."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The position for the chat window side pane"
msgstr "Позиція бокової панелі вікна розмови"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The stored position (in pixels) of the chat window side pane."
msgstr "Збережена позиція (в пікселях) бокової панелі вікна балачки."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The theme that is used to display the conversation in chat windows."
msgstr "Ця тема використовується для діалогу у вікні бесіди."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "Use graphical smileys"
msgstr "Використовувати графічні емоційки"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
msgid "Use notification sounds"
msgstr "Використовувати звуки"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use theme for chat rooms"
msgstr "Використовувати тему для бесід"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr "Чи показувати місцевості вашим співрозмовникам."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Чи використовувати GPS для визначення місцевості."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr "Чи використовувати мобільну мережу для визначення місцевості."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the network to guess the location."
msgstr "Чи використовувати комп'ютерну мережу для визначення місцевості."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Чи був перенос журналу MSN."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr "Автоматично підключати облікові записи при запуску."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr "Чи слід іти в режим очікування, коли користувач бездіяльний."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
"Чи слід зменшити точність визначення місцевості задля конфіденційності."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr "Чи використовувати аватари співрозмовників як значки вікон із бесідами"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr "Чи вмикати інструменти розробки WebKit, такі як Web Inspector."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
@@ -323,61 +327,61 @@ msgstr ""
"Чи використовувати менеджер з'єднань для автоматичного встановлення/розриву "
"зв'язку."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr "Перевіряти набрані слова за списком мов для перевірки орфографії."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid "Whether to convert smileys into graphical images in conversations."
msgstr "Перетворювати текстові емоційки на графічне представлення."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr "Чи відтворювати звуковий сигнал при вході співрозмовника у мережу."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr "Чи відтворювати звуковий сигнал при виході співрозмовника з мережі."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of events."
msgstr "Чи відтворювати звукові сигнали при подіях."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid "Whether to play a sound to notify of incoming messages."
msgstr "Чи відтворювати звуковий сигнал при надходженні повідомлення."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of new conversations."
msgstr "Чи відтворювати звуковий сигнал для нової бесіди."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of outgoing messages."
msgstr "Чи відтворювати звуковий сигнал при відправленні повідомлення."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound when logging into a network."
msgstr "Чи відтворювати звуковий сигнал при вході у мережу."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound when logging out of a network."
msgstr "Чи відтворювати звуковий сигнал при виході з мережі."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play sound notifications when away or busy."
msgstr "Чи відтворювати звукові сигнали у станах «відійшов» або «зайнятий»."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to show a popup notification when a contact goes offline."
msgstr "Чи показувати контекстні сповіщення коли контакт виходить з мережі."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to show a popup notification when a contact goes online."
msgstr "Чи показувати контекстні сповіщення коли контакт входить у мережу."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -385,38 +389,42 @@ msgstr ""
"Чи показувати контекстні сповіщення при надходженні нового повідомлення, "
"коли чат вже відкрито, але він не в фокусі."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when receiving a new message."
msgstr ""
"Чи показувати контекстні сповіщення при надходженні нового повідомлення."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+msgid "Whether to show account balances in the contact list."
+msgstr "Чи показувати баланси облікових записів у списку контактів."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr "Чи показувати аватари для співрозмовників у списку та вікні чату."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show contacts that are offline in the contact list."
msgstr "Чи показувати недоступних у мережі користувачів у списку контактів."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid "Whether to show popup notifications when away or busy."
msgstr ""
"Чи показувати контекстні сповіщення у станах «відійшов» або «зайнятий»."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show protocols for contacts in the contact list."
msgstr "Чи показувати аватари для співрозмовників у списку та вікні чату."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show the contact list in chat rooms."
msgstr "Чи показувати список контактів у кімнаті."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show the contact list in compact mode."
msgstr "Показувати список контактів стисненим або ні."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -424,11 +432,11 @@ msgstr ""
"Чи показувати повідомлення про закриття головного вікна кнопкою «x» у "
"заголовку."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to use the theme for chat rooms."
msgstr "Використовувати теми для вікон бесід чи ні."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -444,7 +452,7 @@ msgstr "Керування обліковими записами повідом
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2242
+#: ../src/empathy-accounts-dialog.c:2320
msgid "Messaging and VoIP Accounts"
msgstr "Облікові записи повідомлень та VoIP"
@@ -492,144 +500,141 @@ msgstr "Помилка при спробі передати файл"
msgid "The other participant is unable to transfer the file"
msgstr "Інший учасник не може передати файл"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:382
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
msgstr "Невідома причина"
-#: ../libempathy/empathy-utils.c:304
+#: ../libempathy/empathy-utils.c:305
msgid "Available"
msgstr "Доступний"
-#: ../libempathy/empathy-utils.c:306
+#: ../libempathy/empathy-utils.c:307
msgid "Busy"
msgstr "Зайнятий"
-#: ../libempathy/empathy-utils.c:309
+#: ../libempathy/empathy-utils.c:310
msgid "Away"
msgstr "Відійшов"
-#: ../libempathy/empathy-utils.c:311
+#: ../libempathy/empathy-utils.c:312
msgid "Invisible"
msgstr "Невидимий"
-#: ../libempathy/empathy-utils.c:313
+#: ../libempathy/empathy-utils.c:314
msgid "Offline"
msgstr "Не у мережі"
-#: ../libempathy/empathy-utils.c:315
-#: ../src/empathy-streamed-media-window.c:1904
-#: ../src/empathy-streamed-media-window.c:1905
-#: ../src/empathy-streamed-media-window.c:1906
-#: ../src/empathy-streamed-media-window.c:1907
-#: ../src/empathy-call-window.ui.h:18
+#. translators: presence type is unknown
+#: ../libempathy/empathy-utils.c:317
+msgctxt "presence"
msgid "Unknown"
msgstr "Невідомо"
-#: ../libempathy/empathy-utils.c:354
+#: ../libempathy/empathy-utils.c:356
msgid "No reason specified"
msgstr "Причину не вказано"
-#: ../libempathy/empathy-utils.c:356 ../libempathy/empathy-utils.c:412
+#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:414
msgid "Status is set to offline"
msgstr "Встановлено статус «не у мережі»"
-#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:392
+#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
msgid "Network error"
msgstr "Помилка мережі"
-#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
+#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
msgid "Authentication failed"
msgstr "Аутентифікація завершилась невдало"
-#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
+#: ../libempathy/empathy-utils.c:364 ../libempathy/empathy-utils.c:398
msgid "Encryption error"
msgstr "Помилка шифрування"
-#: ../libempathy/empathy-utils.c:364
+#: ../libempathy/empathy-utils.c:366
msgid "Name in use"
msgstr "Ім'я вже використовується"
-#: ../libempathy/empathy-utils.c:366 ../libempathy/empathy-utils.c:398
+#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
msgid "Certificate not provided"
msgstr "Сертифікат недоступний"
-#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
+#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
msgstr "Сертифікат не має довіри"
-#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
+#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
msgstr "Сертифіката застарів"
-#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
+#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
msgid "Certificate not activated"
msgstr "Сертифікат не активовано"
-#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
+#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
msgid "Certificate hostname mismatch"
msgstr "Сертифікат з помилкою у назві вузла"
-#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
+#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
msgid "Certificate fingerprint mismatch"
msgstr "Відбитки сертифікатів не збігаються"
-#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
+#: ../libempathy/empathy-utils.c:380 ../libempathy/empathy-utils.c:412
msgid "Certificate self-signed"
msgstr "Самопідписаний сертифікат"
-#: ../libempathy/empathy-utils.c:380
+#: ../libempathy/empathy-utils.c:382
msgid "Certificate error"
msgstr "Помилка сертифікату"
-#: ../libempathy/empathy-utils.c:414
+#: ../libempathy/empathy-utils.c:416
msgid "Encryption is not available"
msgstr "Шифрування не доступне"
-#: ../libempathy/empathy-utils.c:416
+#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
msgstr "Сертифікат недійсний"
-#: ../libempathy/empathy-utils.c:418
+#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
msgstr "У з'єднанні відмовлено"
-#: ../libempathy/empathy-utils.c:420
+#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
msgstr "З'єднання не можливо встановити"
-#: ../libempathy/empathy-utils.c:422
+#: ../libempathy/empathy-utils.c:424
msgid "Connection has been lost"
msgstr "З'єднання втрачено"
-#: ../libempathy/empathy-utils.c:424
+#: ../libempathy/empathy-utils.c:426
msgid "This resource is already connected to the server"
msgstr "Цей ресурс уже з'єднано з сервером"
-#: ../libempathy/empathy-utils.c:426
+#: ../libempathy/empathy-utils.c:428
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "З'єднання замінено на нове з'єднання через той самий ресурс"
-#: ../libempathy/empathy-utils.c:429
+#: ../libempathy/empathy-utils.c:431
msgid "The account already exists on the server"
msgstr "Цей обліковий запис уже існує на сервері"
-#: ../libempathy/empathy-utils.c:431
+#: ../libempathy/empathy-utils.c:433
msgid "Server is currently too busy to handle the connection"
msgstr "Сервер зараз зайнятий, щоб обробити з'єднання"
-#: ../libempathy/empathy-utils.c:433
+#: ../libempathy/empathy-utils.c:435
msgid "Certificate has been revoked"
msgstr "Сертифікат анульовано"
-#: ../libempathy/empathy-utils.c:435
+#: ../libempathy/empathy-utils.c:437
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Сертифікат використовує небезпечний алгоритм шифрування або криптографічно "
"ненадійний."
-#: ../libempathy/empathy-utils.c:438
+#: ../libempathy/empathy-utils.c:440
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -637,24 +642,24 @@ msgstr ""
"Довжина сертифіката сервера або глибина ланцюжка сертифіката сервера "
"перевищує обмеження криптографічної бібліотеки"
-#: ../libempathy/empathy-utils.c:601
+#: ../libempathy/empathy-utils.c:603
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "Люди поблизу"
-#: ../libempathy/empathy-utils.c:606
+#: ../libempathy/empathy-utils.c:608
msgid "Yahoo! Japan"
msgstr "Yahoo! Японія"
-#: ../libempathy/empathy-utils.c:635
+#: ../libempathy/empathy-utils.c:637
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:638
msgid "Facebook Chat"
msgstr "Час Facebook"
-#: ../libempathy/empathy-time.c:137
+#: ../libempathy/empathy-time.c:100
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
@@ -662,7 +667,7 @@ msgstr[0] "%d секунду тому"
msgstr[1] "%d секунди тому"
msgstr[2] "%d секунд тому"
-#: ../libempathy/empathy-time.c:142
+#: ../libempathy/empathy-time.c:105
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
@@ -670,7 +675,7 @@ msgstr[0] "%d хвилину тому"
msgstr[1] "%d хвилини тому"
msgstr[2] "%d хвилин тому"
-#: ../libempathy/empathy-time.c:147
+#: ../libempathy/empathy-time.c:110
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
@@ -678,7 +683,7 @@ msgstr[0] "%d годину тому"
msgstr[1] "%d години тому"
msgstr[2] "%d годин тому"
-#: ../libempathy/empathy-time.c:152
+#: ../libempathy/empathy-time.c:115
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
@@ -686,7 +691,7 @@ msgstr[0] "%d день тому"
msgstr[1] "%d дні тому"
msgstr[2] "%d днів тому"
-#: ../libempathy/empathy-time.c:157
+#: ../libempathy/empathy-time.c:120
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
@@ -694,7 +699,7 @@ msgstr[0] "%d тиждень тому"
msgstr[1] "%d тижня тому"
msgstr[2] "%d тижнів тому"
-#: ../libempathy/empathy-time.c:162
+#: ../libempathy/empathy-time.c:125
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
@@ -702,7 +707,7 @@ msgstr[0] "%d місяць тому"
msgstr[1] "%d місяця тому"
msgstr[2] "%d місяців тому"
-#: ../libempathy/empathy-time.c:167
+#: ../libempathy/empathy-time.c:130
msgid "in the future"
msgstr "в майбутньому"
@@ -710,83 +715,67 @@ msgstr "в майбутньому"
msgid "All"
msgstr "Усі"
-#: ../libempathy-gtk/empathy-account-widget.c:682
+#: ../libempathy-gtk/empathy-account-widget.c:678
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "Обліковий запис"
-#: ../libempathy-gtk/empathy-account-widget.c:683
+#: ../libempathy-gtk/empathy-account-widget.c:679
msgid "Password"
msgstr "Пароль"
-#: ../libempathy-gtk/empathy-account-widget.c:684
+#: ../libempathy-gtk/empathy-account-widget.c:680
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "Сервер"
-#: ../libempathy-gtk/empathy-account-widget.c:685
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "Порт"
-#: ../libempathy-gtk/empathy-account-widget.c:757
-#: ../libempathy-gtk/empathy-account-widget.c:814
+#: ../libempathy-gtk/empathy-account-widget.c:753
+#: ../libempathy-gtk/empathy-account-widget.c:810
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1166
+#: ../libempathy-gtk/empathy-account-widget.c:1151
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "Обліковий запис %s — змінено через сайт."
-#: ../libempathy-gtk/empathy-account-widget.c:1172
+#: ../libempathy-gtk/empathy-account-widget.c:1157
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "Обліковий запис %s неможливо редагувати в Empathy."
-#: ../libempathy-gtk/empathy-account-widget.c:1192
+#: ../libempathy-gtk/empathy-account-widget.c:1177
msgid "Launch My Web Accounts"
msgstr "Запустити мій обліковий запис із сайту"
-#: ../libempathy-gtk/empathy-account-widget.c:1530
+#: ../libempathy-gtk/empathy-account-widget.c:1515
msgid "Username:"
msgstr "Користувача:"
-#: ../libempathy-gtk/empathy-account-widget.c:1897
+#: ../libempathy-gtk/empathy-account-widget.c:1833
msgid "A_pply"
msgstr "_Застосувати"
-#: ../libempathy-gtk/empathy-account-widget.c:1927
+#: ../libempathy-gtk/empathy-account-widget.c:1863
msgid "L_og in"
msgstr "_Увійти"
-#. Account and Identifier
-#: ../libempathy-gtk/empathy-account-widget.c:1993
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1481
-#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
-#: ../src/empathy-chatrooms-window.ui.h:1
-#: ../src/empathy-new-chatroom-dialog.ui.h:1
-msgid "Account:"
-msgstr "Обліковий запис:"
-
-#: ../libempathy-gtk/empathy-account-widget.c:2004
-msgid "_Enabled"
-msgstr "Увім_кнено"
-
-#: ../libempathy-gtk/empathy-account-widget.c:2069
+#: ../libempathy-gtk/empathy-account-widget.c:1937
msgid "This account already exists on the server"
msgstr "Цей обліковий запис вже існує на сервері"
-#: ../libempathy-gtk/empathy-account-widget.c:2072
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "Create a new account on the server"
msgstr "Створити новий обліковий запис на сервері"
-#: ../libempathy-gtk/empathy-account-widget.c:2264
+#: ../libempathy-gtk/empathy-account-widget.c:2132
msgid "Ca_ncel"
msgstr "_Скасувати"
@@ -795,19 +784,19 @@ msgstr "_Скасувати"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2561
+#: ../libempathy-gtk/empathy-account-widget.c:2410
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s на %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2587
+#: ../libempathy-gtk/empathy-account-widget.c:2436
#, c-format
msgid "%s Account"
msgstr "Обліковий запис %s"
-#: ../libempathy-gtk/empathy-account-widget.c:2591
+#: ../libempathy-gtk/empathy-account-widget.c:2440
msgid "New account"
msgstr "Новий обліковий запис"
@@ -1235,58 +1224,58 @@ msgstr "Усі файли"
msgid "Click to enlarge"
msgstr "Клацніть для збільшення"
-#: ../libempathy-gtk/empathy-chat.c:652
+#: ../libempathy-gtk/empathy-chat.c:668
msgid "Failed to open private chat"
msgstr "Не вдалось відкрити приватну кімнату"
-#: ../libempathy-gtk/empathy-chat.c:717
+#: ../libempathy-gtk/empathy-chat.c:733
msgid "Topic not supported on this conversation"
msgstr "Тема не підтримується у цій бесіді"
-#: ../libempathy-gtk/empathy-chat.c:723
+#: ../libempathy-gtk/empathy-chat.c:739
msgid "You are not allowed to change the topic"
msgstr "У вас немає прав змінювати тему"
-#: ../libempathy-gtk/empathy-chat.c:906
+#: ../libempathy-gtk/empathy-chat.c:948
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: очистити всі повідомлення з поточної бесіди"
-#: ../libempathy-gtk/empathy-chat.c:909
+#: ../libempathy-gtk/empathy-chat.c:951
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <topic>: встановити тему поточної бесіди"
-#: ../libempathy-gtk/empathy-chat.c:912
+#: ../libempathy-gtk/empathy-chat.c:954
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <chat room ID>: приєднатися до нової кімнати розмов"
-#: ../libempathy-gtk/empathy-chat.c:915
+#: ../libempathy-gtk/empathy-chat.c:957
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <chat room ID>: приєднатися до нової кімнати розмов"
-#: ../libempathy-gtk/empathy-chat.c:920
+#: ../libempathy-gtk/empathy-chat.c:962
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
msgstr ""
"/part [<chat room ID>] [<reason>]: покинути кімнату бесіди, типово теперішню"
-#: ../libempathy-gtk/empathy-chat.c:925
+#: ../libempathy-gtk/empathy-chat.c:967
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <contact ID> [<message>]: відкрити приватну бесіду"
-#: ../libempathy-gtk/empathy-chat.c:928
+#: ../libempathy-gtk/empathy-chat.c:970
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <contact ID> <message>: відкрити приватну бесіду"
-#: ../libempathy-gtk/empathy-chat.c:931
+#: ../libempathy-gtk/empathy-chat.c:973
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <nickname>: змінити назву на поточному сервері"
-#: ../libempathy-gtk/empathy-chat.c:934
+#: ../libempathy-gtk/empathy-chat.c:976
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <message>: відправити повідомлення ACTION до поточної бесіди"
-#: ../libempathy-gtk/empathy-chat.c:937
+#: ../libempathy-gtk/empathy-chat.c:979
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1296,7 +1285,7 @@ msgstr ""
"для надсилання нового повідомлення, що починається з '/'. Наприклад: \"/"
"скажіть /join щоб приєднатись до нової кімнати розмов\""
-#: ../libempathy-gtk/empathy-chat.c:942
+#: ../libempathy-gtk/empathy-chat.c:984
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1304,98 +1293,113 @@ msgstr ""
"/help [<command>]: показати довідку. Якщо визначено <command>, показати "
"синтаксис команди."
-#: ../libempathy-gtk/empathy-chat.c:952
+#: ../libempathy-gtk/empathy-chat.c:994
#, c-format
msgid "Usage: %s"
msgstr "Використання: %s"
-#: ../libempathy-gtk/empathy-chat.c:991
+#: ../libempathy-gtk/empathy-chat.c:1033
msgid "Unknown command"
msgstr "Невідома команда"
-#: ../libempathy-gtk/empathy-chat.c:1117
+#: ../libempathy-gtk/empathy-chat.c:1159
msgid "Unknown command; see /help for the available commands"
msgstr "Невідома команда; для виводу списку доступних команд введіть /help"
-#: ../libempathy-gtk/empathy-chat.c:1254
+#. translators: error used when user doesn't have enough credit on his
+#. * account to send the message.
+#: ../libempathy-gtk/empathy-chat.c:1299
+msgid "insufficient balance to send message"
+msgstr "недостатня збалансованість для надсилання повідомлення"
+
+#: ../libempathy-gtk/empathy-chat.c:1301
+msgid "not capable"
+msgstr "не здатен"
+
+#: ../libempathy-gtk/empathy-chat.c:1308
msgid "offline"
msgstr "не у мережі"
-#: ../libempathy-gtk/empathy-chat.c:1257
+#: ../libempathy-gtk/empathy-chat.c:1311
msgid "invalid contact"
msgstr "неправильний контакт"
-#: ../libempathy-gtk/empathy-chat.c:1260
+#: ../libempathy-gtk/empathy-chat.c:1314
msgid "permission denied"
msgstr "відмовлено у доступі"
-#: ../libempathy-gtk/empathy-chat.c:1263
+#: ../libempathy-gtk/empathy-chat.c:1317
msgid "too long message"
msgstr "надто довге повідомлення"
-#: ../libempathy-gtk/empathy-chat.c:1266
+#: ../libempathy-gtk/empathy-chat.c:1320
msgid "not implemented"
msgstr "не реалізовано"
-#: ../libempathy-gtk/empathy-chat.c:1270
+#: ../libempathy-gtk/empathy-chat.c:1324
msgid "unknown"
msgstr "невідомо"
-#: ../libempathy-gtk/empathy-chat.c:1274
+#: ../libempathy-gtk/empathy-chat.c:1330
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Помилка при надсиланні повідомлення «%s»: %s"
-#: ../libempathy-gtk/empathy-chat.c:1335 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1334
+#, c-format
+msgid "Error sending message: %s"
+msgstr "Помилка надсилання повідомлення: %s"
+
+#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Тема:"
-#: ../libempathy-gtk/empathy-chat.c:1347
+#: ../libempathy-gtk/empathy-chat.c:1407
#, c-format
msgid "Topic set to: %s"
msgstr "Тема: %s"
-#: ../libempathy-gtk/empathy-chat.c:1349
+#: ../libempathy-gtk/empathy-chat.c:1409
msgid "No topic defined"
msgstr "Тему не встановлено"
-#: ../libempathy-gtk/empathy-chat.c:1848
+#: ../libempathy-gtk/empathy-chat.c:1916
msgid "(No Suggestions)"
msgstr "(Нема пропозицій)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1916
+#: ../libempathy-gtk/empathy-chat.c:1984
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Додати «%s» до словника"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1953
+#: ../libempathy-gtk/empathy-chat.c:2021
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Додати «%s» до словника %s"
-#: ../libempathy-gtk/empathy-chat.c:2010
+#: ../libempathy-gtk/empathy-chat.c:2078
msgid "Insert Smiley"
msgstr "Вставити посмішку"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2028
+#: ../libempathy-gtk/empathy-chat.c:2096
#: ../libempathy-gtk/empathy-ui-utils.c:1808
msgid "_Send"
msgstr "_Надіслати"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2063
+#: ../libempathy-gtk/empathy-chat.c:2131
msgid "_Spelling Suggestions"
msgstr "_Пропозиції з правопису"
-#: ../libempathy-gtk/empathy-chat.c:2152
+#: ../libempathy-gtk/empathy-chat.c:2220
msgid "Failed to retrieve recent logs"
msgstr "Не вдається отримати останні журнали"
-#: ../libempathy-gtk/empathy-chat.c:2263
+#: ../libempathy-gtk/empathy-chat.c:2331
#, c-format
msgid "%s has disconnected"
msgstr "%s від'єднано"
@@ -1403,12 +1407,12 @@ msgstr "%s від'єднано"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2270
+#: ../libempathy-gtk/empathy-chat.c:2338
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s був викинутий користувачем %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2273
+#: ../libempathy-gtk/empathy-chat.c:2341
#, c-format
msgid "%s was kicked"
msgstr "%s був викинутий"
@@ -1416,17 +1420,17 @@ msgstr "%s був викинутий"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2281
+#: ../libempathy-gtk/empathy-chat.c:2349
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s був заблокований користувачем %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2284
+#: ../libempathy-gtk/empathy-chat.c:2352
#, c-format
msgid "%s was banned"
msgstr "%s заблоковано"
-#: ../libempathy-gtk/empathy-chat.c:2288
+#: ../libempathy-gtk/empathy-chat.c:2356
#, c-format
msgid "%s has left the room"
msgstr "%s покинув кімнату"
@@ -1436,105 +1440,123 @@ msgstr "%s покинув кімнату"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2297
+#: ../libempathy-gtk/empathy-chat.c:2365
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2322
+#: ../libempathy-gtk/empathy-chat.c:2390
#, c-format
msgid "%s has joined the room"
msgstr "%s приєднався до бесіди"
-#: ../libempathy-gtk/empathy-chat.c:2347
+#: ../libempathy-gtk/empathy-chat.c:2415
#, c-format
msgid "%s is now known as %s"
msgstr "%s тепер відомий як %s"
-#: ../libempathy-gtk/empathy-chat.c:2486
-#: ../src/empathy-streamed-media-window.c:1949
-#: ../src/empathy-event-manager.c:1122
+#: ../libempathy-gtk/empathy-chat.c:2554
+#: ../src/empathy-streamed-media-window.c:1957
+#: ../src/empathy-event-manager.c:1116
msgid "Disconnected"
msgstr "Від'єднаний"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3116
+#: ../libempathy-gtk/empathy-chat.c:3202
msgid "Would you like to store this password?"
msgstr "Зберегти цей пароль?"
-#: ../libempathy-gtk/empathy-chat.c:3122
+#: ../libempathy-gtk/empathy-chat.c:3208
msgid "Remember"
msgstr "Запам'ятати"
-#: ../libempathy-gtk/empathy-chat.c:3132
+#: ../libempathy-gtk/empathy-chat.c:3218
msgid "Not now"
msgstr "Не зараз"
-#: ../libempathy-gtk/empathy-chat.c:3176
+#: ../libempathy-gtk/empathy-chat.c:3262
msgid "Retry"
msgstr "Повторити"
-#: ../libempathy-gtk/empathy-chat.c:3180
+#: ../libempathy-gtk/empathy-chat.c:3266
msgid "Wrong password; please try again:"
msgstr "Неправильний пароль; введіть пароль ще раз:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3297
+#: ../libempathy-gtk/empathy-chat.c:3383
msgid "This room is protected by a password:"
msgstr "Цю кімнату захищено паролем:"
-#: ../libempathy-gtk/empathy-chat.c:3324
+#: ../libempathy-gtk/empathy-chat.c:3410
msgid "Join"
msgstr "Увійти"
-#: ../libempathy-gtk/empathy-chat.c:3494 ../src/empathy-event-manager.c:1144
+#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1137
msgid "Connected"
msgstr "З'єднаний"
-#: ../libempathy-gtk/empathy-chat.c:3547
+#: ../libempathy-gtk/empathy-chat.c:3657
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Бесіда"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422
+#. Translators: this string is a something like
+#. * "Escher Cat (SMS)"
+#: ../libempathy-gtk/empathy-chat.c:3662
+#, c-format
+msgid "%s (SMS)"
+msgstr "%s (SMS)"
+
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:423
msgid "Unknown or invalid identifier"
msgstr "Невідомий або помилковий ідентифікатор"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:425
msgid "Contact blocking temporarily unavailable"
msgstr "Блокування контакту тимчасово недоступно "
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:427
msgid "Contact blocking unavailable"
msgstr "Блокування контакту недоступне"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:429
msgid "Permission Denied"
msgstr "Відмовлено у доступі"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:433
msgid "Could not block contact"
msgstr "Неможливо заблокувати контакт"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:702
msgid "Edit Blocked Contacts"
msgstr "Редагувати заблоковані контакти"
+#. Account and Identifier
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
+#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
+#: ../src/empathy-chatrooms-window.ui.h:1
+#: ../src/empathy-new-chatroom-dialog.ui.h:1
+msgid "Account:"
+msgstr "Обліковий запис:"
+
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:794
+#: ../libempathy-gtk/empathy-theme-adium.c:996
msgid "_Copy Link Address"
msgstr "_Копіювати адресу посилання"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:801
+#: ../libempathy-gtk/empathy-theme-adium.c:1003
msgid "_Open Link"
msgstr "_Відкрити посилання"
#. Translators: timestamp displayed between conversations in
#. * chat windows (strftime format string)
-#: ../libempathy-gtk/empathy-chat-text-view.c:420
+#: ../libempathy-gtk/empathy-chat-text-view.c:415
msgid "%A %B %d %Y"
msgstr "%A %B %d %Y"
@@ -1552,25 +1574,25 @@ msgstr "Особиста інформація"
msgid "New Contact"
msgstr "Новий контакт"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:532
-#: ../libempathy-gtk/empathy-individual-dialogs.c:198
+#: ../libempathy-gtk/empathy-contact-dialogs.c:533
+#: ../libempathy-gtk/empathy-individual-dialogs.c:199
#, c-format
msgid "Block %s?"
msgstr "Заблокувати %s?"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:537
-#: ../libempathy-gtk/empathy-individual-dialogs.c:239
+#: ../libempathy-gtk/empathy-contact-dialogs.c:538
+#: ../libempathy-gtk/empathy-individual-dialogs.c:247
#, c-format
msgid "Are you sure you want to block '%s' from contacting you again?"
msgstr "Блокувати «%s» з контактів знову?"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:542
-#: ../libempathy-gtk/empathy-individual-dialogs.c:261
+#: ../libempathy-gtk/empathy-contact-dialogs.c:543
+#: ../libempathy-gtk/empathy-individual-dialogs.c:269
msgid "_Block"
msgstr "За_блокувати"
-#: ../libempathy-gtk/empathy-contact-dialogs.c:552
-#: ../libempathy-gtk/empathy-individual-dialogs.c:270
+#: ../libempathy-gtk/empathy-contact-dialogs.c:559
+#: ../libempathy-gtk/empathy-individual-dialogs.c:278
msgid "_Report this contact as abusive"
msgid_plural "_Report these contacts as abusive"
msgstr[0] "_Звинуватити цей контакт у образі"
@@ -1597,122 +1619,122 @@ msgstr "Без групи"
msgid "Favorite People"
msgstr "Улюблені люди"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2001
-#: ../libempathy-gtk/empathy-individual-view.c:2328
+#: ../libempathy-gtk/empathy-contact-list-view.c:1987
+#: ../libempathy-gtk/empathy-individual-view.c:2386
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Вилучити групу «%s»?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2003
-#: ../libempathy-gtk/empathy-individual-view.c:2331
+#: ../libempathy-gtk/empathy-contact-list-view.c:1989
+#: ../libempathy-gtk/empathy-individual-view.c:2389
msgid "Removing group"
msgstr "Видалення групи"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2052
-#: ../libempathy-gtk/empathy-contact-list-view.c:2129
-#: ../libempathy-gtk/empathy-individual-view.c:2386
-#: ../libempathy-gtk/empathy-individual-view.c:2554
+#: ../libempathy-gtk/empathy-contact-list-view.c:2038
+#: ../libempathy-gtk/empathy-contact-list-view.c:2115
+#: ../libempathy-gtk/empathy-individual-view.c:2444
+#: ../libempathy-gtk/empathy-individual-view.c:2637
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "В_илучити"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2082
-#: ../libempathy-gtk/empathy-individual-view.c:2439
+#: ../libempathy-gtk/empathy-contact-list-view.c:2068
+#: ../libempathy-gtk/empathy-individual-view.c:2508
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Вилучити контакт «%s» з вашого списку?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2084
-#: ../libempathy-gtk/empathy-individual-view.c:2460
+#: ../libempathy-gtk/empathy-contact-list-view.c:2070
+#: ../libempathy-gtk/empathy-individual-view.c:2529
msgid "Removing contact"
msgstr "Видалення контакту"
#: ../libempathy-gtk/empathy-contact-menu.c:219
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
msgid "_Add Contact…"
msgstr "_Додати контакт…"
-#: ../libempathy-gtk/empathy-contact-menu.c:296
+#: ../libempathy-gtk/empathy-contact-menu.c:299
msgid "_Block Contact"
msgstr "За_блокувати контакт"
-#: ../libempathy-gtk/empathy-contact-menu.c:325
-#: ../libempathy-gtk/empathy-individual-menu.c:517
-#: ../src/empathy-main-window.ui.h:15
+#: ../libempathy-gtk/empathy-contact-menu.c:328
+#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_Розмова"
-#: ../libempathy-gtk/empathy-contact-menu.c:356
-#: ../libempathy-gtk/empathy-individual-menu.c:560
+#: ../libempathy-gtk/empathy-contact-menu.c:359
+#: ../libempathy-gtk/empathy-individual-menu.c:625
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Голосовий виклик"
-#: ../libempathy-gtk/empathy-contact-menu.c:387
-#: ../libempathy-gtk/empathy-individual-menu.c:602
+#: ../libempathy-gtk/empathy-contact-menu.c:390
+#: ../libempathy-gtk/empathy-individual-menu.c:667
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Відео виклик"
-#: ../libempathy-gtk/empathy-contact-menu.c:433
-#: ../libempathy-gtk/empathy-individual-menu.c:645
-#: ../src/empathy-main-window.ui.h:26
+#: ../libempathy-gtk/empathy-contact-menu.c:436
+#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "Переглянути _попередні бесіди"
-#: ../libempathy-gtk/empathy-contact-menu.c:455
-#: ../libempathy-gtk/empathy-individual-menu.c:686
+#: ../libempathy-gtk/empathy-contact-menu.c:458
+#: ../libempathy-gtk/empathy-individual-menu.c:751
msgid "Send File"
msgstr "Надіслати файл"
-#: ../libempathy-gtk/empathy-contact-menu.c:478
-#: ../libempathy-gtk/empathy-individual-menu.c:728
+#: ../libempathy-gtk/empathy-contact-menu.c:481
+#: ../libempathy-gtk/empathy-individual-menu.c:793
msgid "Share My Desktop"
msgstr "Оприлюднити мою стільницю"
-#: ../libempathy-gtk/empathy-contact-menu.c:518
-#: ../libempathy-gtk/empathy-contact-widget.c:1763
-#: ../libempathy-gtk/empathy-individual-menu.c:763
-#: ../libempathy-gtk/empathy-individual-widget.c:1372
+#: ../libempathy-gtk/empathy-contact-menu.c:521
+#: ../libempathy-gtk/empathy-contact-widget.c:1751
+#: ../libempathy-gtk/empathy-individual-menu.c:828
+#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "Улюблений"
-#: ../libempathy-gtk/empathy-contact-menu.c:547
-#: ../libempathy-gtk/empathy-individual-menu.c:791
+#: ../libempathy-gtk/empathy-contact-menu.c:550
+#: ../libempathy-gtk/empathy-individual-menu.c:856
msgid "Infor_mation"
msgstr "Інфор_мація"
-#: ../libempathy-gtk/empathy-contact-menu.c:593
+#: ../libempathy-gtk/empathy-contact-menu.c:596
msgctxt "Edit contact (contextual menu)"
msgid "_Edit"
msgstr "_Правка"
-#: ../libempathy-gtk/empathy-contact-menu.c:647
-#: ../libempathy-gtk/empathy-individual-menu.c:972
-#: ../src/empathy-chat-window.c:935
+#: ../libempathy-gtk/empathy-contact-menu.c:650
+#: ../libempathy-gtk/empathy-individual-menu.c:1037
+#: ../src/empathy-chat-window.c:986
msgid "Inviting you to this room"
msgstr "Запрошення до цієї кімнати"
-#: ../libempathy-gtk/empathy-contact-menu.c:678
-#: ../libempathy-gtk/empathy-individual-menu.c:1019
+#: ../libempathy-gtk/empathy-contact-menu.c:681
+#: ../libempathy-gtk/empathy-individual-menu.c:1084
msgid "_Invite to Chat Room"
msgstr "_Запросити до кімнати"
#. Title
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:513
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:514
msgid "Search contacts"
msgstr "Пошук контактів"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:543
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:544
msgid "Search: "
msgstr "Пошук:"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:601
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:602
msgid "_Add Contact"
msgstr "_Додати контакт"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:619
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:620
msgid "No contacts found"
msgstr "Не знайдено жодного контакту"
@@ -1865,33 +1887,33 @@ msgstr "Широта:"
msgid "Altitude:"
msgstr "Висота:"
-#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:888
+#: ../libempathy-gtk/empathy-contact-widget.c:861
+#: ../libempathy-gtk/empathy-contact-widget.c:876
#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "Місцевість"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:890
-#: ../libempathy-gtk/empathy-individual-widget.c:635
+#: ../libempathy-gtk/empathy-contact-widget.c:878
+#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:942
-#: ../libempathy-gtk/empathy-individual-widget.c:684
+#: ../libempathy-gtk/empathy-contact-widget.c:930
+#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "%B %e, %Y у %R UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1024
-#: ../libempathy-gtk/empathy-individual-widget.c:919
+#: ../libempathy-gtk/empathy-contact-widget.c:1012
+#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "Зберегти аватар"
-#: ../libempathy-gtk/empathy-contact-widget.c:1080
-#: ../libempathy-gtk/empathy-individual-widget.c:977
+#: ../libempathy-gtk/empathy-contact-widget.c:1068
+#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "Неможливо зберегти аватар"
@@ -1901,7 +1923,7 @@ msgstr "<b>Місцевість</b> у (дата)\t"
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1307
+#: ../libempathy-gtk/empathy-individual-widget.c:1305
msgid "Alias:"
msgstr "Псевдонім:"
@@ -1921,7 +1943,7 @@ msgstr "Подробиці про співрозмовника"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1511
+#: ../libempathy-gtk/empathy-individual-widget.c:1509
msgid "Identifier:"
msgstr "Ідентифікатор:"
@@ -1960,18 +1982,18 @@ msgid "Select"
msgstr "Вибрати"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1436
+#: ../src/empathy-main-window.c:1770
msgid "Group"
msgstr "Група"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:244
+#: ../libempathy-gtk/empathy-individual-dialogs.c:252
msgid "The following identity will be blocked:"
msgid_plural "The following identities will be blocked:"
msgstr[0] "Такий ідентифікатор буде заблоковано:"
msgstr[1] "Такі ідентифікатори буде заборонено:"
msgstr[2] "Такі ідентифікатори буде заборонено:"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:251
+#: ../libempathy-gtk/empathy-individual-dialogs.c:259
msgid "The following identity can not be blocked:"
msgid_plural "The following identities can not be blocked:"
msgstr[0] "Такий ідентифікатор неможливо заборонити:"
@@ -2003,23 +2025,29 @@ msgstr "Контакти вибрані в списку зліва буде сп
msgid "%s (%s)"
msgstr "%s (%s)"
-#: ../libempathy-gtk/empathy-individual-menu.c:839
+#. add an SMS button
+#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-new-message-dialog.c:248
+msgid "_SMS"
+msgstr "_SMS"
+
+#: ../libempathy-gtk/empathy-individual-menu.c:904
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "_Редагувати"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:865
+#: ../libempathy-gtk/empathy-individual-menu.c:930
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_Сполучити контакт…"
-#: ../libempathy-gtk/empathy-individual-view.c:2293
+#: ../libempathy-gtk/empathy-individual-view.c:2351
msgid "Delete and _Block"
msgstr "Вилучити і за_блокувати"
-#: ../libempathy-gtk/empathy-individual-view.c:2448
+#: ../libempathy-gtk/empathy-individual-view.c:2517
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2028,7 +2056,7 @@ msgstr ""
"Вилучити сполучений контакт «%s»? Зауважте, це вилучить усі контакти, які "
"складають список цього сполученого контакту."
-#: ../libempathy-gtk/empathy-individual-widget.c:1652
+#: ../libempathy-gtk/empathy-individual-widget.c:1650
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2150,12 +2178,12 @@ msgid "Contact ID:"
msgstr "Ідентифікатор контакту:"
#. add chat button
-#: ../libempathy-gtk/empathy-new-message-dialog.c:171
+#: ../libempathy-gtk/empathy-new-message-dialog.c:258
msgid "C_hat"
msgstr "_Розмова"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-message-dialog.c:181
+#: ../libempathy-gtk/empathy-new-message-dialog.c:277
msgid "New Conversation"
msgstr "Нова бесіда"
@@ -2297,19 +2325,23 @@ msgstr "Зберегти _новий стан"
msgid "Saved Status Messages"
msgstr "Збережений стан"
-#: ../libempathy-gtk/empathy-theme-manager.c:67
+#: ../libempathy-gtk/empathy-theme-adium.c:1462
+msgid "Normal"
+msgstr "Звичайна"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "Класична"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:69
msgid "Simple"
msgstr "Проста"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:70
msgid "Clean"
msgstr "Ясна"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:71
msgid "Blue"
msgstr "Блакитна"
@@ -2698,7 +2730,7 @@ msgstr ""
"Правка."
#: ../src/empathy-account-assistant.c:220
-#: ../src/empathy-account-assistant.c:1268
+#: ../src/empathy-account-assistant.c:1271
msgid "An error occurred"
msgstr "Виникла помилка"
@@ -2762,17 +2794,17 @@ msgstr "Ні, я просто хочу бачити людей, які у онл
msgid "Select the accounts you want to import:"
msgstr "Виберіть обліковий запис для імпорту:"
-#: ../src/empathy-account-assistant.c:810
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-account-assistant.c:813
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "Yes"
msgstr "Так"
-#: ../src/empathy-account-assistant.c:817
+#: ../src/empathy-account-assistant.c:820
msgid "No, that's all for now"
msgstr "Ні, наразі досить"
-#: ../src/empathy-account-assistant.c:1082
+#: ../src/empathy-account-assistant.c:1085
msgid ""
"Empathy can automatically discover and chat with the people connected on the "
"same network as you. If you want to use this feature, please check that the "
@@ -2784,16 +2816,16 @@ msgstr ""
"інформація є коректною. Ви можете змінити цю інформацію пізніше або вимкнути "
"цю можливість, використовуючи діалогове вікно «Облікові записи»."
-#: ../src/empathy-account-assistant.c:1088
-#: ../src/empathy-account-assistant.c:1144
+#: ../src/empathy-account-assistant.c:1091
+#: ../src/empathy-account-assistant.c:1147
msgid "Edit->Accounts"
msgstr "Pvsyb->Облікові записи"
-#: ../src/empathy-account-assistant.c:1104
+#: ../src/empathy-account-assistant.c:1107
msgid "I do _not want to enable this feature for now"
msgstr "Ні, я _не хочу зараз вмикати цю функцію"
-#: ../src/empathy-account-assistant.c:1140
+#: ../src/empathy-account-assistant.c:1143
msgid ""
"You won't be able to chat with people connected to your local network, as "
"telepathy-salut is not installed. If you want to enable this feature, please "
@@ -2805,23 +2837,23 @@ msgstr ""
"встановіть пакет telepathy-salut та створіть обліковий запис «Люди поблизу» "
"у діалоговому вікні «Облікові записи»"
-#: ../src/empathy-account-assistant.c:1146
+#: ../src/empathy-account-assistant.c:1149
msgid "telepathy-salut not installed"
msgstr "не встановлено telepathy-salut"
-#: ../src/empathy-account-assistant.c:1192
+#: ../src/empathy-account-assistant.c:1195
msgid "Messaging and VoIP Accounts Assistant"
msgstr "Облікові записи обміну повідомленнями та VoIP"
-#: ../src/empathy-account-assistant.c:1226
+#: ../src/empathy-account-assistant.c:1229
msgid "Welcome to Empathy"
msgstr "Ласкаво просило до Empathy"
-#: ../src/empathy-account-assistant.c:1235
+#: ../src/empathy-account-assistant.c:1238
msgid "Import your existing accounts"
msgstr "Імпортувати наявні облікові записи"
-#: ../src/empathy-account-assistant.c:1253
+#: ../src/empathy-account-assistant.c:1256
msgid "Please enter personal details"
msgstr "Введіть персональну інформацію"
@@ -2838,34 +2870,34 @@ msgstr "Є незбережені зміни у вашому обліковом
msgid "Your new account has not been saved yet."
msgstr "Новий обліковий рахунок ще не було збережено."
-#: ../src/empathy-accounts-dialog.c:286
+#: ../src/empathy-accounts-dialog.c:345
#: ../src/empathy-streamed-media-window.c:809
msgid "Connecting…"
msgstr "З'єднання…"
-#: ../src/empathy-accounts-dialog.c:327
+#: ../src/empathy-accounts-dialog.c:386
#, c-format
msgid "Offline — %s"
msgstr "Поза мережею — %s"
-#: ../src/empathy-accounts-dialog.c:339
+#: ../src/empathy-accounts-dialog.c:398
#, c-format
msgid "Disconnected — %s"
msgstr "Від'єднаний — %s"
-#: ../src/empathy-accounts-dialog.c:350
+#: ../src/empathy-accounts-dialog.c:409
msgid "Offline — No Network Connection"
msgstr "Не у мережі — Немає з'єднання з мережею"
-#: ../src/empathy-accounts-dialog.c:357
+#: ../src/empathy-accounts-dialog.c:416
msgid "Unknown Status"
msgstr "Невідомий статус"
-#: ../src/empathy-accounts-dialog.c:369
+#: ../src/empathy-accounts-dialog.c:428
msgid "Offline — Account Disabled"
msgstr "Не у мережі — Обліковий запис вимкнено"
-#: ../src/empathy-accounts-dialog.c:772
+#: ../src/empathy-accounts-dialog.c:831
msgid ""
"You are about to create a new account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2873,16 +2905,16 @@ msgstr ""
"Ви намагаєтесь створити новий обліковий рахунок, що призведе до\n"
"відкидання змін. Дійсно хочете продовжити?"
-#: ../src/empathy-accounts-dialog.c:1133
+#: ../src/empathy-accounts-dialog.c:1192
#, c-format
msgid "Do you want to remove %s from your computer?"
msgstr "Вилучити «%s» з комп'ютера?"
-#: ../src/empathy-accounts-dialog.c:1137
+#: ../src/empathy-accounts-dialog.c:1196
msgid "This will not remove your account on the server."
msgstr "Це не призведе до видалення облікового запису на сервері."
-#: ../src/empathy-accounts-dialog.c:1375
+#: ../src/empathy-accounts-dialog.c:1432
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2891,15 +2923,15 @@ msgstr ""
"відкидання змін. Ви дійсно хочете продовжити?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1571
+#: ../src/empathy-accounts-dialog.c:1643
msgid "_Enable"
msgstr "_Увімкнено"
-#: ../src/empathy-accounts-dialog.c:1572
+#: ../src/empathy-accounts-dialog.c:1644
msgid "_Disable"
msgstr "_Вимкнено"
-#: ../src/empathy-accounts-dialog.c:2086
+#: ../src/empathy-accounts-dialog.c:2154
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2935,11 +2967,11 @@ msgstr "_Додати…"
msgid "_Import…"
msgstr "_Імпорт…"
-#: ../src/empathy-auth-client.c:246
+#: ../src/empathy-auth-client.c:249
msgid " - Empathy authentication client"
msgstr " — клієнт автентифікації Empathy"
-#: ../src/empathy-auth-client.c:262
+#: ../src/empathy-auth-client.c:265
msgid "Empathy authentication client"
msgstr "Клієнт аутентифікація Empathy"
@@ -3024,17 +3056,37 @@ msgstr "Адреса IP сервера ретрансляції"
msgid "The IP address of the multicast group"
msgstr "Адреса IP групової трансляції"
+#: ../src/empathy-streamed-media-window.c:1906
+msgctxt "encoding video codec"
+msgid "Unknown"
+msgstr "Невідомо"
+
+#: ../src/empathy-streamed-media-window.c:1909
+msgctxt "encoding audio codec"
+msgid "Unknown"
+msgstr "Невідомо"
+
+#: ../src/empathy-streamed-media-window.c:1912
+msgctxt "decoding video codec"
+msgid "Unknown"
+msgstr "Невідомо"
+
+#: ../src/empathy-streamed-media-window.c:1915
+msgctxt "decoding audio codec"
+msgid "Unknown"
+msgstr "Невідомо"
+
#. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-streamed-media-window.c:2266
+#: ../src/empathy-streamed-media-window.c:2274
#, c-format
msgid "Connected — %d:%02dm"
msgstr "З'єднання — %d:%02dm "
-#: ../src/empathy-streamed-media-window.c:2327
+#: ../src/empathy-streamed-media-window.c:2335
msgid "Technical Details"
msgstr "Технічні подробиці"
-#: ../src/empathy-streamed-media-window.c:2365
+#: ../src/empathy-streamed-media-window.c:2373
#, c-format
msgid ""
"%s's software does not understand any of the audio formats supported by your "
@@ -3043,7 +3095,7 @@ msgstr ""
"Програмне забезпечення %s не розуміє формати звуку, що підтримуються вашим "
"комп'ютером"
-#: ../src/empathy-streamed-media-window.c:2370
+#: ../src/empathy-streamed-media-window.c:2378
#, c-format
msgid ""
"%s's software does not understand any of the video formats supported by your "
@@ -3052,7 +3104,7 @@ msgstr ""
"Програмне забезпечення %s не розуміє відеоформати, що підтримуються вашим "
"комп'ютером"
-#: ../src/empathy-streamed-media-window.c:2376
+#: ../src/empathy-streamed-media-window.c:2384
#, c-format
msgid ""
"Can't establish a connection to %s. One of you might be on a network that "
@@ -3061,25 +3113,25 @@ msgstr ""
"Не вдається встановити з'єднання з %s. Один з вас може знаходитися у мережі, "
"яка не підтримує прямі з'єднання."
-#: ../src/empathy-streamed-media-window.c:2382
+#: ../src/empathy-streamed-media-window.c:2390
msgid "There was a failure on the network"
msgstr "Помилка мережі"
-#: ../src/empathy-streamed-media-window.c:2386
+#: ../src/empathy-streamed-media-window.c:2394
msgid ""
"The audio formats necessary for this call are not installed on your computer"
msgstr ""
"Формати аудіо, що потрібні для цього виклику, не встановлено на вашому "
"комп'ютері"
-#: ../src/empathy-streamed-media-window.c:2389
+#: ../src/empathy-streamed-media-window.c:2397
msgid ""
"The video formats necessary for this call are not installed on your computer"
msgstr ""
"Відеоформати, що потрібні для цього виклику, не встановлено на вашому "
"комп'ютері"
-#: ../src/empathy-streamed-media-window.c:2399
+#: ../src/empathy-streamed-media-window.c:2407
#, c-format
msgid ""
"Something unexpected happened in a Telepathy component. Please <a href=\"%s"
@@ -3090,19 +3142,19 @@ msgstr ""
"помилку</a> та прикріпіть журнали, зібрані з вікна налагодження у меню "
"«Довідка»."
-#: ../src/empathy-streamed-media-window.c:2407
+#: ../src/empathy-streamed-media-window.c:2415
msgid "There was a failure in the call engine"
msgstr "Помилка у механізмі виклику"
-#: ../src/empathy-streamed-media-window.c:2410
+#: ../src/empathy-streamed-media-window.c:2418
msgid "The end of the stream was reached"
msgstr "Досягнуто кінця потоку"
-#: ../src/empathy-streamed-media-window.c:2450
+#: ../src/empathy-streamed-media-window.c:2458
msgid "Can't establish audio stream"
msgstr "Не вдається встановити аудіопотік"
-#: ../src/empathy-streamed-media-window.c:2460
+#: ../src/empathy-streamed-media-window.c:2468
msgid "Can't establish video stream"
msgstr "Не вдається встановити відеопотік"
@@ -3174,6 +3226,10 @@ msgstr "Надіслати звук"
msgid "Toggle audio transmission"
msgstr "Вимкнути передачу звуку"
+#: ../src/empathy-call-window.ui.h:18
+msgid "Unknown"
+msgstr "Невідомо"
+
#: ../src/empathy-call-window.ui.h:19
msgid "V_ideo"
msgstr "_Відео"
@@ -3198,11 +3254,11 @@ msgstr "Попередній перегляд відео"
msgid "_Call"
msgstr "_Виклик"
-#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29
+#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:30
msgid "_View"
msgstr "_Перегляд"
-#: ../src/empathy-chat-window.c:474 ../src/empathy-chat-window.c:494
+#: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500
#, c-format
msgid "%s (%d unread)"
msgid_plural "%s (%d unread)"
@@ -3210,7 +3266,7 @@ msgstr[0] "%s (%d непрочитане)"
msgstr[1] "%s (%d непрочитаних)"
msgstr[2] "%s (%d непрочитані)"
-#: ../src/empathy-chat-window.c:486
+#: ../src/empathy-chat-window.c:492
#, c-format
msgid "%s (and %u other)"
msgid_plural "%s (and %u others)"
@@ -3218,7 +3274,7 @@ msgstr[0] "%s (та %u інше)"
msgstr[1] "%s (та %u інших)"
msgstr[2] "%s (та %u інших)"
-#: ../src/empathy-chat-window.c:502
+#: ../src/empathy-chat-window.c:508
#, c-format
msgid "%s (%d unread from others)"
msgid_plural "%s (%d unread from others)"
@@ -3226,7 +3282,7 @@ msgstr[0] "%s (%d непрочитане від інших)"
msgstr[1] "%s (%d непрочитаних від інших)"
msgstr[2] "%s (%d непрочитаний від інших)"
-#: ../src/empathy-chat-window.c:511
+#: ../src/empathy-chat-window.c:517
#, c-format
msgid "%s (%d unread from all)"
msgid_plural "%s (%d unread from all)"
@@ -3234,7 +3290,19 @@ msgstr[0] "%s (%d непрочитане від усіх)"
msgstr[1] "%s (%d непрочитаних від усіх)"
msgstr[2] "%s (%d непрочитаний від усіх)"
-#: ../src/empathy-chat-window.c:721
+#: ../src/empathy-chat-window.c:732
+msgid "SMS:"
+msgstr "SMS:"
+
+#: ../src/empathy-chat-window.c:742
+#, c-format
+msgid "Sending %d message"
+msgid_plural "Sending %d messages"
+msgstr[0] "Надсилання %d повідомлення"
+msgstr[1] "Надсилання %d повідомлень"
+msgstr[2] "Надсилання %d повідомлень"
+
+#: ../src/empathy-chat-window.c:764
msgid "Typing a message."
msgstr "Набирає повідомлення."
@@ -3270,7 +3338,7 @@ msgstr "Перемістити закладку _праворуч"
msgid "Notify for All Messages"
msgstr "Сповіщати на всі повідомлення"
-#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:18
msgid "_Contents"
msgstr "_Зміст"
@@ -3282,7 +3350,7 @@ msgstr "_Бесіда"
msgid "_Detach Tab"
msgstr "_Відокремити закладку"
-#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19
+#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20
msgid "_Edit"
msgstr "З_міни"
@@ -3290,7 +3358,7 @@ msgstr "З_міни"
msgid "_Favorite Chat Room"
msgstr "_Улюблена кімната"
-#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:21
+#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22
msgid "_Help"
msgstr "_Довідка"
@@ -3330,90 +3398,90 @@ msgstr "Автоматичне з'єднання"
msgid "Manage Favorite Rooms"
msgstr "Керування улюбленими кімнатами"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming video call"
msgstr "Вхідний відео виклик"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:504
msgid "Incoming call"
msgstr "Вхідний виклик"
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:508
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "Відеодзвінок від %s, відповісти?"
-#: ../src/empathy-event-manager.c:512
+#: ../src/empathy-event-manager.c:509
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "Дзвінок від %s, хочете відповісти?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:660
+#: ../src/empathy-event-manager.c:512 ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming call from %s"
msgstr "Вхідний виклик від %s"
-#: ../src/empathy-event-manager.c:540
+#: ../src/empathy-event-manager.c:537
msgid "_Reject"
msgstr "Від_хилити"
-#: ../src/empathy-event-manager.c:546
+#: ../src/empathy-event-manager.c:543
msgid "_Answer"
msgstr "_Відповісти"
-#: ../src/empathy-event-manager.c:660
+#: ../src/empathy-event-manager.c:661
#, c-format
msgid "Incoming video call from %s"
msgstr "Вхідний відеовиклик від %s"
-#: ../src/empathy-event-manager.c:737
+#: ../src/empathy-event-manager.c:734
msgid "Room invitation"
msgstr "Кімната запрошення"
-#: ../src/empathy-event-manager.c:739
+#: ../src/empathy-event-manager.c:736
#, c-format
msgid "Invitation to join %s"
msgstr "Запрошення приєднатись до %s"
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:743
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s запрошує Вас ввійти у %s"
-#: ../src/empathy-event-manager.c:754
+#: ../src/empathy-event-manager.c:751
msgid "_Decline"
msgstr "Від_хилити"
-#: ../src/empathy-event-manager.c:759
+#: ../src/empathy-event-manager.c:756
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Увійти"
-#: ../src/empathy-event-manager.c:786
+#: ../src/empathy-event-manager.c:783
#, c-format
msgid "%s invited you to join %s"
msgstr "%s запросив Вас ввійти у %s"
-#: ../src/empathy-event-manager.c:792
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "You have been invited to join %s"
msgstr "Вас запрошено приєднатись до %s"
-#: ../src/empathy-event-manager.c:843
+#: ../src/empathy-event-manager.c:840
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Вхідний передача файлу від %s"
-#: ../src/empathy-event-manager.c:1013 ../src/empathy-main-window.c:370
+#: ../src/empathy-event-manager.c:1010 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "Потрібно пароль"
-#: ../src/empathy-event-manager.c:1069
+#: ../src/empathy-event-manager.c:1066
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s потребує дозволу, щоб знати, коли ви в мережі"
-#: ../src/empathy-event-manager.c:1073
+#: ../src/empathy-event-manager.c:1070
#, c-format
msgid ""
"\n"
@@ -3423,105 +3491,105 @@ msgstr ""
"Повідомлення: %s"
#. Translators: time left, when it is more than one hour
-#: ../src/empathy-ft-manager.c:99
+#: ../src/empathy-ft-manager.c:100
#, c-format
msgid "%u:%02u.%02u"
msgstr "%u:%02u.%02u"
#. Translators: time left, when is is less than one hour
-#: ../src/empathy-ft-manager.c:102
+#: ../src/empathy-ft-manager.c:103
#, c-format
msgid "%02u.%02u"
msgstr "%02u.%02u"
-#: ../src/empathy-ft-manager.c:178
+#: ../src/empathy-ft-manager.c:179
msgctxt "file transfer percent"
msgid "Unknown"
msgstr "Невідомо"
-#: ../src/empathy-ft-manager.c:273
+#: ../src/empathy-ft-manager.c:274
#, c-format
msgid "%s of %s at %s/s"
msgstr "%s з %s у %s/с"
-#: ../src/empathy-ft-manager.c:274
+#: ../src/empathy-ft-manager.c:275
#, c-format
msgid "%s of %s"
msgstr "%s з %s"
#. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:305
+#: ../src/empathy-ft-manager.c:306
#, c-format
msgid "Receiving \"%s\" from %s"
msgstr "Приймається \"%s\" від %s"
#. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:308
+#: ../src/empathy-ft-manager.c:309
#, c-format
msgid "Sending \"%s\" to %s"
msgstr "Відправляється \"%s\" до %s"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:338
+#: ../src/empathy-ft-manager.c:339
#, c-format
msgid "Error receiving \"%s\" from %s"
msgstr "Помилка приймання \"%s\" від %s"
-#: ../src/empathy-ft-manager.c:341
+#: ../src/empathy-ft-manager.c:342
msgid "Error receiving a file"
msgstr "Помилка прийому файлу"
-#: ../src/empathy-ft-manager.c:346
+#: ../src/empathy-ft-manager.c:347
#, c-format
msgid "Error sending \"%s\" to %s"
msgstr "Помилка відправлення \"%s\" до %s"
-#: ../src/empathy-ft-manager.c:349
+#: ../src/empathy-ft-manager.c:350
msgid "Error sending a file"
msgstr "Помилка відправлення файлу"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:488
+#: ../src/empathy-ft-manager.c:489
#, c-format
msgid "\"%s\" received from %s"
msgstr "\"%s\" надійшов від %s"
#. translators: first %s is filename, second %s
#. * is the contact name
-#: ../src/empathy-ft-manager.c:493
+#: ../src/empathy-ft-manager.c:494
#, c-format
msgid "\"%s\" sent to %s"
msgstr "\"%s\" надіслано до %s"
-#: ../src/empathy-ft-manager.c:496
+#: ../src/empathy-ft-manager.c:497
msgid "File transfer completed"
msgstr "Передачу файлу завершено"
-#: ../src/empathy-ft-manager.c:615 ../src/empathy-ft-manager.c:782
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780
msgid "Waiting for the other participant's response"
msgstr "Почекати, поки інший учасник відповість"
-#: ../src/empathy-ft-manager.c:641 ../src/empathy-ft-manager.c:679
+#: ../src/empathy-ft-manager.c:642 ../src/empathy-ft-manager.c:680
#, c-format
msgid "Checking integrity of \"%s\""
msgstr "Перевірка цілісності \"%s\""
-#: ../src/empathy-ft-manager.c:644 ../src/empathy-ft-manager.c:682
+#: ../src/empathy-ft-manager.c:645 ../src/empathy-ft-manager.c:683
#, c-format
msgid "Hashing \"%s\""
msgstr "Хешування \"%s\""
-#: ../src/empathy-ft-manager.c:1016
+#: ../src/empathy-ft-manager.c:1026
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1028
+#: ../src/empathy-ft-manager.c:1038
msgid "File"
msgstr "Файл"
-#: ../src/empathy-ft-manager.c:1050
+#: ../src/empathy-ft-manager.c:1060
msgid "Remaining"
msgstr "Лишаємось"
@@ -3558,39 +3626,55 @@ msgstr "Протокол:"
msgid "Source"
msgstr "Джерело"
-#: ../src/empathy-main-window.c:387
+#: ../src/empathy-main-window.c:394
msgid "Provide Password"
msgstr "Вкажіть пароль"
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:400
msgid "Disconnect"
msgstr "Від'єднати"
-#: ../src/empathy-main-window.c:533
+#: ../src/empathy-main-window.c:540
msgid "No match found"
msgstr "Збігів не знайдено"
-#: ../src/empathy-main-window.c:688
+#: ../src/empathy-main-window.c:695
msgid "Reconnect"
msgstr "Перез'єднати"
-#: ../src/empathy-main-window.c:694
+#: ../src/empathy-main-window.c:701
msgid "Edit Account"
msgstr "Редагування облікового запису"
-#: ../src/empathy-main-window.c:700
+#: ../src/empathy-main-window.c:707
msgid "Close"
msgstr "Закрити"
-#: ../src/empathy-main-window.c:1418
+#. Translators: this string will be something like:
+#. * Top up My Account ($1.23)..."
+#: ../src/empathy-main-window.c:849
+#, c-format
+msgid "Top up %s (%s)..."
+msgstr "Поповнити %s (%s)…"
+
+#: ../src/empathy-main-window.c:924
+msgid "Top up account credit"
+msgstr "Поповнити рахунок"
+
+#. top up button
+#: ../src/empathy-main-window.c:999
+msgid "Top Up..."
+msgstr "Поповнити…"
+
+#: ../src/empathy-main-window.c:1752
msgid "Contact"
msgstr "Співрозмовник"
-#: ../src/empathy-main-window.c:1765
+#: ../src/empathy-main-window.c:2101
msgid "Contact List"
msgstr "Список співрозмовників"
-#: ../src/empathy-main-window.c:1881
+#: ../src/empathy-main-window.c:2219
msgid "Show and edit accounts"
msgstr "Показати та редагувати облікові записи"
@@ -3599,86 +3683,90 @@ msgid "Contacts on a _Map"
msgstr "Співрозмовники на _карті"
#: ../src/empathy-main-window.ui.h:2
+msgid "Credit Balance"
+msgstr "Залишок"
+
+#: ../src/empathy-main-window.ui.h:3
msgid "Find in Contact _List"
msgstr "Знайти у _списку контактів"
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
msgid "Join _Favorites"
msgstr "Підключити _близьких"
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
msgid "Manage Favorites"
msgstr "Налаштувати _близьких"
-#: ../src/empathy-main-window.ui.h:5
+#: ../src/empathy-main-window.ui.h:6
msgid "N_ormal Size"
msgstr "З_вичайний розмір"
-#: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
+#: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
msgid "New _Call…"
msgstr "Новий _виклик…"
-#: ../src/empathy-main-window.ui.h:7
+#: ../src/empathy-main-window.ui.h:8
msgid "Normal Size With _Avatars"
msgstr "Звичайний розмір _аватарів"
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:9
msgid "P_references"
msgstr "_Параметри"
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:10
msgid "Show P_rotocols"
msgstr "Показати _протокол:"
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:11
msgid "Sort by _Name"
msgstr "Сортувати за _іменем"
-#: ../src/empathy-main-window.ui.h:11
+#: ../src/empathy-main-window.ui.h:12
msgid "Sort by _Status"
msgstr "Впорядкувати за с_татусом"
-#: ../src/empathy-main-window.ui.h:12
+#: ../src/empathy-main-window.ui.h:13
msgid "_Accounts"
msgstr "_Облікові записи"
-#: ../src/empathy-main-window.ui.h:14
+#: ../src/empathy-main-window.ui.h:15
msgid "_Blocked Contacts"
msgstr "За_блоковані контакти"
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:17
msgid "_Compact Size"
msgstr "_Компактний розмір"
-#: ../src/empathy-main-window.ui.h:18
+#: ../src/empathy-main-window.ui.h:19
msgid "_Debug"
msgstr "_Налагодження"
-#: ../src/empathy-main-window.ui.h:20
+#: ../src/empathy-main-window.ui.h:21
msgid "_File Transfers"
msgstr "Передача _файлів"
-#: ../src/empathy-main-window.ui.h:22
+#: ../src/empathy-main-window.ui.h:23
msgid "_Join…"
msgstr "_Увійти…"
-#: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
+#: ../src/empathy-main-window.ui.h:24 ../src/empathy-status-icon.ui.h:3
msgid "_New Conversation…"
msgstr "_Нова бесіда…"
-#: ../src/empathy-main-window.ui.h:24
+#: ../src/empathy-main-window.ui.h:25
msgid "_Offline Contacts"
msgstr "_Показувати відсутніх"
-#: ../src/empathy-main-window.ui.h:25
+#: ../src/empathy-main-window.ui.h:26
msgid "_Personal Information"
msgstr "_Особиста інформація"
-#: ../src/empathy-main-window.ui.h:27
+#: ../src/empathy-main-window.ui.h:28
msgid "_Room"
msgstr "_Кімната"
-#: ../src/empathy-main-window.ui.h:28
+#: ../src/empathy-main-window.ui.h:29
msgid "_Search for Contacts…"
msgstr "_Пошук для контактів…"
@@ -3692,7 +3780,7 @@ msgstr "Учасники"
#. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
#. yes/no, yes/no and a number.
-#: ../src/empathy-new-chatroom-dialog.c:560
+#: ../src/empathy-new-chatroom-dialog.c:553
#, c-format
msgid ""
"%s\n"
@@ -3705,16 +3793,16 @@ msgstr ""
"Вимога паролю: %s\n"
"Учасники: %s"
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "No"
msgstr "Ні"
-#: ../src/empathy-new-chatroom-dialog.c:591
+#: ../src/empathy-new-chatroom-dialog.c:584
msgid "Could not start room listing"
msgstr "Неможливо почати перелічування кімнат"
-#: ../src/empathy-new-chatroom-dialog.c:601
+#: ../src/empathy-new-chatroom-dialog.c:594
msgid "Could not stop room listing"
msgstr "Неможливо зупинити перелічування кімнат"
@@ -3749,39 +3837,79 @@ msgstr "Список бесід"
msgid "_Room:"
msgstr "_Кімната:"
-#: ../src/empathy-preferences.c:139
+#: ../src/empathy-preferences.c:147
msgid "Message received"
msgstr "Надійшло повідомлення"
-#: ../src/empathy-preferences.c:140
+#: ../src/empathy-preferences.c:148
msgid "Message sent"
msgstr "Повідомлення надіслано"
-#: ../src/empathy-preferences.c:141
+#: ../src/empathy-preferences.c:149
msgid "New conversation"
msgstr "Нова бесіда"
-#: ../src/empathy-preferences.c:142
+#: ../src/empathy-preferences.c:150
msgid "Contact goes online"
msgstr "Співрозмовник входить у мережу"
-#: ../src/empathy-preferences.c:143
+#: ../src/empathy-preferences.c:151
msgid "Contact goes offline"
msgstr "Співрозмовник виходить з мережі"
-#: ../src/empathy-preferences.c:144
+#: ../src/empathy-preferences.c:152
msgid "Account connected"
msgstr "Обліковий запис підключено"
-#: ../src/empathy-preferences.c:145
+#: ../src/empathy-preferences.c:153
msgid "Account disconnected"
msgstr "Обліковий запис відключено"
-#: ../src/empathy-preferences.c:446
+#: ../src/empathy-preferences.c:450
msgid "Language"
msgstr "Мова"
-#: ../src/empathy-preferences.c:875
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:700
+msgid "Juliet"
+msgstr "Джульєтта"
+
+#. translators: Contact name for the chat theme preview
+#: ../src/empathy-preferences.c:707
+msgid "Romeo"
+msgstr "Ромео"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:713
+msgid "O Romeo, Romeo, wherefore art thou Romeo?"
+msgstr "Ромео! О, навіщо ти Ромео?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:716
+msgid "Deny thy father and refuse thy name;"
+msgstr "Зміни своє ім'я, зречися батька;"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:719
+msgid "Or if thou wilt not, be but sworn my love"
+msgstr "Як ні, то присягни мені в коханні,"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:722
+msgid "And I'll no longer be a Capulet."
+msgstr "І більше я не буду Капулетті."
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:725
+msgid "Shall I hear more, or shall I speak at this?"
+msgstr "Послухать — чи відповісти відразу?"
+
+#. translators: Quote from Romeo & Julier, for chat theme preview
+#: ../src/empathy-preferences.c:728
+msgid "Juliet has disconnected"
+msgstr "Джульєтта від'єдналась."
+
+#: ../src/empathy-preferences.c:962
msgid "Preferences"
msgstr "Параметри"
@@ -3883,43 +4011,47 @@ msgstr ""
"small>"
#: ../src/empathy-preferences.ui.h:24
+msgid "Theme Variant:"
+msgstr "Варіант теми:"
+
+#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "Теми"
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "_Автоматично з'єднуватись при запуску"
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
msgid "_Cellphone"
msgstr "_Мобільний телефон"
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
msgid "_Enable bubble notifications"
msgstr "_Ввімкнути контекстні сповіщення"
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
msgid "_Enable sound notifications"
msgstr "_Ввімкнути звукові сповіщення"
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:30
msgid "_GPS"
msgstr "_GPS"
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:31
msgid "_Network (IP, Wi-Fi)"
msgstr "_Мережа (IP, Wi-Fi)"
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:32
msgid "_Open new chats in separate windows"
msgstr "_Відкривати нові бесіди у окремому вікні"
-#: ../src/empathy-preferences.ui.h:32
+#: ../src/empathy-preferences.ui.h:33
msgid "_Publish location to my contacts"
msgstr "_Публікувати місцевості моїм співрозмовникам"
#. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:35
msgid "_Reduce location accuracy"
msgstr "По_низити точність визначення місцевості"
@@ -3931,7 +4063,7 @@ msgstr "Стан"
msgid "_Quit"
msgstr "Ви_йти"
-#: ../src/empathy-map-view.c:442
+#: ../src/empathy-map-view.c:448
msgid "Contact Map View"
msgstr "Карта співрозмовників"
@@ -4071,6 +4203,10 @@ msgstr "Відхилити"
msgid "Accept"
msgstr "Прийняти"
+#: ../src/empathy-notifications-approver.c:226
+msgid "Provide"
+msgstr "Надати"
+
#: ../src/empathy-call-observer.c:130
#, c-format
msgid "Missed call from %s"
@@ -4081,6 +4217,13 @@ msgstr "Пропущений виклик від %s"
msgid "%s just tried to call you, but you were in another call."
msgstr "%s намагався зв'язатись з вами, але ви мали розмову з іншим у той час."
+#: ../libempathy-gtk/empathy-search-bar.c:282
+msgid "_Match case"
+msgstr "_Збіг регістру"
+
+#~ msgid "_Enabled"
+#~ msgstr "Увім_кнено"
+
#~ msgid "Send and receive messages"
#~ msgstr "Отримання та надсилання миттєвих повідомлень"
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 734809f80..14de1d3c5 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -1209,12 +1209,10 @@ accounts_dialog_button_remove_clicked_cb (GtkWidget *button,
{
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
GtkTreeView *view;
- GtkTreeModel *model;
GtkTreeSelection *selection;
GtkTreeIter iter;
view = GTK_TREE_VIEW (priv->treeview);
- model = gtk_tree_view_get_model (view);
selection = gtk_tree_view_get_selection (view);
if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
return;
@@ -1491,14 +1489,12 @@ accounts_dialog_get_settings_iter (EmpathyAccountsDialog *dialog,
GtkTreeIter *iter)
{
GtkTreeView *view;
- GtkTreeSelection *selection;
GtkTreeModel *model;
gboolean ok;
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
/* Update the status in the model */
view = GTK_TREE_VIEW (priv->treeview);
- selection = gtk_tree_view_get_selection (view);
model = gtk_tree_view_get_model (view);
for (ok = gtk_tree_model_get_iter_first (model, iter);
@@ -1528,14 +1524,12 @@ accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
GtkTreeIter *iter)
{
GtkTreeView *view;
- GtkTreeSelection *selection;
GtkTreeModel *model;
gboolean ok;
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
/* Update the status in the model */
view = GTK_TREE_VIEW (priv->treeview);
- selection = gtk_tree_view_get_selection (view);
model = gtk_tree_view_get_model (view);
for (ok = gtk_tree_model_get_iter_first (model, iter);
@@ -1585,11 +1579,8 @@ static void
accounts_dialog_model_set_selected (EmpathyAccountsDialog *dialog,
EmpathyAccountSettings *settings)
{
- GtkTreeSelection *selection;
GtkTreeIter iter;
- EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview));
if (accounts_dialog_get_settings_iter (dialog, settings, &iter))
select_and_scroll_to_iter (dialog, &iter);
}
@@ -1831,14 +1822,12 @@ accounts_dialog_add_account (EmpathyAccountsDialog *dialog,
GtkTreeIter iter;
TpConnectionStatus status;
const gchar *name;
- gboolean enabled;
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
gboolean selected = FALSE;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->treeview));
status = tp_account_get_connection_status (account, NULL);
name = tp_account_get_display_name (account);
- enabled = tp_account_is_enabled (account);
settings = empathy_account_settings_new_for_account (account);
@@ -1968,12 +1957,6 @@ enable_or_disable_account (EmpathyAccountsDialog *dialog,
TpAccount *account,
gboolean enabled)
{
- GtkTreeModel *model;
- EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
-
- /* Update the status in the model */
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->treeview));
-
/* Update the status-infobar in the details view */
accounts_dialog_update_status_infobar (dialog, account);
@@ -2036,11 +2019,8 @@ static void
accounts_dialog_set_selected_account (EmpathyAccountsDialog *dialog,
TpAccount *account)
{
- GtkTreeSelection *selection;
GtkTreeIter iter;
- EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview));
if (accounts_dialog_get_account_iter (dialog, account, &iter))
select_and_scroll_to_iter (dialog, &iter);
}
diff --git a/src/empathy-auth-client.c b/src/empathy-auth-client.c
index 68c4543a8..b7988e07e 100644
--- a/src/empathy-auth-client.c
+++ b/src/empathy-auth-client.c
@@ -159,7 +159,6 @@ verifier_verify_cb (GObject *source,
GAsyncResult *result,
gpointer user_data)
{
- gboolean res;
EmpTLSCertificateRejectReason reason;
GError *error = NULL;
EmpathyTLSCertificate *certificate = NULL;
@@ -170,7 +169,7 @@ verifier_verify_cb (GObject *source,
"certificate", &certificate,
NULL);
- res = empathy_tls_verifier_verify_finish (EMPATHY_TLS_VERIFIER (source),
+ empathy_tls_verifier_verify_finish (EMPATHY_TLS_VERIFIER (source),
result, &reason, &details, &error);
if (error != NULL)
diff --git a/src/empathy-chat-manager.c b/src/empathy-chat-manager.c
index 6c92c25cb..a90c2d08c 100644
--- a/src/empathy-chat-manager.c
+++ b/src/empathy-chat-manager.c
@@ -32,7 +32,7 @@
enum {
CLOSED_CHATS_CHANGED,
- HANDLED_CHATS_CHANGED,
+ DISPLAYED_CHATS_CHANGED,
LAST_SIGNAL
};
@@ -49,7 +49,7 @@ struct _EmpathyChatManagerPriv
/* Queue of (ChatData *) representing the closed chats */
GQueue *closed_queue;
- guint num_handled_channels;
+ guint num_displayed_chat;
TpBaseClient *handler;
};
@@ -100,18 +100,36 @@ chat_data_free (ChatData *data)
}
static void
+chat_destroyed_cb (gpointer data,
+ GObject *object)
+{
+ EmpathyChatManager *self = data;
+ EmpathyChatManagerPriv *priv = GET_PRIV (self);
+
+ priv->num_displayed_chat--;
+
+ DEBUG ("Chat destroyed; we are now displaying %u chats",
+ priv->num_displayed_chat);
+
+ g_signal_emit (self, signals[DISPLAYED_CHATS_CHANGED], 0,
+ priv->num_displayed_chat);
+}
+
+static void
process_tp_chat (EmpathyChatManager *self,
EmpathyTpChat *tp_chat,
TpAccount *account,
gint64 user_action_time)
{
+ EmpathyChatManagerPriv *priv = GET_PRIV (self);
EmpathyChat *chat = NULL;
const gchar *id;
id = empathy_tp_chat_get_id (tp_chat);
if (!tp_str_empty (id))
{
- chat = empathy_chat_window_find_chat (account, id);
+ chat = empathy_chat_window_find_chat (account, id,
+ empathy_tp_chat_is_sms_channel (tp_chat));
}
if (chat != NULL)
@@ -124,6 +142,16 @@ process_tp_chat (EmpathyChatManager *self,
/* empathy_chat_new returns a floating reference as EmpathyChat is
* a GtkWidget. This reference will be taken by a container
* (a GtkNotebook) when we'll call empathy_chat_window_present_chat */
+
+ priv->num_displayed_chat++;
+
+ DEBUG ("Chat displayed; we are now displaying %u chat",
+ priv->num_displayed_chat);
+
+ g_signal_emit (self, signals[DISPLAYED_CHATS_CHANGED], 0,
+ priv->num_displayed_chat);
+
+ g_object_weak_ref ((GObject *) chat, chat_destroyed_cb, self);
}
empathy_chat_window_present_chat (chat, user_action_time);
@@ -191,24 +219,6 @@ tp_chat_ready_cb (GObject *object,
}
static void
-channel_invalidated (TpChannel *channel,
- guint domain,
- gint code,
- gchar *message,
- EmpathyChatManager *self)
-{
- EmpathyChatManagerPriv *priv = GET_PRIV (self);
-
- priv->num_handled_channels--;
-
- DEBUG ("Channel closed; we are now handling %u text channels",
- priv->num_handled_channels);
-
- g_signal_emit (self, signals[HANDLED_CHATS_CHANGED], 0,
- priv->num_handled_channels);
-}
-
-static void
handle_channels (TpSimpleHandler *handler,
TpAccount *account,
TpConnection *connection,
@@ -219,9 +229,7 @@ handle_channels (TpSimpleHandler *handler,
gpointer user_data)
{
EmpathyChatManager *self = (EmpathyChatManager *) user_data;
- EmpathyChatManagerPriv *priv = GET_PRIV (self);
GList *l;
- gboolean handling = FALSE;
for (l = channels; l != NULL; l = g_list_next (l))
{
@@ -238,7 +246,7 @@ handle_channels (TpSimpleHandler *handler,
continue;
}
- handling = TRUE;
+ DEBUG ("Now handling channel %s", tp_proxy_get_object_path (channel));
tp_chat = empathy_tp_chat_new (account, channel);
@@ -254,23 +262,9 @@ handle_channels (TpSimpleHandler *handler,
ctx->sig_id = g_signal_connect (tp_chat, "notify::ready",
G_CALLBACK (tp_chat_ready_cb), ctx);
}
-
- priv->num_handled_channels++;
-
- g_signal_connect (channel, "invalidated",
- G_CALLBACK (channel_invalidated), self);
}
tp_handle_channels_context_accept (context);
-
- if (handling)
- {
- DEBUG ("Channels handled; we are now handling %u text channels",
- priv->num_handled_channels);
-
- g_signal_emit (self, signals[HANDLED_CHATS_CHANGED], 0,
- priv->num_handled_channels);
- }
}
static void
@@ -387,8 +381,8 @@ empathy_chat_manager_class_init (
G_TYPE_NONE,
1, G_TYPE_UINT, NULL);
- signals[HANDLED_CHATS_CHANGED] =
- g_signal_new ("handled-chats-changed",
+ signals[DISPLAYED_CHATS_CHANGED] =
+ g_signal_new ("displayed-chats-changed",
G_TYPE_FROM_CLASS (object_class),
G_SIGNAL_RUN_LAST,
0,
@@ -459,11 +453,3 @@ empathy_chat_manager_get_num_closed_chats (EmpathyChatManager *self)
return g_queue_get_length (priv->closed_queue);
}
-
-guint
-empathy_chat_manager_get_num_handled_chats (EmpathyChatManager *self)
-{
- EmpathyChatManagerPriv *priv = GET_PRIV (self);
-
- return priv->num_handled_channels;
-}
diff --git a/src/empathy-chat-manager.h b/src/empathy-chat-manager.h
index ee43857f4..6d249b3e4 100644
--- a/src/empathy-chat-manager.h
+++ b/src/empathy-chat-manager.h
@@ -65,8 +65,6 @@ void empathy_chat_manager_closed_chat (EmpathyChatManager *self,
void empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self);
guint empathy_chat_manager_get_num_closed_chats (EmpathyChatManager *self);
-guint empathy_chat_manager_get_num_handled_chats (EmpathyChatManager *self);
-
G_END_DECLS
#endif /* #ifndef __EMPATHY_CHAT_MANAGER_H__*/
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index 61a1c5d47..93d9df8d7 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -259,7 +259,6 @@ chat_window_create_label (EmpathyChatWindow *window,
EmpathyChat *chat,
gboolean is_tab_label)
{
- EmpathyChatWindowPriv *priv;
GtkWidget *hbox;
GtkWidget *name_label;
GtkWidget *status_image;
@@ -268,8 +267,6 @@ chat_window_create_label (EmpathyChatWindow *window,
PangoAttrList *attr_list;
PangoAttribute *attr;
- priv = GET_PRIV (window);
-
/* The spacing between the button and the label. */
hbox = gtk_hbox_new (FALSE, 0);
@@ -314,6 +311,15 @@ chat_window_create_label (EmpathyChatWindow *window,
if (is_tab_label) {
GtkWidget *close_button;
+ GtkWidget *sending_spinner;
+
+ sending_spinner = gtk_spinner_new ();
+
+ gtk_box_pack_start (GTK_BOX (hbox), sending_spinner,
+ FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (chat),
+ "chat-window-tab-sending-spinner",
+ sending_spinner);
close_button = gedit_close_button_new ();
g_object_set_data (G_OBJECT (chat), "chat-window-tab-close-button", close_button);
@@ -453,14 +459,14 @@ get_all_unread_messages (EmpathyChatWindowPriv *priv)
static gchar *
get_window_title_name (EmpathyChatWindowPriv *priv)
{
- const gchar *active_name;
+ gchar *active_name, *ret;
guint nb_chats;
guint current_unread_msgs;
nb_chats = g_list_length (priv->chats);
g_assert (nb_chats > 0);
- active_name = empathy_chat_get_name (priv->current_chat);
+ active_name = empathy_chat_dup_name (priv->current_chat);
current_unread_msgs = empathy_chat_get_nb_unread_messages (
priv->current_chat);
@@ -468,9 +474,9 @@ get_window_title_name (EmpathyChatWindowPriv *priv)
if (nb_chats == 1) {
/* only one tab */
if (current_unread_msgs == 0)
- return g_strdup (active_name);
+ ret = g_strdup (active_name);
else
- return g_strdup_printf (ngettext (
+ ret = g_strdup_printf (ngettext (
"%s (%d unread)",
"%s (%d unread)", current_unread_msgs),
active_name, current_unread_msgs);
@@ -482,7 +488,7 @@ get_window_title_name (EmpathyChatWindowPriv *priv)
if (all_unread_msgs == 0) {
/* no unread message */
- return g_strdup_printf (ngettext (
+ ret = g_strdup_printf (ngettext (
"%s (and %u other)",
"%s (and %u others)", nb_others),
active_name, nb_others);
@@ -490,7 +496,7 @@ get_window_title_name (EmpathyChatWindowPriv *priv)
else if (all_unread_msgs == current_unread_msgs) {
/* unread messages are in the current tab */
- return g_strdup_printf (ngettext (
+ ret = g_strdup_printf (ngettext (
"%s (%d unread)",
"%s (%d unread)", current_unread_msgs),
active_name, current_unread_msgs);
@@ -498,7 +504,7 @@ get_window_title_name (EmpathyChatWindowPriv *priv)
else if (current_unread_msgs == 0) {
/* unread messages are in other tabs */
- return g_strdup_printf (ngettext (
+ ret = g_strdup_printf (ngettext (
"%s (%d unread from others)",
"%s (%d unread from others)",
all_unread_msgs),
@@ -507,13 +513,17 @@ get_window_title_name (EmpathyChatWindowPriv *priv)
else {
/* unread messages are in all the tabs */
- return g_strdup_printf (ngettext (
+ ret = g_strdup_printf (ngettext (
"%s (%d unread from all)",
"%s (%d unread from all)",
all_unread_msgs),
active_name, all_unread_msgs);
}
}
+
+ g_free (active_name);
+
+ return ret;
}
static void
@@ -637,7 +647,7 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
EmpathyChatWindow *window;
EmpathyChatWindowPriv *priv;
EmpathyContact *remote_contact;
- const gchar *name;
+ gchar *name;
const gchar *id;
TpAccount *account;
const gchar *subject;
@@ -648,6 +658,8 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
const gchar *icon_name;
GtkWidget *tab_image;
GtkWidget *menu_image;
+ GtkWidget *sending_spinner;
+ guint nb_sending;
window = chat_window_find_chat (chat);
if (!window) {
@@ -656,7 +668,7 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
priv = GET_PRIV (window);
/* Get information */
- name = empathy_chat_get_name (chat);
+ name = empathy_chat_dup_name (chat);
account = empathy_chat_get_account (chat);
subject = empathy_chat_get_subject (chat);
remote_contact = empathy_chat_get_remote_contact (chat);
@@ -675,6 +687,9 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
else if (remote_contact && empathy_chat_is_composing (chat)) {
icon_name = EMPATHY_IMAGE_TYPING;
}
+ else if (empathy_chat_is_sms_channel (chat)) {
+ icon_name = EMPATHY_IMAGE_SMS;
+ }
else if (remote_contact) {
icon_name = empathy_icon_name_for_contact (remote_contact);
} else {
@@ -693,6 +708,16 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
gtk_widget_hide (menu_image);
}
+ /* Update the sending spinner */
+ nb_sending = empathy_chat_get_n_messages_sending (chat);
+ sending_spinner = g_object_get_data (G_OBJECT (chat),
+ "chat-window-tab-sending-spinner");
+
+ g_object_set (sending_spinner,
+ "active", nb_sending > 0,
+ "visible", nb_sending > 0,
+ NULL);
+
/* Update tab tooltip */
tooltip = g_string_new (NULL);
@@ -703,11 +728,29 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
id = name;
}
+ if (empathy_chat_is_sms_channel (chat)) {
+ append_markup_printf (tooltip, "%s ", _("SMS:"));
+ }
+
append_markup_printf (tooltip,
"<b>%s</b><small> (%s)</small>",
id,
tp_account_get_display_name (account));
+ if (nb_sending > 0) {
+ char *tmp = g_strdup_printf (
+ ngettext ("Sending %d message",
+ "Sending %d messages",
+ nb_sending),
+ nb_sending);
+
+ g_string_append (tooltip, "\n");
+ g_string_append (tooltip, tmp);
+
+ gtk_widget_set_tooltip_text (sending_spinner, tmp);
+ g_free (tmp);
+ }
+
if (!EMP_STR_EMPTY (status)) {
append_markup_printf (tooltip, "\n<i>%s</i>", status);
}
@@ -738,6 +781,8 @@ chat_window_update_chat_tab_full (EmpathyChat *chat,
if (priv->current_chat == chat) {
chat_window_update (window, update_contact_menu);
}
+
+ g_free (name);
}
static void
@@ -865,21 +910,24 @@ chat_window_favorite_toggled_cb (GtkToggleAction *toggle_action,
EmpathyChatWindowPriv *priv = GET_PRIV (window);
gboolean active;
TpAccount *account;
+ gchar *name;
const gchar *room;
EmpathyChatroom *chatroom;
active = gtk_toggle_action_get_active (toggle_action);
account = empathy_chat_get_account (priv->current_chat);
room = empathy_chat_get_id (priv->current_chat);
+ name = empathy_chat_dup_name (priv->current_chat);
chatroom = empathy_chatroom_manager_ensure_chatroom (
priv->chatroom_manager,
account,
room,
- empathy_chat_get_name (priv->current_chat));
+ name);
empathy_chatroom_set_favorite (chatroom, active);
g_object_unref (chatroom);
+ g_free (name);
}
static void
@@ -889,21 +937,24 @@ chat_window_always_urgent_toggled_cb (GtkToggleAction *toggle_action,
EmpathyChatWindowPriv *priv = GET_PRIV (window);
gboolean active;
TpAccount *account;
+ gchar *name;
const gchar *room;
EmpathyChatroom *chatroom;
active = gtk_toggle_action_get_active (toggle_action);
account = empathy_chat_get_account (priv->current_chat);
room = empathy_chat_get_id (priv->current_chat);
+ name = empathy_chat_dup_name (priv->current_chat);
chatroom = empathy_chatroom_manager_ensure_chatroom (
priv->chatroom_manager,
account,
room,
- empathy_chat_get_name (priv->current_chat));
+ name);
empathy_chatroom_set_always_urgent (chatroom, active);
g_object_unref (chatroom);
+ g_free (name);
}
static void
@@ -1086,7 +1137,6 @@ chat_window_tabs_next_activate_cb (GtkAction *action,
EmpathyChatWindow *window)
{
EmpathyChatWindowPriv *priv;
- EmpathyChat *chat;
gint index_, numPages;
gboolean wrap_around;
@@ -1095,7 +1145,6 @@ chat_window_tabs_next_activate_cb (GtkAction *action,
g_object_get (gtk_settings_get_default (), "gtk-keynav-wrap-around",
&wrap_around, NULL);
- chat = priv->current_chat;
index_ = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
numPages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
@@ -1112,7 +1161,6 @@ chat_window_tabs_previous_activate_cb (GtkAction *action,
EmpathyChatWindow *window)
{
EmpathyChatWindowPriv *priv;
- EmpathyChat *chat;
gint index_, numPages;
gboolean wrap_around;
@@ -1121,7 +1169,6 @@ chat_window_tabs_previous_activate_cb (GtkAction *action,
g_object_get (gtk_settings_get_default (), "gtk-keynav-wrap-around",
&wrap_around, NULL);
- chat = priv->current_chat;
index_ = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
numPages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
@@ -1335,8 +1382,9 @@ chat_window_show_or_update_notification (EmpathyChatWindow *window,
G_CALLBACK (chat_window_notification_closed_cb), window, 0);
if (has_x_canonical_append) {
+ /* We have to set a not empty string to keep libnotify happy */
notify_notification_set_hint_string (notification,
- EMPATHY_NOTIFY_MANAGER_CAP_X_CANONICAL_APPEND, "");
+ EMPATHY_NOTIFY_MANAGER_CAP_X_CANONICAL_APPEND, "1");
}
}
@@ -1356,15 +1404,16 @@ chat_window_show_or_update_notification (EmpathyChatWindow *window,
static void
chat_window_set_highlight_room_labels (EmpathyChat *chat)
{
- gchar *markup;
+ gchar *markup, *name;
GtkWidget *widget;
if (!empathy_chat_is_room (chat))
return;
+ name = empathy_chat_dup_name (chat);
markup = g_markup_printf_escaped (
"<span color=\"red\" weight=\"bold\">%s</span>",
- empathy_chat_get_name (chat));
+ name);
widget = g_object_get_data (G_OBJECT (chat), "chat-window-tab-label");
gtk_label_set_markup (GTK_LABEL (widget), markup);
@@ -1372,6 +1421,7 @@ chat_window_set_highlight_room_labels (EmpathyChat *chat)
widget = g_object_get_data (G_OBJECT (chat), "chat-window-menu-label");
gtk_label_set_markup (GTK_LABEL (widget), markup);
+ g_free (name);
g_free (markup);
}
@@ -1810,7 +1860,7 @@ chat_window_drag_data_received (GtkWidget *widget,
account =
tp_account_manager_ensure_account (account_manager, account_id);
if (account != NULL)
- chat = empathy_chat_window_find_chat (account, contact_id);
+ chat = empathy_chat_window_find_chat (account, contact_id, FALSE);
}
if (account == NULL) {
@@ -1821,7 +1871,7 @@ chat_window_drag_data_received (GtkWidget *widget,
if (!chat) {
empathy_chat_with_contact_id (
- account, contact_id, gtk_get_current_event_time ());
+ account, contact_id, empathy_get_current_action_time ());
g_strfreev (strv);
return;
@@ -2176,13 +2226,11 @@ empathy_chat_window_get_default (gboolean room)
}
for (l = chat_windows; l; l = l->next) {
- EmpathyChatWindowPriv *priv;
EmpathyChatWindow *chat_window;
GtkWidget *dialog;
guint nb_rooms, nb_private;
chat_window = l->data;
- priv = GET_PRIV (chat_window);
dialog = empathy_chat_window_get_dialog (chat_window);
@@ -2272,6 +2320,12 @@ empathy_chat_window_add_chat (EmpathyChatWindow *window,
g_signal_connect (chat, "notify::remote-contact",
G_CALLBACK (chat_window_chat_notify_cb),
NULL);
+ g_signal_connect (chat, "notify::sms-channel",
+ G_CALLBACK (chat_window_chat_notify_cb),
+ NULL);
+ g_signal_connect (chat, "notify::n-messages-sending",
+ G_CALLBACK (chat_window_chat_notify_cb),
+ NULL);
chat_window_chat_notify_cb (chat);
gtk_notebook_append_page_menu (GTK_NOTEBOOK (priv->notebook), child, label, popup_label);
@@ -2375,7 +2429,8 @@ empathy_chat_window_switch_to_chat (EmpathyChatWindow *window,
EmpathyChat *
empathy_chat_window_find_chat (TpAccount *account,
- const gchar *id)
+ const gchar *id,
+ gboolean sms_channel)
{
GList *l;
@@ -2395,7 +2450,8 @@ empathy_chat_window_find_chat (TpAccount *account,
chat = ll->data;
if (account == empathy_chat_get_account (chat) &&
- !tp_strdiff (id, empathy_chat_get_id (chat))) {
+ !tp_strdiff (id, empathy_chat_get_id (chat)) &&
+ sms_channel == empathy_chat_is_sms_channel (chat)) {
return chat;
}
}
@@ -2421,6 +2477,11 @@ empathy_chat_window_present_chat (EmpathyChat *chat,
window = empathy_chat_window_get_default (empathy_chat_is_room (chat));
if (!window) {
window = empathy_chat_window_new ();
+
+ /* we want to display the newly created window even if we don't present
+ * it */
+ priv = GET_PRIV (window);
+ gtk_widget_show (priv->dialog);
}
empathy_chat_window_add_chat (window, chat);
diff --git a/src/empathy-chat-window.h b/src/empathy-chat-window.h
index 5477479ac..2112b6647 100644
--- a/src/empathy-chat-window.h
+++ b/src/empathy-chat-window.h
@@ -59,7 +59,8 @@ struct _EmpathyChatWindowClass {
GType empathy_chat_window_get_type (void);
EmpathyChat * empathy_chat_window_find_chat (TpAccount *account,
- const gchar *id);
+ const gchar *id,
+ gboolean sms_channel);
void empathy_chat_window_present_chat (EmpathyChat *chat,
gint64 timestamp);
diff --git a/src/empathy-chat.c b/src/empathy-chat.c
index 73d8ce87c..43ab00270 100644
--- a/src/empathy-chat.c
+++ b/src/empathy-chat.c
@@ -52,7 +52,7 @@ static gboolean use_timer = TRUE;
static EmpathyChatManager *chat_mgr = NULL;
static void
-handled_chats_changed_cb (EmpathyChatManager *mgr,
+displayed_chats_changed_cb (EmpathyChatManager *mgr,
guint nb_chats,
gpointer user_data)
{
@@ -81,8 +81,8 @@ activate_cb (GApplication *application)
g_assert (chat_mgr == NULL);
chat_mgr = empathy_chat_manager_dup_singleton ();
- g_signal_connect (chat_mgr, "handled-chats-changed",
- G_CALLBACK (handled_chats_changed_cb), GUINT_TO_POINTER (1));
+ g_signal_connect (chat_mgr, "displayed-chats-changed",
+ G_CALLBACK (displayed_chats_changed_cb), GUINT_TO_POINTER (1));
}
int
diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c
index 6125ec895..00d2c8ab8 100644
--- a/src/empathy-event-manager.c
+++ b/src/empathy-event-manager.c
@@ -43,6 +43,7 @@
#include <libempathy-gtk/empathy-images.h>
#include <libempathy-gtk/empathy-contact-dialogs.h>
#include <libempathy-gtk/empathy-sound-manager.h>
+#include <libempathy-gtk/empathy-ui-utils.h>
#include "empathy-event-manager.h"
#include "empathy-main-window.h"
@@ -316,7 +317,7 @@ event_manager_approval_approve (EventManagerApproval *approval)
}
else
{
- timestamp = tp_user_action_time_from_x11 (gtk_get_current_event_time ());
+ timestamp = empathy_get_current_action_time ();
}
g_assert (approval->operation != NULL);
@@ -335,9 +336,6 @@ static void
event_text_channel_process_func (EventPriv *event)
{
EmpathyTpChat *tp_chat;
- gint64 timestamp;
-
- timestamp = tp_user_action_time_from_x11 (gtk_get_current_event_time ());
if (event->approval->handler != 0)
{
@@ -566,7 +564,6 @@ event_manager_chat_message_received_cb (EmpathyTpChat *tp_chat,
EmpathyContact *sender;
const gchar *header;
const gchar *msg;
- TpChannel *channel;
EventPriv *event;
EmpathyEventManagerPriv *priv = GET_PRIV (approval->manager);
@@ -583,8 +580,6 @@ event_manager_chat_message_received_cb (EmpathyTpChat *tp_chat,
header = empathy_contact_get_alias (sender);
msg = empathy_message_get_body (message);
- channel = empathy_tp_chat_get_channel (tp_chat);
-
if (event != NULL)
event_update (approval->manager, event, EMPATHY_IMAGE_NEW_MESSAGE, header,
msg);
@@ -703,13 +698,9 @@ invite_dialog_response_cb (GtkDialog *dialog,
gint response,
EventManagerApproval *approval)
{
- EmpathyTpChat *tp_chat;
-
gtk_widget_destroy (GTK_WIDGET (approval->dialog));
approval->dialog = NULL;
- tp_chat = EMPATHY_TP_CHAT (approval->handler_instance);
-
if (response != GTK_RESPONSE_OK)
{
/* close channel */
diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c
index edb470cbb..e23b0b45a 100644
--- a/src/empathy-ft-manager.c
+++ b/src/empathy-ft-manager.c
@@ -696,11 +696,8 @@ static void
ft_manager_start_transfer (EmpathyFTManager *manager,
EmpathyFTHandler *handler)
{
- EmpathyFTManagerPriv *priv;
gboolean is_outgoing;
- priv = GET_PRIV (manager);
-
is_outgoing = !empathy_ft_handler_is_incoming (handler);
DEBUG ("Start transfer, is outgoing %s",
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index b4c1254df..0ac08c856 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -145,6 +145,10 @@ struct _EmpathyMainWindowPriv {
GtkWidget *edit_context;
GtkWidget *edit_context_separator;
+ GtkActionGroup *balance_action_group;
+ GtkAction *view_balance_show_in_roster;
+ GtkWidget *balance_vbox;
+
guint size_timeout_id;
/* reffed TpAccount* => visible GtkInfoBar* */
@@ -220,6 +224,8 @@ main_window_flash_foreach (GtkTreeModel *model,
pixbuf = empathy_individual_store_get_individual_status_icon (
GET_PRIV (data->window)->individual_store,
individual);
+ if (pixbuf != NULL)
+ g_object_ref (pixbuf);
}
gtk_tree_store_set (GTK_TREE_STORE (model), iter,
@@ -240,6 +246,7 @@ main_window_flash_foreach (GtkTreeModel *model,
g_object_unref (individual);
tp_clear_object (&contact);
+ tp_clear_object (&pixbuf);
return FALSE;
}
@@ -780,6 +787,294 @@ main_window_update_status (EmpathyMainWindow *window)
g_list_free (children);
}
+static char *
+main_window_account_to_action_name (TpAccount *account)
+{
+ char *r;
+
+ /* action names can't have '/' in them, replace it with '.' */
+ r = g_strdup (tp_account_get_path_suffix (account));
+ r = g_strdelimit (r, "/", '.');
+
+ return r;
+}
+
+static void
+main_window_balance_activate_cb (GtkAction *action,
+ EmpathyMainWindow *window)
+{
+ const char *uri;
+
+ uri = g_object_get_data (G_OBJECT (action), "manage-credit-uri");
+
+ if (!tp_str_empty (uri)) {
+ DEBUG ("Top-up credit URI: %s", uri);
+ empathy_url_show (GTK_WIDGET (window), uri);
+ } else {
+ DEBUG ("unknown protocol for top-up");
+ }
+}
+
+static void
+main_window_balance_update_balance (GtkAction *action,
+ GValueArray *balance)
+{
+ TpAccount *account = g_object_get_data (G_OBJECT (action), "account");
+ GtkWidget *label;
+ int amount = 0;
+ guint scale = G_MAXINT32;
+ const char *currency = "";
+ char *money, *str;
+
+ if (balance != NULL)
+ tp_value_array_unpack (balance, 3,
+ &amount,
+ &scale,
+ &currency);
+
+ if (amount == 0 &&
+ scale == G_MAXINT32 &&
+ tp_str_empty (currency)) {
+ /* unknown balance */
+ money = g_strdup ("--");
+ } else {
+ char *tmp = empathy_format_currency (amount, scale, currency);
+
+ money = g_strdup_printf ("%s %s", currency, tmp);
+ g_free (tmp);
+ }
+
+ /* Translators: this string will be something like:
+ * Top up My Account ($1.23)..." */
+ str = g_strdup_printf (_("Top up %s (%s)..."),
+ tp_account_get_display_name (account),
+ money);
+
+ gtk_action_set_label (action, str);
+ g_free (str);
+
+ /* update the money label in the roster */
+ label = g_object_get_data (G_OBJECT (action), "money-label");
+
+ gtk_label_set_text (GTK_LABEL (label), money);
+ g_free (money);
+}
+
+static void
+main_window_setup_balance_got_balance_props (TpProxy *conn,
+ GHashTable *props,
+ const GError *in_error,
+ gpointer user_data,
+ GObject *action)
+{
+ GValueArray *balance = NULL;
+ const char *uri;
+
+ if (in_error != NULL) {
+ DEBUG ("Failed to get account balance properties: %s",
+ in_error->message);
+ goto finally;
+ }
+
+ balance = tp_asv_get_boxed (props, "AccountBalance",
+ TP_STRUCT_TYPE_CURRENCY_AMOUNT);
+ uri = tp_asv_get_string (props, "ManageCreditURI");
+
+ g_object_set_data_full (action, "manage-credit-uri",
+ g_strdup (uri), g_free);
+ gtk_action_set_sensitive (GTK_ACTION (action), !tp_str_empty (uri));
+
+finally:
+ main_window_balance_update_balance (GTK_ACTION (action), balance);
+}
+
+static void
+main_window_balance_changed_cb (TpConnection *conn,
+ const GValueArray *balance,
+ gpointer user_data,
+ GObject *action)
+{
+ main_window_balance_update_balance (GTK_ACTION (action),
+ (GValueArray *) balance);
+}
+
+static GtkAction *
+main_window_setup_balance_create_action (EmpathyMainWindow *window,
+ TpAccount *account)
+{
+ EmpathyMainWindowPriv *priv = GET_PRIV (window);
+ GtkAction *action;
+ char *name, *ui;
+ guint merge_id;
+ GError *error = NULL;
+
+ /* create the action group if required */
+ if (priv->balance_action_group == NULL) {
+ priv->balance_action_group =
+ gtk_action_group_new ("balance-action-group");
+
+ gtk_ui_manager_insert_action_group (priv->ui_manager,
+ priv->balance_action_group, -1);
+ }
+
+ /* create the action */
+ name = main_window_account_to_action_name (account);
+ action = gtk_action_new (name,
+ tp_account_get_display_name (account),
+ _("Top up account credit"),
+ NULL);
+ g_object_bind_property (account, "icon-name", action, "icon-name",
+ G_BINDING_SYNC_CREATE);
+
+ g_object_set_data (G_OBJECT (action), "account", account);
+ g_signal_connect (action, "activate",
+ G_CALLBACK (main_window_balance_activate_cb), window);
+
+ gtk_action_group_add_action (priv->balance_action_group, action);
+ g_object_unref (action);
+
+ ui = g_strdup_printf (
+ "<ui>"
+ " <menubar name='menubar'>"
+ " <menu action='view'>"
+ " <placeholder name='view_balance_placeholder'>"
+ " <menuitem action='%s'/>"
+ " </placeholder>"
+ " </menu>"
+ " </menubar>"
+ "</ui>",
+ name);
+
+ merge_id = gtk_ui_manager_add_ui_from_string (priv->ui_manager,
+ ui, -1, &error);
+ if (error != NULL) {
+ DEBUG ("Failed to add balance UI for %s: %s",
+ tp_account_get_display_name (account),
+ error->message);
+ g_error_free (error);
+ }
+
+ g_object_set_data (G_OBJECT (action),
+ "merge-id", GUINT_TO_POINTER (merge_id));
+
+ g_free (name);
+ g_free (ui);
+
+ return action;
+}
+
+static GtkWidget *
+main_window_setup_balance_create_widget (EmpathyMainWindow *window,
+ GtkAction *action)
+{
+ EmpathyMainWindowPriv *priv = GET_PRIV (window);
+ TpAccount *account;
+ GtkWidget *hbox, *image, *label, *button;
+
+ account = g_object_get_data (G_OBJECT (action), "account");
+ g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL);
+
+ hbox = gtk_hbox_new (FALSE, 6);
+
+ /* protocol icon */
+ image = gtk_image_new ();
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0);
+ g_object_bind_property (action, "icon-name", image, "icon-name",
+ G_BINDING_SYNC_CREATE);
+
+ /* account name label */
+ label = gtk_label_new ("");
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ g_object_bind_property (account, "display-name", label, "label",
+ G_BINDING_SYNC_CREATE);
+
+ /* balance label */
+ label = gtk_label_new ("");
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
+ g_object_set_data (G_OBJECT (action), "money-label", label);
+
+ /* top up button */
+ button = gtk_button_new_with_label (_("Top Up..."));
+ gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
+ g_signal_connect_swapped (button, "clicked",
+ G_CALLBACK (gtk_action_activate), action);
+
+ gtk_box_pack_start (GTK_BOX (priv->balance_vbox), hbox, FALSE, TRUE, 0);
+ gtk_widget_show_all (hbox);
+
+ /* tie the lifetime of the widget to the lifetime of the action */
+ g_object_weak_ref (G_OBJECT (action),
+ (GWeakNotify) gtk_widget_destroy, hbox);
+
+ return hbox;
+}
+
+static void
+main_window_setup_balance_conn_ready (GObject *conn,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ EmpathyMainWindow *window = user_data;
+ EmpathyMainWindowPriv *priv = GET_PRIV (window);
+ TpAccount *account = g_object_get_data (conn, "account");
+ GtkAction *action;
+ GError *error = NULL;
+
+ if (!tp_proxy_prepare_finish (conn, result, &error)) {
+ DEBUG ("Failed to prepare connection: %s", error->message);
+
+ g_error_free (error);
+ return;
+ }
+
+ if (!tp_proxy_has_interface_by_id (conn,
+ TP_IFACE_QUARK_CONNECTION_INTERFACE_BALANCE)) {
+ return;
+ }
+
+ DEBUG ("Setting up balance for acct: %s",
+ tp_account_get_display_name (account));
+
+ /* create the action */
+ action = main_window_setup_balance_create_action (window, account);
+
+ if (action == NULL)
+ return;
+
+ gtk_action_set_visible (priv->view_balance_show_in_roster, TRUE);
+
+ /* create the display widget */
+ main_window_setup_balance_create_widget (window, action);
+
+ /* request the current balance and monitor for any changes */
+ tp_cli_dbus_properties_call_get_all (conn, -1,
+ TP_IFACE_CONNECTION_INTERFACE_BALANCE,
+ main_window_setup_balance_got_balance_props,
+ window, NULL, G_OBJECT (action));
+
+ tp_cli_connection_interface_balance_connect_to_balance_changed (
+ TP_CONNECTION (conn), main_window_balance_changed_cb,
+ window, NULL, G_OBJECT (action), NULL);
+}
+
+static void
+main_window_setup_balance (EmpathyMainWindow *window,
+ TpAccount *account)
+{
+ TpConnection *conn = tp_account_get_connection (account);
+
+ if (conn == NULL)
+ return;
+
+ /* need to prepare the connection:
+ * store the account on the connection */
+ g_object_set_data (G_OBJECT (conn), "account", account);
+ tp_proxy_prepare_async (conn, NULL,
+ main_window_setup_balance_conn_ready, window);
+}
+
static void
main_window_connection_changed_cb (TpAccount *account,
guint old_status,
@@ -801,6 +1096,44 @@ main_window_connection_changed_cb (TpAccount *account,
if (current == TP_CONNECTION_STATUS_DISCONNECTED) {
empathy_sound_manager_play (priv->sound_mgr, GTK_WIDGET (window),
EMPATHY_SOUND_ACCOUNT_DISCONNECTED);
+
+ /* remove balance action if required */
+ if (priv->balance_action_group != NULL) {
+ GtkAction *action;
+ char *name;
+ GList *a;
+
+ name = main_window_account_to_action_name (account);
+
+ action = gtk_action_group_get_action (
+ priv->balance_action_group, name);
+
+ if (action != NULL) {
+ guint merge_id;
+
+ DEBUG ("Removing action");
+
+ merge_id = GPOINTER_TO_UINT (g_object_get_data (
+ G_OBJECT (action),
+ "merge-id"));
+
+ gtk_ui_manager_remove_ui (priv->ui_manager,
+ merge_id);
+ gtk_action_group_remove_action (
+ priv->balance_action_group, action);
+ }
+
+ g_free (name);
+
+ a = gtk_action_group_list_actions (
+ priv->balance_action_group);
+
+ gtk_action_set_visible (
+ priv->view_balance_show_in_roster,
+ g_list_length (a) > 0);
+
+ g_list_free (a);
+ }
}
if (current == TP_CONNECTION_STATUS_CONNECTED) {
@@ -809,6 +1142,7 @@ main_window_connection_changed_cb (TpAccount *account,
/* Account connected without error, remove error message if any */
main_window_remove_error (window, account);
+ main_window_setup_balance (window, account);
}
}
@@ -1250,7 +1584,7 @@ main_window_favorite_chatroom_join (EmpathyChatroom *chatroom)
join_fav_account_sig_ctx *ctx;
ctx = join_fav_account_sig_ctx_new (account, chatroom,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
ctx->sig_id = g_signal_connect_data (account, "status-changed",
G_CALLBACK (account_status_changed_cb), ctx,
@@ -1261,7 +1595,7 @@ main_window_favorite_chatroom_join (EmpathyChatroom *chatroom)
return;
}
- join_chatroom (chatroom, gtk_get_current_event_time ());
+ join_chatroom (chatroom, empathy_get_current_action_time ());
}
static void
@@ -1674,6 +2008,8 @@ account_manager_prepared_cb (GObject *source_object,
window);
g_hash_table_insert (priv->status_changed_handlers,
account, GUINT_TO_POINTER (handler_id));
+
+ main_window_setup_balance (window, account);
}
g_signal_connect (manager, "account-validity-changed",
@@ -1770,6 +2106,7 @@ empathy_main_window_init (EmpathyMainWindow *window)
filename = empathy_file_lookup ("empathy-main-window.ui", "src");
gui = empathy_builder_get_file (filename,
"main_vbox", &priv->main_vbox,
+ "balance_vbox", &priv->balance_vbox,
"errors_vbox", &priv->errors_vbox,
"auth_vbox", &priv->auth_vbox,
"ui_manager", &priv->ui_manager,
@@ -1787,6 +2124,7 @@ empathy_main_window_init (EmpathyMainWindow *window)
"notebook", &priv->notebook,
"no_entry_label", &priv->no_entry_label,
"roster_scrolledwindow", &sw,
+ "view_balance_show_in_roster", &priv->view_balance_show_in_roster,
NULL);
g_free (filename);
@@ -1947,6 +2285,14 @@ empathy_main_window_init (EmpathyMainWindow *window)
/* Set window size. */
empathy_geometry_bind (GTK_WINDOW (window), GEOMETRY_NAME);
+ /* bind view_balance_show_in_roster */
+ g_settings_bind (priv->gsettings_ui, "show-balance-in-roster",
+ priv->view_balance_show_in_roster, "active",
+ G_SETTINGS_BIND_DEFAULT);
+ g_object_bind_property (priv->view_balance_show_in_roster, "active",
+ priv->balance_vbox, "visible",
+ G_BINDING_SYNC_CREATE);
+
/* Enable event handling */
priv->call_observer = empathy_call_observer_dup_singleton ();
priv->event_manager = empathy_event_manager_dup_singleton ();
diff --git a/src/empathy-main-window.ui b/src/empathy-main-window.ui
index 864be1d28..b21a07bac 100644
--- a/src/empathy-main-window.ui
+++ b/src/empathy-main-window.ui
@@ -70,6 +70,13 @@
</object>
</child>
<child>
+ <object class="GtkToggleAction" id="view_balance_show_in_roster">
+ <property name="name">view_balance_show_in_roster</property>
+ <property name="label" translatable="yes">Credit Balance</property>
+ <property name="visible">False</property>
+ </object>
+ </child>
+ <child>
<object class="GtkAction" id="view_show_map">
<property name="name">view_show_map</property>
<property name="label" translatable="yes">Contacts on a _Map</property>
@@ -265,6 +272,9 @@
<menuitem action="view_show_offline"/>
<menuitem action="view_show_protocols"/>
<separator/>
+ <menuitem action="view_balance_show_in_roster"/>
+ <placeholder name="view_balance_placeholder"/>
+ <separator/>
<menuitem action="view_sort_by_name"/>
<menuitem action="view_sort_by_status"/>
<separator/>
@@ -317,7 +327,8 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="errors_vbox">
+ <object class="GtkVBox" id="balance_vbox">
+ <property name="spacing">3</property>
<child>
<placeholder/>
</child>
@@ -329,7 +340,7 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="auth_vbox">
+ <object class="GtkVBox" id="errors_vbox">
<child>
<placeholder/>
</child>
@@ -341,6 +352,18 @@
</packing>
</child>
<child>
+ <object class="GtkVBox" id="auth_vbox">
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkNotebook" id="notebook">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -372,7 +395,7 @@
</child>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
diff --git a/src/empathy-new-chatroom-dialog.c b/src/empathy-new-chatroom-dialog.c
index f27e8de03..a09a5f710 100644
--- a/src/empathy-new-chatroom-dialog.c
+++ b/src/empathy-new-chatroom-dialog.c
@@ -386,11 +386,8 @@ out:
static void
new_chatroom_dialog_update_widgets (EmpathyNewChatroomDialog *dialog)
{
- EmpathyAccountChooser *account_chooser;
const gchar *protocol;
- account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser);
-
if (dialog->account == NULL)
return;
@@ -535,8 +532,6 @@ new_chatroom_dialog_new_room_cb (EmpathyTpRoomlist *room_list,
EmpathyChatroom *chatroom,
EmpathyNewChatroomDialog *dialog)
{
- GtkTreeView *view;
- GtkTreeSelection *selection;
GtkListStore *store;
GtkTreeIter iter;
gchar *members;
@@ -550,8 +545,6 @@ new_chatroom_dialog_new_room_cb (EmpathyTpRoomlist *room_list,
empathy_chatroom_get_room (chatroom));
/* Add to model */
- view = GTK_TREE_VIEW (dialog->treeview);
- selection = gtk_tree_view_get_selection (view);
store = GTK_LIST_STORE (dialog->model);
members = g_strdup_printf ("%d", empathy_chatroom_get_members_count (chatroom));
tmp = g_strdup_printf ("<b>%s</b>", empathy_chatroom_get_name (chatroom));
@@ -690,8 +683,8 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog)
g_strstrip (room_name);
DEBUG ("Requesting channel for '%s'", room_name);
- empathy_join_muc (account, room_name,
- gtk_get_current_event_time ());
+
+ empathy_join_muc (account, room_name, empathy_get_current_action_time ());
g_free (room_name);
}
diff --git a/src/empathy-notifications-approver.c b/src/empathy-notifications-approver.c
index a87a6d30e..af6c139d2 100644
--- a/src/empathy-notifications-approver.c
+++ b/src/empathy-notifications-approver.c
@@ -219,6 +219,9 @@ add_notification_actions (EmpathyNotificationsApprover *self,
break;
case EMPATHY_EVENT_TYPE_AUTH:
+ /* translators: the 'Provide' button is displayed in a notification
+ * bubble when Empathy is asking for an account password; clicking on it
+ * brings the password popup. */
notify_notification_add_action (notification,
"provide", _("Provide"), (NotifyActionCallback) notification_approve_cb,
self, NULL);
@@ -335,8 +338,9 @@ update_notification (EmpathyNotificationsApprover *self)
NOTIFY_EXPIRES_DEFAULT);
if (has_x_canonical_append)
+ /* We have to set a not empty string to keep libnotify happy */
notify_notification_set_hint_string (notification,
- EMPATHY_NOTIFY_MANAGER_CAP_X_CANONICAL_APPEND, "");
+ EMPATHY_NOTIFY_MANAGER_CAP_X_CANONICAL_APPEND, "1");
if (empathy_notify_manager_has_capability (self->priv->notify_mgr,
EMPATHY_NOTIFY_MANAGER_CAP_ACTIONS))
diff --git a/src/empathy-preferences.c b/src/empathy-preferences.c
index 813637dca..f90724c7f 100644
--- a/src/empathy-preferences.c
+++ b/src/empathy-preferences.c
@@ -48,6 +48,9 @@
#include "empathy-preferences.h"
+#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+#include <libempathy/empathy-debug.h>
+
G_DEFINE_TYPE (EmpathyPreferences, empathy_preferences, GTK_TYPE_DIALOG);
#define GET_PRIV(self) ((EmpathyPreferencesPriv *)((EmpathyPreferences *) self)->priv)
@@ -57,7 +60,6 @@ struct _EmpathyPreferencesPriv {
GtkWidget *checkbutton_show_smileys;
GtkWidget *checkbutton_show_contacts_in_rooms;
- GtkWidget *combobox_chat_theme;
GtkWidget *checkbutton_separate_chat_windows;
GtkWidget *checkbutton_events_notif_area;
GtkWidget *checkbutton_autoconnect;
@@ -81,6 +83,12 @@ struct _EmpathyPreferencesPriv {
GtkWidget *checkbutton_location_resource_cell;
GtkWidget *checkbutton_location_resource_gps;
+ GtkWidget *vbox_chat_theme;
+ GtkWidget *combobox_chat_theme;
+ GtkWidget *sw_chat_theme_preview;
+ EmpathyChatView *chat_theme_preview;
+ EmpathyThemeManager *theme_manager;
+
GSettings *gsettings;
GSettings *gsettings_chat;
GSettings *gsettings_loc;
@@ -115,11 +123,11 @@ enum {
};
enum {
- COL_COMBO_IS_ADIUM,
- COL_COMBO_VISIBLE_NAME,
- COL_COMBO_NAME,
- COL_COMBO_PATH,
- COL_COMBO_COUNT
+ COL_THEME_VISIBLE_NAME,
+ COL_THEME_NAME,
+ COL_THEME_IS_ADIUM,
+ COL_THEME_ADIUM_PATH,
+ COL_THEME_COUNT
};
enum {
@@ -312,7 +320,7 @@ preferences_sound_cell_toggled_cb (GtkCellRendererToggle *toggle,
{
EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
GtkTreePath *path;
- gboolean toggled, instore;
+ gboolean instore;
GtkTreeIter iter;
GtkTreeView *view;
GtkTreeModel *model;
@@ -322,7 +330,6 @@ preferences_sound_cell_toggled_cb (GtkCellRendererToggle *toggle,
model = gtk_tree_view_get_model (view);
path = gtk_tree_path_new_from_string (path_string);
- toggled = gtk_cell_renderer_toggle_get_active (toggle);
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, COL_SOUND_KEY, &key,
@@ -411,7 +418,6 @@ preferences_languages_setup (EmpathyPreferences *preferences)
GtkTreeView *view;
GtkListStore *store;
GtkTreeSelection *selection;
- GtkTreeModel *model;
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
guint col_offset;
@@ -428,8 +434,6 @@ preferences_languages_setup (EmpathyPreferences *preferences)
selection = gtk_tree_view_get_selection (view);
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
- model = GTK_TREE_MODEL (store);
-
renderer = gtk_cell_renderer_toggle_new ();
g_signal_connect (renderer, "toggled",
G_CALLBACK (preferences_languages_cell_toggled_cb),
@@ -646,6 +650,124 @@ preferences_languages_cell_toggled_cb (GtkCellRendererToggle *cell,
}
static void
+preferences_preview_theme_append_message (EmpathyChatView *view,
+ EmpathyContact *sender,
+ EmpathyContact *receiver,
+ const gchar *text)
+{
+ EmpathyMessage *message;
+
+ message = g_object_new (EMPATHY_TYPE_MESSAGE,
+ "sender", sender,
+ "receiver", receiver,
+ "body", text,
+ NULL);
+
+ empathy_chat_view_append_message (view, message);
+ g_object_unref (message);
+}
+
+static void
+preferences_preview_theme_changed_cb (EmpathyThemeManager *manager,
+ EmpathyPreferences *preferences)
+{
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ TpDBusDaemon *dbus;
+ TpAccount *account;
+ EmpathyContact *juliet;
+ EmpathyContact *romeo;
+
+ DEBUG ("Theme changed, update preview widget");
+
+ if (priv->chat_theme_preview != NULL) {
+ gtk_widget_destroy (GTK_WIDGET (priv->chat_theme_preview));
+ }
+ priv->chat_theme_preview = empathy_theme_manager_create_view (manager);
+ gtk_container_add (GTK_CONTAINER (priv->sw_chat_theme_preview),
+ GTK_WIDGET (priv->chat_theme_preview));
+ gtk_widget_show (GTK_WIDGET (priv->chat_theme_preview));
+
+ /* FIXME: It is ugly to add a fake conversation like that.
+ * Would be cool if we could request a TplLogManager for a fake
+ * conversation */
+ dbus = tp_dbus_daemon_dup (NULL);
+ account = tp_account_new (dbus,
+ TP_ACCOUNT_OBJECT_PATH_BASE "cm/jabber/account", NULL);
+ juliet = g_object_new (EMPATHY_TYPE_CONTACT,
+ "account", account,
+ "id", "juliet",
+ /* translators: Contact name for the chat theme preview */
+ "alias", _("Juliet"),
+ "is-user", FALSE,
+ NULL);
+ romeo = g_object_new (EMPATHY_TYPE_CONTACT,
+ "account", account,
+ "id", "romeo",
+ /* translators: Contact name for the chat theme preview */
+ "alias", _("Romeo"),
+ "is-user", TRUE,
+ NULL);
+
+ preferences_preview_theme_append_message (priv->chat_theme_preview,
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ juliet, romeo, _("O Romeo, Romeo, wherefore art thou Romeo?"));
+ preferences_preview_theme_append_message (priv->chat_theme_preview,
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ juliet, romeo, _("Deny thy father and refuse thy name;"));
+ preferences_preview_theme_append_message (priv->chat_theme_preview,
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ juliet, romeo, _("Or if thou wilt not, be but sworn my love"));
+ preferences_preview_theme_append_message (priv->chat_theme_preview,
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ juliet, romeo, _("And I'll no longer be a Capulet."));
+ preferences_preview_theme_append_message (priv->chat_theme_preview,
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ romeo, juliet, _("Shall I hear more, or shall I speak at this?"));
+
+ /* translators: Quote from Romeo & Julier, for chat theme preview */
+ empathy_chat_view_append_event (priv->chat_theme_preview, _("Juliet has disconnected"));
+
+ g_object_unref (juliet);
+ g_object_unref (romeo);
+ g_object_unref (account);
+ g_object_unref (dbus);
+}
+
+static void
+preferences_theme_changed_cb (GtkComboBox *combo,
+ EmpathyPreferences *preferences)
+{
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ GtkTreeIter iter;
+
+ if (gtk_combo_box_get_active_iter (combo, &iter)) {
+ GtkTreeModel *model;
+ gboolean is_adium;
+ gchar *name;
+ gchar *path;
+
+ model = gtk_combo_box_get_model (combo);
+ gtk_tree_model_get (model, &iter,
+ COL_THEME_IS_ADIUM, &is_adium,
+ COL_THEME_NAME, &name,
+ COL_THEME_ADIUM_PATH, &path,
+ -1);
+
+ g_settings_set_string (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_THEME,
+ name);
+ if (is_adium) {
+ g_settings_set_string (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_ADIUM_PATH,
+ path);
+ }
+
+ g_free (name);
+ g_free (path);
+ }
+}
+
+static void
preferences_theme_notify_cb (GSettings *gsettings,
const gchar *key,
gpointer user_data)
@@ -658,38 +780,34 @@ preferences_theme_notify_cb (GSettings *gsettings,
GtkTreeModel *model;
GtkTreeIter iter;
gboolean found = FALSE;
+ gboolean ok;
conf_name = g_settings_get_string (gsettings, EMPATHY_PREFS_CHAT_THEME);
conf_path = g_settings_get_string (gsettings, EMPATHY_PREFS_CHAT_ADIUM_PATH);
combo = GTK_COMBO_BOX (priv->combobox_chat_theme);
model = gtk_combo_box_get_model (combo);
- if (gtk_tree_model_get_iter_first (model, &iter)) {
+ for (ok = gtk_tree_model_get_iter_first (model, &iter);
+ ok && !found;
+ ok = gtk_tree_model_iter_next (model, &iter)) {
gboolean is_adium;
gchar *name;
gchar *path;
- do {
- gtk_tree_model_get (model, &iter,
- COL_COMBO_IS_ADIUM, &is_adium,
- COL_COMBO_NAME, &name,
- COL_COMBO_PATH, &path,
- -1);
-
- if (!tp_strdiff (name, conf_name)) {
- if (tp_strdiff (name, "adium") ||
- !tp_strdiff (path, conf_path)) {
- found = TRUE;
- gtk_combo_box_set_active_iter (combo, &iter);
- g_free (name);
- g_free (path);
- break;
- }
- }
-
- g_free (name);
- g_free (path);
- } while (gtk_tree_model_iter_next (model, &iter));
+ gtk_tree_model_get (model, &iter,
+ COL_THEME_IS_ADIUM, &is_adium,
+ COL_THEME_NAME, &name,
+ COL_THEME_ADIUM_PATH, &path,
+ -1);
+
+ if (!tp_strdiff (name, conf_name) &&
+ (!is_adium || !tp_strdiff (path, conf_path))) {
+ found = TRUE;
+ gtk_combo_box_set_active_iter (combo, &iter);
+ }
+
+ g_free (name);
+ g_free (path);
}
/* Fallback to the first one. */
@@ -704,38 +822,6 @@ preferences_theme_notify_cb (GSettings *gsettings,
}
static void
-preferences_theme_changed_cb (GtkComboBox *combo,
- EmpathyPreferences *preferences)
-{
- EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
- GtkTreeModel *model;
- GtkTreeIter iter;
- gboolean is_adium;
- gchar *name;
- gchar *path;
-
- if (gtk_combo_box_get_active_iter (combo, &iter)) {
- model = gtk_combo_box_get_model (combo);
-
- gtk_tree_model_get (model, &iter,
- COL_COMBO_IS_ADIUM, &is_adium,
- COL_COMBO_NAME, &name,
- COL_COMBO_PATH, &path,
- -1);
-
- g_settings_set_string (priv->gsettings_chat,
- EMPATHY_PREFS_CHAT_THEME,
- name);
- if (is_adium == TRUE)
- g_settings_set_string (priv->gsettings_chat,
- EMPATHY_PREFS_CHAT_ADIUM_PATH,
- path);
- g_free (name);
- g_free (path);
- }
-}
-
-static void
preferences_themes_setup (EmpathyPreferences *preferences)
{
EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
@@ -751,22 +837,21 @@ preferences_themes_setup (EmpathyPreferences *preferences)
cell_layout = GTK_CELL_LAYOUT (combo);
/* Create the model */
- store = gtk_list_store_new (COL_COMBO_COUNT,
- G_TYPE_BOOLEAN, /* Is an Adium theme */
- G_TYPE_STRING, /* Display name */
- G_TYPE_STRING, /* Theme name */
- G_TYPE_STRING); /* Theme path */
+ store = gtk_list_store_new (COL_THEME_COUNT,
+ G_TYPE_STRING, /* Display name */
+ G_TYPE_STRING, /* Theme name */
+ G_TYPE_BOOLEAN, /* Is an Adium theme */
+ G_TYPE_STRING); /* Adium theme path */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
- COL_COMBO_VISIBLE_NAME, GTK_SORT_ASCENDING);
+ COL_THEME_VISIBLE_NAME, GTK_SORT_ASCENDING);
/* Fill the model */
themes = empathy_theme_manager_get_themes ();
for (i = 0; themes[i]; i += 2) {
gtk_list_store_insert_with_values (store, NULL, -1,
- COL_COMBO_IS_ADIUM, FALSE,
- COL_COMBO_VISIBLE_NAME, _(themes[i + 1]),
- COL_COMBO_NAME, themes[i],
- COL_COMBO_PATH, NULL,
+ COL_THEME_VISIBLE_NAME, _(themes[i + 1]),
+ COL_THEME_NAME, themes[i],
+ COL_THEME_IS_ADIUM, FALSE,
-1);
}
@@ -782,10 +867,10 @@ preferences_themes_setup (EmpathyPreferences *preferences)
if (name != NULL && path != NULL) {
gtk_list_store_insert_with_values (store, NULL, -1,
- COL_COMBO_IS_ADIUM, TRUE,
- COL_COMBO_VISIBLE_NAME, name,
- COL_COMBO_NAME, "adium",
- COL_COMBO_PATH, path,
+ COL_THEME_VISIBLE_NAME, name,
+ COL_THEME_NAME, "adium",
+ COL_THEME_IS_ADIUM, TRUE,
+ COL_THEME_ADIUM_PATH, path,
-1);
}
g_hash_table_unref (info);
@@ -796,7 +881,7 @@ preferences_themes_setup (EmpathyPreferences *preferences)
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (cell_layout, renderer, TRUE);
gtk_cell_layout_set_attributes (cell_layout, renderer,
- "text", COL_COMBO_VISIBLE_NAME, NULL);
+ "text", COL_THEME_VISIBLE_NAME, NULL);
gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store));
g_object_unref (store);
@@ -832,6 +917,8 @@ empathy_preferences_finalize (GObject *self)
{
EmpathyPreferencesPriv *priv = GET_PRIV (self);
+ g_object_unref (priv->theme_manager);
+
g_object_unref (priv->gsettings);
g_object_unref (priv->gsettings_chat);
g_object_unref (priv->gsettings_loc);
@@ -883,7 +970,9 @@ empathy_preferences_init (EmpathyPreferences *preferences)
"notebook", &priv->notebook,
"checkbutton_show_smileys", &priv->checkbutton_show_smileys,
"checkbutton_show_contacts_in_rooms", &priv->checkbutton_show_contacts_in_rooms,
+ "vbox_chat_theme", &priv->vbox_chat_theme,
"combobox_chat_theme", &priv->combobox_chat_theme,
+ "sw_chat_theme_preview", &priv->sw_chat_theme_preview,
"checkbutton_separate_chat_windows", &priv->checkbutton_separate_chat_windows,
"checkbutton_events_notif_area", &priv->checkbutton_events_notif_area,
"checkbutton_autoconnect", &priv->checkbutton_autoconnect,
@@ -918,6 +1007,13 @@ empathy_preferences_init (EmpathyPreferences *preferences)
priv->gsettings_ui = g_settings_new (EMPATHY_PREFS_UI_SCHEMA);
priv->gsettings_logger = g_settings_new (EMPATHY_PREFS_LOGGER_SCHEMA);
+ /* Create chat theme preview, and track changes */
+ priv->theme_manager = empathy_theme_manager_dup_singleton ();
+ tp_g_signal_connect_object (priv->theme_manager, "theme-changed",
+ G_CALLBACK (preferences_preview_theme_changed_cb),
+ preferences, 0);
+ preferences_preview_theme_changed_cb (priv->theme_manager, preferences);
+
preferences_themes_setup (preferences);
preferences_setup_widgets (preferences);
diff --git a/src/empathy-preferences.ui b/src/empathy-preferences.ui
index 4acc6f3c7..6bc17b761 100644
--- a/src/empathy-preferences.ui
+++ b/src/empathy-preferences.ui
@@ -1,308 +1,606 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.16"/>
- <!-- interface-naming-policy toplevel-contextual -->
- <object class="GtkNotebook" id="notebook">
+ <object class="GtkNotebook" id="notebook">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="border_width">5</property>
+ <child>
+ <object class="GtkBox" id="vbox197">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="border_width">5</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkBox" id="vbox197">
+ <object class="GtkAlignment" id="alignment11">
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">18</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkFrame" id="frame3">
+ <object class="GtkBox" id="vbox199">
<property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkAlignment" id="alignment11">
+ <object class="GtkCheckButton" id="checkbutton_show_smileys">
+ <property name="label" translatable="yes">Show _smileys as images</property>
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="vbox199">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkCheckButton" id="checkbutton_show_smileys">
- <property name="label" translatable="yes">Show _smileys as images</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_show_contacts_in_rooms">
- <property name="label" translatable="yes">Show contact _list in rooms</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label611">
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_show_contacts_in_rooms">
+ <property name="label" translatable="yes">Show contact _list in rooms</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Appearance</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label611">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Appearance</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkFrame" id="frame4">
+ <object class="GtkBox" id="vbox218">
<property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkAlignment" id="alignment12">
+ <object class="GtkCheckButton" id="checkbutton_separate_chat_windows">
+ <property name="label" translatable="yes">_Open new chats in separate windows</property>
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="vbox218">
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkCheckButton" id="checkbutton_separate_chat_windows">
- <property name="label" translatable="yes">_Open new chats in separate windows</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_events_notif_area">
- <property name="label" translatable="yes">Display incoming events in the notification area</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_autoconnect">
- <property name="label" translatable="yes">_Automatically connect on startup</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_logging">
- <property name="label" translatable="yes">Log conversations</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label612">
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_events_notif_area">
+ <property name="label" translatable="yes">Display incoming events in the notification area</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_autoconnect">
+ <property name="label" translatable="yes">_Automatically connect on startup</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_logging">
+ <property name="label" translatable="yes">Log conversations</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Behavior</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
</child>
</object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label612">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Behavior</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label602">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">General</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_notifications_enabled">
+ <property name="label" translatable="yes">_Enable bubble notifications</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_notifications_disabled_away">
+ <property name="label" translatable="yes">Disable notifications when _away or busy</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_notifications_focus">
+ <property name="label" translatable="yes">Enable notifications when the _chat is not focused</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_notifications_contact_signin">
+ <property name="label" translatable="yes">Enable notifications when a contact comes online</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_notifications_contact_signout">
+ <property name="label" translatable="yes">Enable notifications when a contact goes offline</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
</child>
- <child type="tab">
- <object class="GtkLabel" id="label602">
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Notifications</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="outer_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkBox" id="vbox219">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_sounds_enabled">
+ <property name="label" translatable="yes">_Enable sound notifications</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">General</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
</object>
<packing>
- <property name="tab_fill">False</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="vbox2">
+ <object class="GtkAlignment" id="alignment32">
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">6</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkCheckButton" id="checkbutton_notifications_enabled">
- <property name="label" translatable="yes">_Enable bubble notifications</property>
+ <object class="GtkCheckButton" id="checkbutton_sounds_disabled_away">
+ <property name="label" translatable="yes">Disable sounds when _away or busy</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox221">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label645">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Play sound for events</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow19">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="treeview_sounds">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection1"/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label607">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Sounds</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_location_publish">
+ <property name="label" translatable="yes">_Publish location to my contacts</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkAlignment" id="alignment1">
+ <object class="GtkBox" id="vbox4">
<property name="visible">True</property>
- <property name="left_padding">12</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkBox" id="vbox3">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
+ <property name="can_focus">False</property>
<property name="spacing">6</property>
- <property name="orientation">vertical</property>
<child>
- <object class="GtkCheckButton" id="checkbutton_notifications_disabled_away">
- <property name="label" translatable="yes">Disable notifications when _away or busy</property>
+ <object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <property name="yalign">0</property>
+ <property name="stock">gtk-dialog-info</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="checkbutton_notifications_focus">
- <property name="label" translatable="yes">Enable notifications when the _chat is not focused</property>
+ <object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Reduced location accuracy means that nothing more precise than your city, state and country will be published. GPS coordinates will be accurate to 1 decimal place.</property>
+ <property name="wrap">True</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_notifications_contact_signin">
- <property name="label" translatable="yes">Enable notifications when a contact comes online</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_notifications_contact_signout">
- <property name="label" translatable="yes">Enable notifications when a contact goes offline</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">3</property>
- </packing>
- </child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_location_reduce_accuracy">
+ <property name="label" translatable="yes" comments="To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.">_Reduce location accuracy</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="position">1</property>
- </packing>
</child>
- <child type="tab">
- <object class="GtkLabel" id="label1">
+ <child type="label">
+ <object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="label" translatable="yes">Notifications</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Privacy</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkBox" id="outer_vbox">
+ <object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">18</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkBox" id="vbox219">
+ <object class="GtkBox" id="vbox5">
<property name="visible">True</property>
- <property name="spacing">6</property>
+ <property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkCheckButton" id="checkbutton_sounds_enabled">
- <property name="label" translatable="yes">_Enable sound notifications</property>
+ <object class="GtkCheckButton" id="checkbutton_location_resource_gps">
+ <property name="label" translatable="yes">_GPS</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -313,500 +611,355 @@
</packing>
</child>
<child>
- <object class="GtkAlignment" id="alignment32">
+ <object class="GtkCheckButton" id="checkbutton_location_resource_cell">
+ <property name="label" translatable="yes">_Cellphone</property>
<property name="visible">True</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkCheckButton" id="checkbutton_sounds_disabled_away">
- <property name="label" translatable="yes">Disable sounds when _away or busy</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="vbox221">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <property name="orientation">vertical</property>
<child>
- <object class="GtkLabel" id="label645">
+ <object class="GtkCheckButton" id="checkbutton_location_resource_network">
+ <property name="label" translatable="yes">_Network (IP, Wi-Fi)</property>
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Play sound for events</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment33">
- <property name="visible">True</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow19">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="treeview_sounds">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- <property name="expand">True</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="position">2</property>
- </packing>
</child>
- <child type="tab">
- <object class="GtkLabel" id="label607">
+ <child type="label">
+ <object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="label" translatable="yes">Sounds</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Location sources:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
- <packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Location</property>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox168">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkFrame" id="frame7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkBox" id="vbox1">
+ <object class="GtkAlignment" id="alignment15">
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="orientation">vertical</property>
- <property name="spacing">18</property>
- <child>
- <object class="GtkCheckButton" id="checkbutton_location_publish">
- <property name="label" translatable="yes">_Publish location to my contacts</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkFrame" id="frame1">
+ <object class="GtkBox" id="vbox201">
<property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkAlignment" id="alignment2">
+ <object class="GtkScrolledWindow" id="scrolledwindow18">
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkBox" id="vbox4">
+ <object class="GtkTreeView" id="treeview_spell_checker">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkBox" id="hbox1">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <property name="orientation">horizontal</property>
- <child>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="yalign">0</property>
- <property name="stock">gtk-dialog-info</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="wrap">True</property>
- <property name="label" translatable="yes">Reduced location accuracy means that nothing more precise than your city, state and country will be published. GPS coordinates will be accurate to 1 decimal place.</property>
- <attributes>
- <attribute name="scale" value="0.8"/>
- </attributes>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_location_reduce_accuracy">
- <property name="label" translatable="yes" comments="To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees.">_Reduce location accuracy</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection2"/>
</child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Privacy</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
<child>
- <object class="GtkAlignment" id="alignment4">
+ <object class="GtkBox" id="hbox155">
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkBox" id="vbox5">
+ <object class="GtkImage" id="image422">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkCheckButton" id="checkbutton_location_resource_gps">
- <property name="label" translatable="yes">_GPS</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_location_resource_cell">
- <property name="label" translatable="yes">_Cellphone</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="checkbutton_location_resource_network">
- <property name="label" translatable="yes">_Network (IP, Wi-Fi)</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can_focus">False</property>
+ <property name="yalign">0</property>
+ <property name="stock">gtk-dialog-info</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label616">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The list of languages reflects only the languages for which you have a dictionary installed.</property>
+ <property name="wrap">True</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Location sources:</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
</child>
</object>
- <packing>
- <property name="position">3</property>
- </packing>
</child>
- <child type="tab">
- <object class="GtkLabel" id="label2">
+ <child type="label">
+ <object class="GtkLabel" id="label615">
<property name="visible">True</property>
- <property name="label" translatable="yes">Location</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Enable spell checking for languages:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
- <packing>
- <property name="position">3</property>
- <property name="tab_fill">False</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label567">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Spell Checking</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox206">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkFrame" id="frame11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkBox" id="vbox168">
+ <object class="GtkAlignment" id="alignment19">
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">18</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkFrame" id="frame7">
+ <object class="GtkBox" id="vbox_chat_theme">
<property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkAlignment" id="alignment15">
+ <object class="GtkBox" id="hbox139">
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkBox" id="vbox201">
+ <object class="GtkLabel" id="label586">
<property name="visible">True</property>
- <property name="spacing">6</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow18">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="treeview_spell_checker">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- <property name="expand">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="hbox155">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <property name="orientation">horizontal</property>
- <child>
- <object class="GtkImage" id="image422">
- <property name="visible">True</property>
- <property name="yalign">0</property>
- <property name="stock">gtk-dialog-info</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label616">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="wrap">True</property>
- <property name="label" translatable="yes">The list of languages reflects only the languages for which you have a dictionary installed.</property>
- <attributes>
- <attribute name="scale" value="0.8"/>
- </attributes>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Chat Th_eme:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">combobox_chat_theme</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combobox_chat_theme">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label615">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enable spell checking for languages:</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="label567">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Spell Checking</property>
- </object>
- <packing>
- <property name="position">4</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="vbox206">
- <property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="spacing">18</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkFrame" id="frame11">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
<child>
- <object class="GtkAlignment" id="alignment19">
- <property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <object class="GtkBox" id="hbox_chat_theme_variant">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkBox" id="vbox207">
+ <object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="spacing">6</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="hbox139">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <property name="orientation">horizontal</property>
- <child>
- <object class="GtkLabel" id="label586">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Chat Th_eme:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">combobox_chat_theme</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="combobox_chat_theme">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Theme Variant:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">combobox_chat_theme_variant</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combobox_chat_theme_variant">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label626">
+ <child>
+ <object class="GtkScrolledWindow" id="sw_chat_theme_preview">
<property name="visible">True</property>
- <property name="label" translatable="yes">Appearance</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <placeholder/>
+ </child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
</child>
</object>
- <packing>
- <property name="position">5</property>
- </packing>
</child>
- <child type="tab">
- <object class="GtkLabel" id="label624">
+ <child type="label">
+ <object class="GtkLabel" id="label626">
<property name="visible">True</property>
- <property name="label" translatable="yes">Themes</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Appearance</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
- <packing>
- <property name="position">5</property>
- <property name="tab_fill">False</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label624">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Themes</property>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
</interface>
diff --git a/src/empathy-streamed-media-window.c b/src/empathy-streamed-media-window.c
index 50d3f8ace..100a6b9f1 100644
--- a/src/empathy-streamed-media-window.c
+++ b/src/empathy-streamed-media-window.c
@@ -2713,7 +2713,7 @@ start_call (EmpathyStreamedMediaWindow *self)
priv->call_started = TRUE;
empathy_streamed_media_handler_start_call (priv->handler,
- gtk_get_current_event_time ());
+ empathy_get_current_action_time ());
if (empathy_streamed_media_handler_has_initial_video (priv->handler))
{
diff --git a/src/ev-sidebar.c b/src/ev-sidebar.c
index d0dd2b615..9c805372d 100644
--- a/src/ev-sidebar.c
+++ b/src/ev-sidebar.c
@@ -64,10 +64,8 @@ static void
ev_sidebar_class_init (EvSidebarClass *ev_sidebar_class)
{
GObjectClass *g_object_class;
- GtkWidgetClass *widget_class;
g_object_class = G_OBJECT_CLASS (ev_sidebar_class);
- widget_class = GTK_WIDGET_CLASS (ev_sidebar_class);
g_type_class_add_private (g_object_class, sizeof (EvSidebarPrivate));
diff --git a/tests/interactive/contact-manager.c b/tests/interactive/contact-manager.c
index 7793b44d9..e391df634 100644
--- a/tests/interactive/contact-manager.c
+++ b/tests/interactive/contact-manager.c
@@ -12,7 +12,6 @@ int
main (int argc, char **argv)
{
EmpathyContactManager *manager;
- GMainLoop *main_loop;
EmpathyContactListStore *store;
GtkWidget *combo;
GtkWidget *window;
@@ -22,7 +21,7 @@ main (int argc, char **argv)
empathy_gtk_init ();
empathy_debug_set_flags (g_getenv ("EMPATHY_DEBUG"));
- main_loop = g_main_loop_new (NULL, FALSE);
+ g_main_loop_new (NULL, FALSE);
manager = empathy_contact_manager_dup_singleton ();
store = empathy_contact_list_store_new (EMPATHY_CONTACT_LIST (manager));
empathy_contact_list_store_set_is_compact (store, TRUE);