Codebase list empathy / upstream/2.31.90
Imported Upstream version 2.31.90 Laurent Bigonville 13 years ago
111 changed file(s) with 14605 addition(s) and 8666 deletion(s). Raw diff Collapse all Expand all
0 commit 64aab02057a9a9496bcc94435f47f6a91cf1564a
1 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2 Date: Wed Aug 18 11:29:52 2010 +0200
3
4 prepare 2.31.90 release
5
6 NEWS | 69
7 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 configure.ac | 6 ++--
9 2 files changed, 72 insertions(+), 3 deletions(-)
10
11 commit 83bb1d62a578f41b8961c59cf805230b6ccc0e67
12 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
13 Date: Tue Aug 17 16:51:39 2010 +0200
14
15 event-manager: use tp_user_action_time_from_x11()
16
17 src/empathy-event-manager.c | 11 ++++-------
18 1 files changed, 4 insertions(+), 7 deletions(-)
19
20 commit 4c7bf004cedea3f3faca74ca9308ba826c3ecaab
21 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
22 Date: Tue Aug 17 16:49:59 2010 +0200
23
24 empathy_chat_window_present_chat: use
25 tp_user_action_time_should_present
26
27 src/empathy-chat-window.c | 7 ++-----
28 1 files changed, 2 insertions(+), 5 deletions(-)
29
30 commit 682b70335bf789a60508f1d0b1b1ab119fc3f4dc
31 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
32 Date: Tue Aug 17 16:36:54 2010 +0200
33
34 use TP_USER_ACTION_TIME_* (#627165)
35
36 libempathy-gtk/empathy-chat.c | 4 ++--
37 libempathy-gtk/empathy-share-my-desktop.c | 2 +-
38 libempathy/empathy-dispatcher.h | 3 ---
39 libempathy/empathy-ft-handler.c | 2 +-
40 libempathy/empathy-tp-chat.c | 2 +-
41 src/empathy-chat-manager.c | 4 ++--
42 src/empathy-chat-window.c | 6 +++---
43 src/empathy-event-manager.c | 6 +++---
44 src/empathy.c | 4 ++--
45 9 files changed, 15 insertions(+), 18 deletions(-)
46
47 commit ea6b6013b18549e10cda58468b42e6fc732e6fcd
48 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
49 Date: Tue Aug 17 16:28:37 2010 +0200
50
51 Update tp-glib dep to 0.11.13
52
53 configure.ac | 2 +-
54 1 files changed, 1 insertions(+), 1 deletions(-)
55
56 commit 1214fc8fc351f1861add2b6adbc6b1334bced1f7
57 Author: Philip Withnall <philip.withnall@collabora.co.uk>
58 Date: Tue Aug 17 18:55:12 2010 +0100
59
60 Aggregate group expansion/contraction in EmpathyIndividualView
61
62 The idle handler for expanding/contracting groups was getting
63 scheduled many
64 hundreds of times more than necessary when initialising the contact
65 list.
66 This aggregates expansion/contraction of group rows into a single idle
67 handler call which expands or contracts a number of rows at once.
68
69 libempathy-gtk/empathy-individual-view.c | 132
70 ++++++++++++++++++++++--------
71 1 files changed, 96 insertions(+), 36 deletions(-)
72
73 commit 8362ce9f550adecdbb48391dc7a342f3cdd2ad13
74 Author: Philip Withnall <philip.withnall@collabora.co.uk>
75 Date: Tue Aug 17 17:59:06 2010 +0100
76
77 Don't recursively expand contact list rows unnecessarily
78
79 libempathy-gtk/empathy-individual-view.c | 2 +-
80 1 files changed, 1 insertions(+), 1 deletions(-)
81
82 commit 9e050b87711ad401c2a19b0c59fbe4ed0a4bd325
83 Author: Philip Withnall <philip.withnall@collabora.co.uk>
84 Date: Tue Aug 17 11:54:57 2010 +0100
85
86 Bug 626552 — Sporadic tree model warnings upon initial fill
87 in Empathy
88
89 Work around bgo#621076 in EmpathyIndividualView to ensure that all
90 individuals and groups are visible in the contact list on initial
91 load.
92 Closes: bgo#626552
93
94 libempathy-gtk/empathy-individual-view.c | 20 +++++++++++++++-----
95 1 files changed, 15 insertions(+), 5 deletions(-)
96
97 commit 8a94e12fda3bc8d98b32f7ef05a32af7875da6f7
98 Author: Philip Withnall <philip.withnall@collabora.co.uk>
99 Date: Tue Aug 17 15:18:26 2010 +0100
100
101 Rearrange functions in EmpathyIndividualView
102
103 libempathy-gtk/empathy-individual-view.c | 218
104 +++++++++++++++---------------
105 1 files changed, 109 insertions(+), 109 deletions(-)
106
107 commit 57c1c9e225fee6aa2e08ffc85418a8c3fa4e0daf
108 Author: Fran Diéguez <fran.dieguez@mabishu.com>
109 Date: Tue Aug 17 18:37:04 2010 +0200
110
111 Updated Galician translations
112
113 po/gl.po | 62
114 +++++++++++++++++++++++++++++++++-----------------------------
115 1 files changed, 33 insertions(+), 29 deletions(-)
116
117 commit 302275ca112b66a6932dd7912b58c9910648c44d
118 Author: Jorge González <jorgegonz@svn.gnome.org>
119 Date: Tue Aug 17 17:37:18 2010 +0200
120
121 Updated Spanish translation
122
123 po/es.po | 64
124 ++++++++++++++++++++++++++++++++-----------------------------
125 1 files changed, 34 insertions(+), 30 deletions(-)
126
127 commit 2b0610ec22197d334ee3af336cafaa57a513823e
128 Author: Matej Urbančič <mateju@svn.gnome.org>
129 Date: Tue Aug 17 14:38:33 2010 +0200
130
131 Updated Slovenian translation
132
133 po/sl.po | 77
134 +++++++++++++++++++++++++++----------------------------------
135 1 files changed, 34 insertions(+), 43 deletions(-)
136
137 commit 3a21eabe7faefff44c3690c00b38ff63cca1f808
138 Author: Matej Urbančič <mateju@svn.gnome.org>
139 Date: Tue Aug 17 14:27:00 2010 +0200
140
141 Updated Slovenian translation
142
143 po/sl.po | 35 ++++++++++++++++++++---------------
144 1 files changed, 20 insertions(+), 15 deletions(-)
145
146 commit 62f67957957bd4616bd2b8371cdf37cb3ef8c972
147 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
148 Date: Fri Aug 13 11:32:00 2010 +0200
149
150 add preference to disable logging (#567858)
151
152 libempathy/empathy-gsettings.h | 3 +++
153 src/empathy-preferences.c | 11 +++++++++++
154 src/empathy-preferences.ui | 14 ++++++++++++++
155 3 files changed, 28 insertions(+), 0 deletions(-)
156
157 commit 7abe2062d5933836bf6d3eb5de28179bf3aa4a64
158 Author: Yaron Shahrabani <sh.yaron@gmail.com>
159 Date: Tue Aug 17 02:00:33 2010 +0300
160
161 Updated Hebrew translation.
162
163 po/he.po | 393
164 +++++++++++++++++++++++++++++++++++---------------------------
165 1 files changed, 224 insertions(+), 169 deletions(-)
166
167 commit 5d5ac4802ebcc1a1b9b3b5aff408a1032d4feb55
168 Author: Jorge González <jorgegonz@svn.gnome.org>
169 Date: Mon Aug 16 23:35:22 2010 +0200
170
171 Updated Spanish translation
172
173 po/es.po | 193
174 +++++++++++++++++++++++++++++++++-----------------------------
175 1 files changed, 102 insertions(+), 91 deletions(-)
176
177 commit 977d92ecf1403c7597cb243ed4dd7e2b1a5e8ba5
178 Author: Fran Diéguez <fran.dieguez@mabishu.com>
179 Date: Mon Aug 16 18:17:36 2010 +0200
180
181 Updated Galician translations
182
183 po/gl.po | 49 +++++++++++++++++++++++++++++++------------------
184 1 files changed, 31 insertions(+), 18 deletions(-)
185
186 commit c643efd2670c2cfa708eea02db2bb98fc05d44a3
187 Author: Travis Reitter <treitter@gmail.com>
188 Date: Fri Aug 13 16:49:34 2010 -0700
189
190 Support previous conversations in the Personas menu.
191
192 libempathy-gtk/empathy-individual-menu.c | 55
193 +++++++++++++++++-------------
194 libempathy-gtk/empathy-individual-menu.h | 3 +-
195 2 files changed, 33 insertions(+), 25 deletions(-)
196
197 commit 7bf345fee3e9fb42b5717ed9a51fb9f466a08e8f
198 Author: Travis Reitter <treitter@gmail.com>
199 Date: Thu Aug 12 17:06:50 2010 -0700
200
201 Support chat room invites in the Personas menu.
202
203 libempathy-gtk/empathy-individual-menu.c | 107
204 ++++++++++++++++++-----------
205 libempathy-gtk/empathy-individual-menu.h | 3 +-
206 2 files changed, 68 insertions(+), 42 deletions(-)
207
208 commit 383c3b1166a577e9fe5ae6bd6934c92f8499cc5f
209 Author: Travis Reitter <treitter@gmail.com>
210 Date: Thu Aug 12 16:08:25 2010 -0700
211
212 Support desktop sharing in the Personas menu.
213
214 libempathy-gtk/empathy-individual-menu.c | 24 ++++++++++++++++++------
215 1 files changed, 18 insertions(+), 6 deletions(-)
216
217 commit 90a91152a1d7db0c8f33eaf73ca766051efd7422
218 Author: Travis Reitter <treitter@gmail.com>
219 Date: Thu Aug 12 15:54:21 2010 -0700
220
221 Also support file transfer in the Personas menu.
222
223 libempathy-gtk/empathy-individual-menu.c | 24 ++++++++++++++++++------
224 libempathy-gtk/empathy-individual-menu.h | 3 ++-
225 2 files changed, 20 insertions(+), 7 deletions(-)
226
227 commit b52cc53444e1373c7f4d179634fcf8566f0786f3
228 Author: Travis Reitter <treitter@gmail.com>
229 Date: Thu Aug 12 15:38:29 2010 -0700
230
231 Support calls in the Personas menu.
232
233 libempathy-gtk/empathy-individual-menu.c | 48
234 ++++++++++++++++++++++-------
235 libempathy-gtk/empathy-individual-menu.h | 6 ++-
236 libempathy-gtk/empathy-individual-view.c | 4 +-
237 3 files changed, 42 insertions(+), 16 deletions(-)
238
239 commit eba39f0ca541d20531528eb92e86aa7d623bf3fd
240 Author: Travis Reitter <treitter@gmail.com>
241 Date: Thu Aug 12 14:12:43 2010 -0700
242
243 Add Personas entries to the contact menu.
244
245 This lets us specifically select which contact to chat and perform
246 other actions
247 with.
248
249 libempathy-gtk/empathy-individual-menu.c | 145
250 ++++++++++++++++++++++++++++--
251 libempathy-gtk/empathy-individual-menu.h | 6 +-
252 2 files changed, 143 insertions(+), 8 deletions(-)
253
254 commit a626735369a638e882e95b5bc4291cc9eed03465
255 Author: Travis Reitter <treitter@gmail.com>
256 Date: Thu Aug 12 13:05:00 2010 -0700
257
258 Make the Share my Desktop item map to the first capable contact.
259
260 libempathy-gtk/empathy-individual-menu.c | 24 +++++-------------------
261 1 files changed, 5 insertions(+), 19 deletions(-)
262
263 commit 8cb990ba2b68d4c3eb30f3fcdc536b3f2503f80d
264 Author: Travis Reitter <treitter@gmail.com>
265 Date: Thu Aug 12 08:09:25 2010 -0700
266
267 Make the Invite to Chat Room list all possible rooms for all
268 subcontacts.
269
270 libempathy-gtk/empathy-individual-menu.c | 115
271 +++++++++++++++++++++++++----
272 1 files changed, 99 insertions(+), 16 deletions(-)
273
274 commit 65ebc3c5f77b566def16ef0477109877d82fe185
275 Author: Travis Reitter <treitter@gmail.com>
276 Date: Wed Aug 11 10:33:40 2010 -0700
277
278 Make Send File context menu choose the first capable contact.
279
280 libempathy-gtk/empathy-individual-menu.c | 24 ++++++------------------
281 1 files changed, 6 insertions(+), 18 deletions(-)
282
283 commit 148655a23b2ead60f6349590d8ce7793abe11989
284 Author: Philip Withnall <philip.withnall@collabora.co.uk>
285 Date: Mon Jul 5 15:58:52 2010 +0100
286
287 Make the individual menu items map to the first capable contact.
288
289 Previously, they assumed every Individual contained exactly one
290 TpContact.
291
292 libempathy-gtk/empathy-individual-menu.c | 121
293 +++++++++++++++++++----------
294 1 files changed, 79 insertions(+), 42 deletions(-)
295
296 commit 0bb172885c0bcaa133a091bde15805aa98912503
297 Author: Philip Withnall <philip.withnall@collabora.co.uk>
298 Date: Mon Jul 5 17:09:35 2010 +0100
299
300 Show information for all an individual's personas in the information
301 dialogue
302
303 libempathy-gtk/Makefile.am | 2 +
304 .../empathy-individual-information-dialog.c | 262
305 ++++++++++++++++++++
306 .../empathy-individual-information-dialog.h | 60 +++++
307 libempathy-gtk/empathy-individual-menu.c | 8 +-
308 4 files changed, 326 insertions(+), 6 deletions(-)
309
310 commit ab7d6e660430a089bde964895a8229cb2f96ca55
311 Author: Matej Urbančič <mateju@svn.gnome.org>
312 Date: Mon Aug 16 14:33:08 2010 +0200
313
314 Updated Slovenian translation
315
316 po/sl.po | 157
317 +++++++++++++++++++++++++++++++++-----------------------------
318 1 files changed, 84 insertions(+), 73 deletions(-)
319
320 commit dc3a07f523c0d903d62cc9d871095605d35a99fe
321 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
322 Date: Mon Aug 16 10:29:54 2010 +0200
323
324 log-viewer: rename labels of the Back and Previous buttons
325
326 "Find previous" and "Find next" is what we are already using in the
327 chat view
328 (#626994).
329
330 libempathy-gtk/empathy-log-window.ui | 16 ++++++++++++----
331 1 files changed, 12 insertions(+), 4 deletions(-)
332
333 commit 1006c7a80aa4010a73ac4cef2213b5d32ab33e9a
334 Author: Fran Diéguez <fran.dieguez@mabishu.com>
335 Date: Mon Aug 16 10:31:14 2010 +0200
336
337 Updated Galician translations
338
339 po/gl.po | 207
340 +++++++++++++++++++++++++++++++++++---------------------------
341 1 files changed, 117 insertions(+), 90 deletions(-)
342
343 commit c0c7a37b928335ace7f541b7759e46931f81afdd
344 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
345 Date: Mon Aug 16 10:18:34 2010 +0200
346
347 log-window: fix ordering of the Back and Previous buttons (#626992)
348
349 libempathy-gtk/empathy-log-window.ui | 58
350 +++++++++++++++++++++------------
351 1 files changed, 37 insertions(+), 21 deletions(-)
352
353 commit 90eb02c032e70dc8b2e01739bde6a083668d253b
354 Author: A S Alam <aalam@users.sf.net>
355 Date: Tue Aug 17 07:18:39 2010 +0530
356
357 update translation for Punjabi
358
359 po/pa.po | 652
360 ++++++++++++++++++++++++++++++++++++--------------------------
361 1 files changed, 376 insertions(+), 276 deletions(-)
362
363 commit 033c9bf29b0a47c9c24fb2057ce52565cc356fcb
364 Author: Jorge González <jorgegonz@svn.gnome.org>
365 Date: Sun Aug 15 20:44:53 2010 +0200
366
367 Updated Spanish translation
368
369 po/es.po | 333
370 +++++++++++++++++++++++++++++++++++---------------------------
371 1 files changed, 190 insertions(+), 143 deletions(-)
372
373 commit 83612527fdb34beb1c7a6c5e35748efb3b1859a8
374 Author: Daniel Nylander <po@danielnylander.se>
375 Date: Sat Aug 14 13:12:00 2010 +0200
376
377 Updated Swedish translation
378
379 po/sv.po | 376
380 ++++++++++++++++++++++++++++++++++----------------------------
381 1 files changed, 205 insertions(+), 171 deletions(-)
382
383 commit 81c51d3c1b3fd68cb31848ef86d8c3d1859aacdf
384 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
385 Date: Fri Aug 13 12:21:23 2010 +0200
386
387 event-manager: we don't use the dispatcher any more
388
389 src/empathy-event-manager.c | 4 ----
390 1 files changed, 0 insertions(+), 4 deletions(-)
391
392 commit 5d63780e638c33a9622b5f205890a4daef06d250
393 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
394 Date: Fri Aug 13 11:12:10 2010 +0200
395
396 empathy_contact_new can be static now
397
398 Everyone should use empathy_contact_dup_from_tp_contact()
399
400 libempathy/empathy-contact.c | 2 +-
401 libempathy/empathy-contact.h | 1 -
402 2 files changed, 1 insertions(+), 2 deletions(-)
403
404 commit d84c92507bd5398340faf5323965df92f97bb4e2
405 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
406 Date: Fri Aug 13 11:12:00 2010 +0200
407
408 persona-view: use empathy_contact_dup_from_tp_contact instead of
409 empathy_contact_new
410
411 libempathy-gtk/empathy-persona-view.c | 2 +-
412 1 files changed, 1 insertions(+), 1 deletions(-)
413
414 commit 36d92a29445e3841c2c20befad039031fcd869bc
415 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
416 Date: Fri Aug 13 11:08:52 2010 +0200
417
418 persona-store: use empathy_contact_dup_from_tp_contact instead of
419 empathy_contact_new
420
421 libempathy-gtk/empathy-persona-store.c | 10 +++++-----
422 1 files changed, 5 insertions(+), 5 deletions(-)
423
424 commit 3d2f200b14e889d1ac91b3d081c1c00abd0d2e37
425 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
426 Date: Thu Aug 12 17:00:15 2010 +0200
427
428 add g_return_val_if_fail in _new functions
429
430 libempathy/empathy-tp-call.c | 1 +
431 libempathy/empathy-tp-chat.c | 3 +++
432 2 files changed, 4 insertions(+), 0 deletions(-)
433
434 commit 4454890cf434cece46d5cf56b3e23b500cb6ac43
435 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
436 Date: Thu Aug 12 16:37:52 2010 +0200
437
438 empathy_tp_call_get_connection_manager: use the account directly
439
440 libempathy/empathy-tp-call.c | 15 +--------------
441 1 files changed, 1 insertions(+), 14 deletions(-)
442
443 commit 2f6aec58f110a13b8c370d676bdd9fb6946893ee
444 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
445 Date: Thu Aug 12 16:34:52 2010 +0200
446
447 tp-call: add account property
448
449 libempathy/empathy-call-factory.c | 2 +-
450 libempathy/empathy-call-handler.c | 10 +++++++---
451 libempathy/empathy-tp-call.c | 32 +++++++++++++++++++++++++++++++-
452 libempathy/empathy-tp-call.h | 5 ++++-
453 src/empathy-event-manager.c | 2 +-
454 5 files changed, 44 insertions(+), 7 deletions(-)
455
456 commit ce0fe44e47aa8c1b5365d1e3140aff59fcfff4f7
457 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
458 Date: Thu Aug 12 16:25:53 2010 +0200
459
460 chat: get the account from the tp-chat
461
462 libempathy-gtk/empathy-chat.c | 5 ++---
463 1 files changed, 2 insertions(+), 3 deletions(-)
464
465 commit 567a34cbbb5c93b40ee44739fff9a908bd31195b
466 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
467 Date: Thu Aug 12 16:16:27 2010 +0200
468
469 tp-chat: add 'account' property
470
471 libempathy/empathy-tp-chat.c | 40
472 +++++++++++++++++++++++++++++++++++-----
473 libempathy/empathy-tp-chat.h | 4 +++-
474 src/empathy-chat-manager.c | 2 +-
475 src/empathy-event-manager.c | 2 +-
476 4 files changed, 40 insertions(+), 8 deletions(-)
477
478 commit d25eb63968ae1880fb75fba2726c0e02a02f7e90
479 Author: Matej Urbančič <mateju@svn.gnome.org>
480 Date: Thu Aug 12 14:09:58 2010 +0200
481
482 Updated Slovenian translation
483
484 po/sl.po | 310
485 +++++++++++++++++++++++++++++++++-----------------------------
486 1 files changed, 166 insertions(+), 144 deletions(-)
487
488 commit cabd8bb506a891fd75ba2a9edb43783e479161ab
489 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
490 Date: Thu Aug 12 12:24:39 2010 +0200
491
492 widget-irc: call update_server_params in setup so buttons are updated
493 (#626620)
494
495 Thanks to Bilal Akhtar for the original patch.
496
497 libempathy-gtk/empathy-account-widget-irc.c | 1 +
498 1 files changed, 1 insertions(+), 0 deletions(-)
499
500 commit faa8d609e0c6bcb70a61f1e78ea97d0557a98942
501 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
502 Date: Thu Aug 12 11:12:34 2010 +0200
503
504 compare accounts using their object paths rather than their TpAccount
505
506 It's safer and we could have 2 proxies for the same Account.
507
508 libempathy-gtk/empathy-log-window.c | 4 +++-
509 1 files changed, 3 insertions(+), 1 deletions(-)
510
511 commit 193a5cf3e7a55366f6ad6adb8496e0ccbd6e15b1
512 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
513 Date: Thu Aug 12 11:06:46 2010 +0200
514
515 use tp_strdiff
516
517 libempathy-gtk/empathy-log-window.c | 6 +++---
518 1 files changed, 3 insertions(+), 3 deletions(-)
519
520 commit 5a811009ecdfaf640e41a46e9edece1f3ef5bced
521 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
522 Date: Thu Aug 12 11:03:14 2010 +0200
523
524 use explicit pointer comparaisons
525
526 libempathy-gtk/empathy-log-window.c | 22 +++++++++++-----------
527 1 files changed, 11 insertions(+), 11 deletions(-)
528
529 commit 647d188902cbd616ad2a3681e9b3062fad46d31c
530 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
531 Date: Thu Aug 12 10:55:12 2010 +0200
532
533 select_account_once_ready: free the account and ID to avoid leaks
534
535 libempathy-gtk/empathy-log-window.c | 4 ++++
536 1 files changed, 4 insertions(+), 0 deletions(-)
537
538 commit ba7ad370ba65cf7a2f445307b445681a488b0d96
539 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
540 Date: Wed Aug 11 16:27:07 2010 +0200
541
542 bump logger dep to 0.1.5
543
544 The fix for #622714 relies on fdo #29058 which has been fixed in
545 logger 0.1.5
546
547 configure.ac | 2 +-
548 1 files changed, 1 insertions(+), 1 deletions(-)
549
550 commit 4f9a1a249f0447b45f8c96d3228013280e94e082
551 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
552 Date: Wed Jul 14 15:36:04 2010 +0200
553
554 select the account once we have populated the model with its chats
555 (#622714)
556
557 libempathy-gtk/empathy-log-window.c | 22 ++++++++++++++++------
558 1 files changed, 16 insertions(+), 6 deletions(-)
559
560 commit d21720ea54edc73128bcdcdcc4faee834d7c1c4f
561 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
562 Date: Wed Jul 14 15:10:22 2010 +0200
563
564 log_manager_got_chats_cb: don't rely on the selected account any more
565
566 Getting the chats is now an async operation, so the selected
567 account could
568 have changed while we were fetching the chats. So instead of using the
569 currently selected account we use the account we receive from the hit.
570
571 Note that this depends on this fix in the logger:
572 https://bugs.freedesktop.org/show_bug.cgi?id=29058
573
574 libempathy-gtk/empathy-log-window.c | 12 ++++--------
575 1 files changed, 4 insertions(+), 8 deletions(-)
576
577 commit 12bbcaef96d24f781f1cc12757a09acc15b217ba
578 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
579 Date: Tue Jul 13 15:49:54 2010 +0200
580
581 no need to pass account and chat infos to
582 log_window_chats_set_selected
583
584 libempathy-gtk/empathy-log-window.c | 22 ++++++++--------------
585 1 files changed, 8 insertions(+), 14 deletions(-)
586
587 commit 5e5c683936f90d3cdc8028827b3d45d71e7dc4a3
588 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
589 Date: Tue Jul 13 15:44:08 2010 +0200
590
591 also use select_account_once_ready when the window already exists
592
593 libempathy-gtk/empathy-log-window.c | 3 +--
594 1 files changed, 1 insertions(+), 2 deletions(-)
595
596 commit 861b7dab7368472935d533a9bb0c65ad6c1e35c2
597 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
598 Date: Tue Jul 13 15:42:45 2010 +0200
599
600 keep a ref on the account
601
602 libempathy-gtk/empathy-log-window.c | 3 ++-
603 1 files changed, 2 insertions(+), 1 deletions(-)
604
605 commit 67372f1ad852b29b7c8c638a7bae397b6be3098c
606 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
607 Date: Tue Jul 13 15:41:33 2010 +0200
608
609 factor out select_account_once_ready
610
611 libempathy-gtk/empathy-log-window.c | 34
612 ++++++++++++++++++++++------------
613 1 files changed, 22 insertions(+), 12 deletions(-)
614
615 commit 99c59741441d9b10df00b2c63f5a119de9cfc5f2
616 Author: Philip Withnall <philip.withnall@collabora.co.uk>
617 Date: Wed Aug 11 17:39:54 2010 +0100
618
619 Fix linking menu entry mnemonic
620
621 Closes: bgo#626130
622
623 libempathy-gtk/empathy-individual-menu.c | 2 +-
624 1 files changed, 1 insertions(+), 1 deletions(-)
625
626 commit dd8b8fb6b503194aecec14b4f5f9186c253a46c6
627 Author: Philip Withnall <philip.withnall@collabora.co.uk>
628 Date: Thu Aug 5 17:28:16 2010 +0100
629
630 Add EmpathyLinkingDialog
631
632 A dialogue which uses EmpathyIndividualLinker to allow linking
633 of Individuals,
634 accessible by a "Link" entry in the contacts' context menu.
635
636 libempathy-gtk/Makefile.am | 2 +
637 libempathy-gtk/empathy-individual-menu.c | 39 +++++++-
638 libempathy-gtk/empathy-individual-menu.h | 4 +-
639 libempathy-gtk/empathy-linking-dialog.c | 175
640 ++++++++++++++++++++++++++++++
641 libempathy-gtk/empathy-linking-dialog.h | 61 +++++++++++
642 po/POTFILES.in | 1 +
643 6 files changed, 280 insertions(+), 2 deletions(-)
644
645 commit 9d23b85fc16e7bc4b83af2850fdd2e96909b09d9
646 Author: Philip Withnall <philip.withnall@collabora.co.uk>
647 Date: Mon Aug 9 11:25:20 2010 +0100
648
649 Allow linking personas through EmpathyIndividualManager
650
651 Wrap the FolksIndividualAggregator persona linking API in
652 EmpathyIndividualManager with some basic error reporting (it isn't
653 expected
654 that linking will fail).
655
656 libempathy/empathy-individual-manager.c | 34
657 +++++++++++++++++++++++++++++++
658 libempathy/empathy-individual-manager.h | 3 ++
659 2 files changed, 37 insertions(+), 0 deletions(-)
660
661 commit 4b7d482ea72ad143c4ed2c7b778581ed669723e3
662 Author: Philip Withnall <philip.withnall@collabora.co.uk>
663 Date: Thu Aug 5 17:27:24 2010 +0100
664
665 Add EmpathyIndividualLinker
666
667 This is a widget to allow selection of Individuals to link together
668 to form
669 linked Individuals.
670
671 libempathy-gtk/Makefile.am | 2 +
672 libempathy-gtk/empathy-individual-linker.c | 609
673 ++++++++++++++++++++++++++++
674 libempathy-gtk/empathy-individual-linker.h | 70 ++++
675 po/POTFILES.in | 1 +
676 4 files changed, 682 insertions(+), 0 deletions(-)
677
678 commit 62318cf781b2d94dc8bc4d5f084e12e6a269f354
679 Author: Philip Withnall <philip.withnall@collabora.co.uk>
680 Date: Thu Aug 5 17:27:44 2010 +0100
681
682 Add EmpathyIndividualWidget
683
684 This displays details for a single Individual, in much the same
685 way that
686 EmpathyContactWidget displays the details of a single Persona.
687
688 libempathy-gtk/Makefile.am | 2 +
689 libempathy-gtk/empathy-individual-widget.c | 257
690 ++++++++++++++++++++++++++++
691 libempathy-gtk/empathy-individual-widget.h | 106 ++++++++++++
692 3 files changed, 365 insertions(+), 0 deletions(-)
693
694 commit 9acc3aabf75d159a0c7b6bb729ccfd9d8daff865
695 Author: Philip Withnall <philip.withnall@collabora.co.uk>
696 Date: Wed Aug 4 16:49:11 2010 +0100
697
698 Add EmpathyPersonaStore and EmpathyPersonaView
699
700 Based on stripped-down versions of EmpathyContactListStore and
701 EmpathyContactListView, these allow listing of all the Personas for
702 a given
703 Individual.
704
705 libempathy-gtk/Makefile.am | 4 +
706 libempathy-gtk/empathy-persona-store.c | 1168
707 ++++++++++++++++++++++++++++++++
708 libempathy-gtk/empathy-persona-store.h | 107 +++
709 libempathy-gtk/empathy-persona-view.c | 574 ++++++++++++++++
710 libempathy-gtk/empathy-persona-view.h | 74 ++
711 5 files changed, 1927 insertions(+), 0 deletions(-)
712
713 commit 7322c5352d6b719da9f632c68fa48ae1ea81977f
714 Author: Philip Withnall <philip.withnall@collabora.co.uk>
715 Date: Wed Aug 11 17:29:47 2010 +0100
716
717 Bump libfolks requirement to 0.1.13 for the linking API changes
718
719 configure.ac | 2 +-
720 1 files changed, 1 insertions(+), 1 deletions(-)
721
722 commit f84b2a0c688bf42002ddb93ca941af166c846687
723 Author: Philip Withnall <philip.withnall@collabora.co.uk>
724 Date: Thu Aug 5 17:14:06 2010 +0100
725
726 Only enable row reordering in EmpathyIndividualView if dragging
727 is enabled
728
729 libempathy-gtk/empathy-individual-view.c | 15 +++++++++------
730 1 files changed, 9 insertions(+), 6 deletions(-)
731
732 commit c10575354749cf6e26a2826a214a31eac4815196
733 Author: Fran Diéguez <fran.dieguez@mabishu.com>
734 Date: Wed Aug 11 18:27:41 2010 +0200
735
736 Updated galician translations
737
738 po/gl.po | 339
739 +++++++++++++++++++++++++++++++++-----------------------------
740 1 files changed, 181 insertions(+), 158 deletions(-)
741
742 commit aef77c9a4bd157f0dd128a845c26c7ff134b3b2d
743 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
744 Date: Wed Aug 11 17:30:40 2010 +0200
745
746 remove empathy-dispatch-operation
747
748 libempathy/Makefile.am | 2 -
749 libempathy/empathy-call-factory.h | 1 -
750 libempathy/empathy-dispatch-operation.c | 627
751 -------------------------------
752 libempathy/empathy-dispatch-operation.h | 126 ------
753 libempathy/empathy-dispatcher.h | 1 -
754 libempathy/empathy-ft-factory.h | 1 -
755 libempathy/empathy-utils.c | 1 -
756 src/empathy.c | 1 -
757 8 files changed, 0 insertions(+), 760 deletions(-)
758
759 commit e5f1b9ae3ff61e5a4ed0dca4576879744032233c
760 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
761 Date: Wed Aug 11 17:22:46 2010 +0200
762
763 dispatcher: remove more unused attributes and code
764
765 libempathy/empathy-dispatcher.c | 75
766 +--------------------------------------
767 1 files changed, 1 insertions(+), 74 deletions(-)
768
769 commit adacbe4f6ef767063a0727368de48cecef1f8fb6
770 Merge: 02cc95c 4e2b408
771 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
772 Date: Wed Aug 11 17:28:01 2010 +0200
773
774 Merge remote branch 'lfrb/ft-cancel'
775
776 commit 02cc95c188b9b29e91b0e6ffae5325c20b10377a
777 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
778 Date: Wed Aug 11 17:15:26 2010 +0200
779
780 dispatcher: use TpCapabilities to get the RCC (#626636)
781
782 libempathy/empathy-dispatcher.c | 75
783 +++++++++++++++-----------------------
784 1 files changed, 30 insertions(+), 45 deletions(-)
785
786 commit 1c08a3a0b5538cc4e1b97535efd66f6f0d5146d5
787 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
788 Date: Wed Aug 11 17:05:33 2010 +0200
789
790 dispatcher: use tp_proxy_prepare_async instead of
791 tp_connection_call_when_ready
792
793 libempathy/empathy-dispatcher.c | 18 ++++++++++++------
794 1 files changed, 12 insertions(+), 6 deletions(-)
795
796 commit 4e2b40828d4f8c7fd4cbaf27ff345ce2adb4ffcf
797 Author: Louis-Francis Ratté-Boulianne
798 <louis-francis.ratte-boulianne@collabora.co.uk>
799 Date: Wed Aug 11 11:09:34 2010 -0400
800
801 Ignore socket errors when closing the file-transfer channel
802
803 libempathy/empathy-tp-file.c | 9 +++++++--
804 1 files changed, 7 insertions(+), 2 deletions(-)
805
806 commit dd4f24ee49d50145a30722010f6d849d36129c7c
807 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
808 Date: Wed Aug 11 16:44:33 2010 +0200
809
810 bye bye empathy-handler
811
812 libempathy/Makefile.am | 2 -
813 libempathy/empathy-handler.c | 416
814 ------------------------------------------
815 libempathy/empathy-handler.h | 91 ---------
816 3 files changed, 0 insertions(+), 509 deletions(-)
817
818 commit 7ccdd1850f123f1e4a3bcc019ab422b1291c39e1
819 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
820 Date: Tue Aug 10 17:27:56 2010 +0200
821
822 dispatcher: remove channel handling and requesting code
823
824 libempathy/empathy-dispatcher.c | 945
825 ---------------------------------------
826 libempathy/empathy-dispatcher.h | 28 --
827 2 files changed, 0 insertions(+), 973 deletions(-)
828
829 commit 95efa6ca70aa8cf1dc3283706c2254f45cad59c5
830 Merge: 9a48fa9 734ecf3
831 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
832 Date: Wed Aug 11 16:20:42 2010 +0200
833
834 Merge branch 'request-chat-626630'
835
836 commit 734ecf362e856ea8cc61f119dc371cd90b7851af
837 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
838 Date: Wed Aug 11 15:32:52 2010 +0200
839
840 empathy_dispatcher_join_muc: use TpAccountChannelRequest
841
842 libempathy/empathy-dispatcher.c | 103
843 +++++---------------------------------
844 1 files changed, 14 insertions(+), 89 deletions(-)
845
846 commit d339921eaf86de17aaae585070ae479cfbf4734f
847 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
848 Date: Wed Aug 11 15:28:09 2010 +0200
849
850 empathy_dispatcher_join_muc: get an account instead of a connection
851
852 libempathy-gtk/empathy-chat.c | 9 +++--
853 libempathy/empathy-dispatcher.c | 13 +++++--
854 libempathy/empathy-dispatcher.h | 2 +-
855 src/empathy-chat-manager.c | 62
856 ++++++-------------------------------
857 src/empathy-main-window.c | 5 +--
858 src/empathy-new-chatroom-dialog.c | 6 ++--
859 src/empathy.c | 9 ++---
860 7 files changed, 32 insertions(+), 74 deletions(-)
861
862 commit fabcd2ec298f6773112c6fad57238c6f7bc2d77e
863 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
864 Date: Wed Aug 11 15:08:39 2010 +0200
865
866 re-implement empathy_dispatcher_chat_with_contact using
867 empathy_dispatcher_chat_with_contact_id
868
869 We don't use the callback arg anyway.
870
871 libempathy-gtk/empathy-contact-list-view.c | 2 +-
872 libempathy-gtk/empathy-contact-menu.c | 3 +-
873 libempathy-gtk/empathy-individual-menu.c | 3 +-
874 libempathy-gtk/empathy-individual-view.c | 2 +-
875 libempathy/empathy-dispatcher.c | 46
876 ++-------------------------
877 libempathy/empathy-dispatcher.h | 4 +--
878 tests/interactive/empetit.c | 22 +-------------
879 7 files changed, 10 insertions(+), 72 deletions(-)
880
881 commit 17624f70285d74ed77f27d62f452095589512310
882 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
883 Date: Wed Aug 11 14:54:44 2010 +0200
884
885 empathy_dispatcher_chat_with_contact_id: use TpAccountChannelRequest
886
887 libempathy/empathy-dispatcher.c | 67
888 +++++++++++++--------------------------
889 1 files changed, 22 insertions(+), 45 deletions(-)
890
891 commit 72e7c137e1ce5f45c93583540b04fc106b2656d1
892 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
893 Date: Wed Aug 11 14:48:40 2010 +0200
894
895 empathy_dispatcher_chat_with_contact_id: get a TpAccount instead of
896 a TpConnection
897
898 libempathy-gtk/empathy-chat.c | 20 ++++++--------------
899 libempathy-gtk/empathy-new-message-dialog.c | 8 ++++----
900 libempathy/empathy-dispatcher.c | 13 +++++++++----
901 libempathy/empathy-dispatcher.h | 2 +-
902 src/empathy-chat-manager.c | 6 +++++-
903 src/empathy-chat-window.c | 10 ++--------
904 6 files changed, 27 insertions(+), 32 deletions(-)
905
906 commit 9a48fa95672a4e3287dc6564f676bed5dbb7d358
907 Author: Matej Urbančič <mateju@svn.gnome.org>
908 Date: Wed Aug 11 14:40:22 2010 +0200
909
910 Updated Slovenian translation
911
912 po/sl.po | 101
913 ++++++++++++++++++++++++++++++++++---------------------------
914 1 files changed, 56 insertions(+), 45 deletions(-)
915
916 commit 8a8ba7a5697c6e5494854c99dc9aa4a7fc7a45bd
917 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
918 Date: Wed Aug 11 14:32:02 2010 +0200
919
920 empathy_dispatcher_chat_with_contact_id: remove callback argument
921
922 It's unused anyway.
923
924 libempathy-gtk/empathy-chat.c | 3 +--
925 libempathy-gtk/empathy-new-message-dialog.c | 2 +-
926 libempathy/empathy-dispatcher.c | 8 +++-----
927 libempathy/empathy-dispatcher.h | 5 ++---
928 src/empathy-chat-manager.c | 2 +-
929 src/empathy-chat-window.c | 2 +-
930 6 files changed, 9 insertions(+), 13 deletions(-)
931
932 commit d82293953e49e54dbdaba7f0fe71ef6387099e2f
933 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
934 Date: Wed Aug 11 14:17:57 2010 +0200
935
936 empathy_call_factory_new_call_with_streams: don't leak the hash table
937
938 libempathy/empathy-call-factory.c | 1 +
939 1 files changed, 1 insertions(+), 0 deletions(-)
940
941 commit c6840c1afba475378163f5bb54cc1abcbc2deccc
942 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
943 Date: Tue Aug 10 17:25:35 2010 +0200
944
945 share-my-desktop: use TpAccountChannelRequest
946
947 libempathy-gtk/empathy-share-my-desktop.c | 32
948 +++++++++++++++++++++-------
949 1 files changed, 24 insertions(+), 8 deletions(-)
950
951 commit 45e0ed0dd99ba9909721ef0838306764c9156655
952 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
953 Date: Tue Aug 10 17:19:12 2010 +0200
954
955 tp-chat: use TpAccountChannelRequest
956
957 libempathy/empathy-tp-chat.c | 32 ++++++++++++++++++++++++--------
958 1 files changed, 24 insertions(+), 8 deletions(-)
959
960 commit 8bf01d9bbd8a80cd1d898ecc26430304ac1482c9
961 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
962 Date: Tue Aug 10 17:07:08 2010 +0200
963
964 new-call-dialog: use TpAccountChannelRequest
965
966 libempathy-gtk/empathy-new-call-dialog.c | 35
967 +++++++++++++++++++++--------
968 1 files changed, 25 insertions(+), 10 deletions(-)
969
970 commit b952de7a60106948665bc429ebc5129539d4ff2a
971 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
972 Date: Tue Aug 10 16:44:48 2010 +0200
973
974 call-factory: use TpAccountChannelRequest to request the media channel
975
976 libempathy/empathy-call-factory.c | 33
977 +++++++++++++++++++++++++++------
978 1 files changed, 27 insertions(+), 6 deletions(-)
979
980 commit 3f28e2304aab16ad6d68054a19dcbfdd5c75e7c8
981 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
982 Date: Mon Aug 9 14:57:08 2010 +0200
983
984 empathy_call_factory_new_call_with_streams: remove callback arg
985
986 If you want to handle the channel yourself then use
987 TpAccountChannelRequest.
988
989 libempathy-gtk/empathy-contact-menu.c | 4 ++--
990 libempathy-gtk/empathy-individual-menu.c | 4 ++--
991 libempathy/empathy-call-factory.c | 3 +--
992 libempathy/empathy-call-factory.h | 1 -
993 4 files changed, 5 insertions(+), 7 deletions(-)
994
995 commit 82ffd1da38bd5e6b81d757d5218b41cde85d77ae
996 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
997 Date: Mon Aug 9 14:53:40 2010 +0200
998
999 empathy_call_handler_start_call: use
1000 tp_account_channel_request_create_and_handle_channel_async
1001
1002 libempathy/empathy-call-handler.c | 43
1003 +++++++++++++++++++++++++-----------
1004 1 files changed, 30 insertions(+), 13 deletions(-)
1005
1006 commit 17810b94827e9103136ea2cf9192629eebe689b0
1007 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1008 Date: Mon Aug 9 14:53:08 2010 +0200
1009
1010 factor out empathy_call_factory_create_request
1011
1012 libempathy/empathy-call-factory.c | 31 ++++++++++++++++++++-----------
1013 libempathy/empathy-call-factory.h | 4 ++++
1014 2 files changed, 24 insertions(+), 11 deletions(-)
1015
1016 commit 617ccb69392445c4843b879ddc997885df81e8f8
1017 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1018 Date: Wed Aug 11 10:19:12 2010 +0200
1019
1020 add support for the errors introduced in spec 0.19.11
1021
1022 libempathy/empathy-utils.c | 9 +++++++++
1023 1 files changed, 9 insertions(+), 0 deletions(-)
1024
1025 commit de947130fc39cc6168f18b87b82707a529094e2f
1026 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1027 Date: Wed Aug 11 12:18:40 2010 +0200
1028
1029 fix indentation
1030
1031 libempathy/empathy-utils.c | 2 +-
1032 1 files changed, 1 insertions(+), 1 deletions(-)
1033
1034 commit ccad7f9df7f97342731733cc7027054b693e240b
1035 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1036 Date: Tue Aug 10 17:38:32 2010 +0100
1037
1038 Don't abort when closing the FT dialogue
1039
1040 Ensure we handle the case where the dialogue is closed by the window
1041 manager or programmatically gracefully.
1042
1043 src/empathy-ft-manager.c | 4 ++++
1044 1 files changed, 4 insertions(+), 0 deletions(-)
1045
1046 commit 105ef42a1690c3c092879995767584b640741e12
1047 Author: Bilal Akhtar <bilalakhtar96@yahoo.com>
1048 Date: Wed Aug 11 10:43:20 2010 +0200
1049
1050 Use GimpNet as default IRC network (#625675)
1051
1052 libempathy-gtk/empathy-account-widget-irc.c | 6 ++++++
1053 1 files changed, 6 insertions(+), 0 deletions(-)
1054
1055 commit 0c52aee9583e68377b3c5da4d4f671761ae33e10
1056 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1057 Date: Thu Jul 1 17:05:32 2010 +0200
1058
1059 stop using Empathy's internal dispatcher to request FT channel
1060
1061 libempathy/empathy-ft-handler.c | 49
1062 ++++++++++++++++++++++----------------
1063 1 files changed, 28 insertions(+), 21 deletions(-)
1064
1065 commit faccecc4a1c1d2f08c98aa0c1b1418e70ce3990f
1066 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1067 Date: Tue Aug 10 16:18:43 2010 +0200
1068
1069 bump tp-glib dep to 0.11.12
1070
1071 We need it for TpAccountChannelRequest.
1072
1073 configure.ac | 2 +-
1074 1 files changed, 1 insertions(+), 1 deletions(-)
1075
1076 commit 247b08745627b9189ef93c50a346f2a7b7c52e1c
1077 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1078 Date: Tue Jun 29 17:14:25 2010 +0200
1079
1080 Use TpSimpleHandler to handle incoming file transfer (#623139)
1081
1082 libempathy/empathy-ft-factory.c | 128
1083 ++++++++++++++++++++++++++++-----------
1084 libempathy/empathy-ft-factory.h | 5 +-
1085 src/empathy.c | 6 ++
1086 3 files changed, 102 insertions(+), 37 deletions(-)
1087
1088 commit a3392a992e98b330d9a604a7b539dbed60e6f375
1089 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1090 Date: Tue Jun 29 17:09:24 2010 +0200
1091
1092 tp-file: remove unused ready variable
1093
1094 libempathy/empathy-tp-file.c | 1 -
1095 1 files changed, 0 insertions(+), 1 deletions(-)
1096
1097 commit 325786d466cc7a8b6eed06e52b9b5223ba5dc7fd
1098 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1099 Date: Tue Jun 29 17:06:11 2010 +0200
1100
1101 tp-file: no need to pass the incoming property during construction
1102
1103 We can infer it from the channel properties.
1104
1105 libempathy/empathy-tp-file.c | 19 +++++++++----------
1106 libempathy/empathy-tp-file.h | 3 +--
1107 src/empathy-event-manager.c | 2 +-
1108 3 files changed, 11 insertions(+), 13 deletions(-)
1109
1110 commit e497426234daf06bded1096fee6596b1e367a018
1111 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1112 Date: Tue Jun 29 16:45:34 2010 +0200
1113
1114 call-factory: don't leak the handler
1115
1116 libempathy/empathy-call-factory.c | 2 +-
1117 1 files changed, 1 insertions(+), 1 deletions(-)
1118
1119 commit b5b068d39f35ace8b1328c27a0b3d7e9de735dea
1120 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1121 Date: Tue Jun 29 16:39:06 2010 +0200
1122
1123 stop handling internally FT channels
1124
1125 libempathy/empathy-dispatch-operation.c | 13 +-----
1126 src/empathy.c | 65
1127 +-----------------------------
1128 2 files changed, 5 insertions(+), 73 deletions(-)
1129
1130 commit 56e0f6c86b79bfd6ac8807f15c098e627922cb30
1131 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1132 Date: Tue Aug 10 17:30:53 2010 +0200
1133
1134 remove empathy_dispatcher_send_file_to_contact prototype
1135
1136 libempathy/empathy-dispatcher.h | 6 ------
1137 1 files changed, 0 insertions(+), 6 deletions(-)
1138
1139 commit 9db18eddff2b697256b6fcde7bbcb57bcef5c48d
1140 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1141 Date: Tue Aug 10 16:58:45 2010 +0200
1142
1143 empathy_contact_selector_dialog_get_selected: allow to get the
1144 account as well
1145
1146 libempathy-gtk/empathy-contact-selector-dialog.c | 15 +++++++++++++--
1147 libempathy-gtk/empathy-contact-selector-dialog.h | 3 ++-
1148 libempathy-gtk/empathy-new-call-dialog.c | 2 +-
1149 libempathy-gtk/empathy-new-message-dialog.c | 2 +-
1150 src/empathy-chat-window.c | 2 +-
1151 5 files changed, 18 insertions(+), 6 deletions(-)
1152
1153 commit e3e5ad3b663cd9c4c7df7fbfe4a4bdaf171f6063
1154 Author: Daniel Nylander <po@danielnylander.se>
1155 Date: Tue Aug 10 15:50:52 2010 +0200
1156
1157 Updated Swedish translation
1158
1159 po/sv.po | 1548
1160 +++++++++++++++++++++++++++++++++++---------------------------
1161 1 files changed, 866 insertions(+), 682 deletions(-)
1162
1163 commit 8a5b247139826f2fae8f66bd512f544bd069c810
1164 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1165 Date: Mon Aug 9 15:49:11 2010 +0100
1166
1167 Minor coding style fixes in EmpathyIndividual[Store|View]
1168
1169 libempathy-gtk/empathy-individual-store.c | 4 ++--
1170 libempathy-gtk/empathy-individual-view.c | 2 +-
1171 2 files changed, 3 insertions(+), 3 deletions(-)
1172
1173 commit bec8141c7c525d4198c0b2cf6a867fff344d3a14
1174 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1175 Date: Mon Aug 9 15:28:53 2010 +0200
1176
1177 empathy-individual-menu: no need to get the call factory
1178
1179 libempathy-gtk/empathy-individual-menu.c | 4 ----
1180 1 files changed, 0 insertions(+), 4 deletions(-)
1181
1182 commit 934b3c383e8e4f26ab7edef385767d9e7836f729
1183 Author: Matej Urbančič <mateju@svn.gnome.org>
1184 Date: Mon Aug 9 14:49:33 2010 +0200
1185
1186 Updated Slovenian translation
1187
1188 po/sl.po | 14 +++++++-------
1189 1 files changed, 7 insertions(+), 7 deletions(-)
1190
1191 commit 8f599de3f64c57848bb27c6fdbc26c47337530fc
1192 Author: Nicolò Chieffo <84yelo3@gmail.com>
1193 Date: Mon Aug 9 13:25:11 2010 +0200
1194
1195 Allow translators to localize time formats (#623934)
1196
1197 libempathy/empathy-time.h | 11 ++++++++---
1198 1 files changed, 8 insertions(+), 3 deletions(-)
1199
1200 commit 878faf8c3357c3b96a5dc49d53754382079bd470
1201 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1202 Date: Fri Aug 6 10:40:38 2010 +0100
1203
1204 Fix capability change notification in the EmpathyIndividualStore
1205
1206 Closes: bgo#626162
1207
1208 libempathy-gtk/empathy-individual-store.c | 41
1209 ++++++++++++++++++++++++----
1210 1 files changed, 35 insertions(+), 6 deletions(-)
1211
1212 commit da3e8203013b3cf8329fceedaf07c0827cb27114
1213 Author: Felix Kaser <f.kaser@gmx.net>
1214 Date: Mon Aug 9 11:25:21 2010 +0200
1215
1216 only show label during search
1217
1218 don't change the behavior of the contact list when empty
1219 (without searching)
1220
1221 src/empathy-main-window.c | 20 +++++++-------------
1222 1 files changed, 7 insertions(+), 13 deletions(-)
1223
1224 commit fa83f9abc2842ee142e373f4bdb1ad9b1a243594
1225 Author: Yaron Shahrabani <sh.yaron@gmail.com>
1226 Date: Mon Aug 9 12:21:44 2010 +0300
1227
1228 Updated Hebrew translation.
1229
1230 po/he.po | 52 ++++++++++++++++++++++------------------------------
1231 1 files changed, 22 insertions(+), 30 deletions(-)
1232
1233 commit 6b4f49860f7e5f19ea86c96e25ac42daf6bb078b
1234 Author: Yaron Shahrabani <sh.yaron@gmail.com>
1235 Date: Mon Aug 9 12:12:57 2010 +0300
1236
1237 Updated Hebrew translation.
1238
1239 po/he.po | 411
1240 +++++++++++++++++++++++++++++++++++++------------------------
1241 1 files changed, 249 insertions(+), 162 deletions(-)
1242
1243 commit 2f7d7b2d43b15f9133e2c89ead564651b03e6bd5
1244 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1245 Date: Mon Aug 9 10:05:35 2010 +0200
1246
1247 use gtk_clutter_init rather than clutter_init
1248
1249 This should fix the "Unable to make the stage window ..... the
1250 current GLX
1251 drawable" warning.
1252 Thanks to Jiri Techet to have spotted this.
1253
1254 src/empathy.c | 8 +++++---
1255 1 files changed, 5 insertions(+), 3 deletions(-)
1256
1257 commit 8f76c30b382669eb3bd2d630b686100886e0114e
1258 Author: Jorge González <jorgegonz@svn.gnome.org>
1259 Date: Mon Aug 9 02:28:08 2010 +0200
1260
1261 Updated Spanish translation
1262
1263 po/es.po | 272
1264 ++++++++++++++++++++++++++++++-------------------------------
1265 1 files changed, 134 insertions(+), 138 deletions(-)
1266
1267 commit 16db868e0bad210cce52cc472c6598bfcf2436c8
1268 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1269 Date: Fri Aug 6 14:04:02 2010 +0100
1270
1271 Remove uses of new GStreamer API
1272
1273 Various GstMessageType members were added after 0.10.0, so we
1274 shouldn't
1275 use them.
1276
1277 src/empathy-call-window.c | 6 ------
1278 1 files changed, 0 insertions(+), 6 deletions(-)
1279
1280 commit 4bfa27bac875e9c5e4615fc907c343436198c7ee
1281 Author: Matej Urbančič <mateju@svn.gnome.org>
1282 Date: Fri Aug 6 14:51:34 2010 +0200
1283
1284 Updated Slovenian translation
1285
1286 po/sl.po | 412
1287 +++++++++++++++++++++++++++++++++++++------------------------
1288 1 files changed, 250 insertions(+), 162 deletions(-)
1289
1290 commit a423a3b9b916f2188063f4c3abbf376bb5548b09
1291 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1292 Date: Fri Aug 6 13:11:40 2010 +0100
1293
1294 Add casts to fix constness problems in empathy-import-pidgin.c
1295
1296 src/empathy-import-pidgin.c | 10 +++++-----
1297 1 files changed, 5 insertions(+), 5 deletions(-)
1298
1299 commit 265a072dab29839e7e195470f49e7f9980afc838
1300 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1301 Date: Thu Aug 5 15:53:33 2010 +0100
1302
1303 Cast away constness of strings in GtkTargetEntry structs
1304
1305 This stops gcc warning us about GTK+'s broken API which uses
1306 non-const string
1307 fields in a static struct.
1308
1309 libempathy-gtk/empathy-individual-view.c | 21 +++++++++++++--------
1310 1 files changed, 13 insertions(+), 8 deletions(-)
1311
1312 commit 9039976a1e17444081eb9df2e480d3b4c5266a88
1313 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1314 Date: Thu Jul 8 12:13:02 2010 +0100
1315
1316 Add noreturn annotation to version callback function
1317
1318 src/empathy.c | 7 +++++--
1319 1 files changed, 5 insertions(+), 2 deletions(-)
1320
1321 commit 03e54b66952397d0a54807f74187c5b68b5eb12c
1322 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1323 Date: Thu Jul 8 12:12:27 2010 +0100
1324
1325 Fix old-style function definition (missing void)
1326
1327 libempathy-gtk/empathy-avatar-chooser.c | 2 +-
1328 1 files changed, 1 insertions(+), 1 deletions(-)
1329
1330 commit a3faa867baeb51bb55e04fb507aaa45038f760a5
1331 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1332 Date: Thu Jul 8 11:56:13 2010 +0100
1333
1334 Fix constness of various variables and parameters
1335
1336 libempathy-gtk/empathy-individual-store.c | 4 ++--
1337 libempathy-gtk/empathy-ui-utils.c | 6 +++---
1338 libempathy-gtk/empathy-ui-utils.h | 2 +-
1339 libempathy-gtk/empathy-video-src.c | 4 ++--
1340 libempathy-gtk/totem-subtitle-encoding.c | 6 +++---
1341 libempathy/empathy-utils.c | 2 +-
1342 src/empathy-accounts-dialog.c | 6 +++---
1343 src/empathy-call-window.c | 2 +-
1344 src/empathy-import-pidgin.c | 6 +++---
1345 9 files changed, 19 insertions(+), 19 deletions(-)
1346
1347 commit f8c37da731af9f6cd74e7a0ef08fa02059d981ac
1348 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1349 Date: Thu Jul 8 11:39:07 2010 +0100
1350
1351 Fix missing entries in switch statements
1352
1353 Added missing default cases and missing enum cases.
1354
1355 libempathy-gtk/empathy-account-widget.c | 1 +
1356 libempathy-gtk/empathy-avatar-image.c | 4 +--
1357 libempathy-gtk/empathy-chat.c | 4 +++
1358 libempathy-gtk/empathy-contact-list-store.c | 3 ++
1359 libempathy-gtk/empathy-contact-list-view.c | 4 +--
1360 libempathy-gtk/empathy-individual-store.c | 3 ++
1361 libempathy-gtk/empathy-individual-view.c | 4 +--
1362 libempathy-gtk/empathy-live-search.c | 24 ++++++++++++++++++++++
1363 libempathy-gtk/empathy-ui-utils.c | 1 +
1364 libempathy/empathy-contact.c | 6 +++++
1365 libempathy/empathy-dispatch-operation.c | 5 +++-
1366 libempathy/empathy-dispatcher.c | 3 ++
1367 libempathy/empathy-ft-handler.c | 1 +
1368 libempathy/empathy-message.c | 3 ++
1369 libempathy/empathy-status-presets.c | 4 ++-
1370 libempathy/empathy-utils.c | 7 ++++++
1371 src/empathy-account-assistant.c | 14 ++++--------
1372 src/empathy-call-window.c | 29
1373 +++++++++++++++++++++++++++
1374 src/empathy-ft-manager.c | 2 +
1375 src/empathy-main-window.c | 3 ++
1376 20 files changed, 105 insertions(+), 20 deletions(-)
1377
1378 commit 5cc326f741ab695e4fac8f4c4ccd99cf235115fc
1379 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1380 Date: Thu Jul 8 11:09:54 2010 +0100
1381
1382 Use #ifdef instead of #if to avoid warnings of undefined symbols
1383
1384 libempathy-gtk/empathy-contact-widget.c | 10 +++++-----
1385 libempathy/empathy-contact.c | 8 ++++----
1386 src/empathy-main-window.c | 4 ++--
1387 src/empathy-preferences.c | 2 +-
1388 src/empathy.c | 10 +++++-----
1389 5 files changed, 17 insertions(+), 17 deletions(-)
1390
1391 commit fd4fddb72a34a446b06068b0aeeba4e04b6f57c3
1392 Author: Jorge González <jorgegonz@svn.gnome.org>
1393 Date: Thu Aug 5 16:30:30 2010 +0200
1394
1395 Updated Spanish translation
1396
1397 po/es.po | 102
1398 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
1399 1 files changed, 79 insertions(+), 23 deletions(-)
1400
1401 commit 439b05f9d36c750da3e490a8667dde2aeeb06e52
1402 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1403 Date: Thu Aug 5 12:53:37 2010 +0100
1404
1405 Fix memory corruption introduced by not removing a weak pointer
1406
1407 This rewrites the weak pointer code for active individuals in
1408 EmpathyIndividualStore to use weak references, which has the added
1409 benefit of
1410 meaning we can remove the timeout if the individual disappears,
1411 rather than
1412 executing it anyway and just bailing out. Closes: bgo#625641
1413
1414 libempathy-gtk/empathy-individual-store.c | 56
1415 ++++++++++++++++++++---------
1416 1 files changed, 39 insertions(+), 17 deletions(-)
1417
1418 commit bd7b9b376ea305ca57bb0beab6bfae8a82d69012
1419 Author: Fran Diéguez <fran.dieguez@mabishu.com>
1420 Date: Thu Aug 5 16:09:56 2010 +0200
1421
1422 Updated Galician translations
1423
1424 po/gl.po | 240
1425 +++++++++++++++++++++++++++++++++++++++++--------------------
1426 1 files changed, 161 insertions(+), 79 deletions(-)
1427
1428 commit 7cd053aff86931fdf85c8016701956d1fb43e646
1429 Author: Felix Kaser <f.kaser@gmx.net>
1430 Date: Thu Aug 5 12:55:31 2010 +0200
1431
1432 use different labels if view is empty
1433
1434 either show "no match found" or "your contact list is empty".
1435 fixes bug #621642
1436
1437 libempathy-gtk/empathy-individual-view.c | 13 +++++++++++++
1438 libempathy-gtk/empathy-individual-view.h | 3 +++
1439 src/empathy-main-window.c | 28
1440 +++++++++++++++++++---------
1441 src/empathy-main-window.ui | 19 +++++++++----------
1442 4 files changed, 44 insertions(+), 19 deletions(-)
1443
1444 commit b3ee9d59131212736dc713e7f1687cf8536bb979
1445 Author: Felix Kaser <f.kaser@gmx.net>
1446 Date: Thu Aug 5 12:12:28 2010 +0200
1447
1448 show label if contact list is empty
1449
1450 at the moment there is only one label, but we should distinguish
1451 if the contact list is empty because no contact is online or
1452 because the live search matched nothing
1453
1454 src/empathy-main-window.c | 52
1455 +++++++++++++++++++++++++++++++++++++++++---
1456 1 files changed, 48 insertions(+), 4 deletions(-)
1457
1458 commit d9db9822240a5aece8ee660bebb2afe7202a7f53
1459 Author: Felix Kaser <f.kaser@gmx.net>
1460 Date: Thu Aug 5 10:19:39 2010 +0200
1461
1462 added structure to show text when list empty
1463
1464 I've added a notebook which holds the treeview and on another page
1465 it holds a label. The logic when to switch has to be implemented.
1466
1467 src/empathy-main-window.c | 9 +++++++++
1468 src/empathy-main-window.ui | 31 ++++++++++++++++++++++++++-----
1469 2 files changed, 35 insertions(+), 5 deletions(-)
1470
1471 commit fe3dade449f6c4ef735166696fe86de968122b94
1472 Merge: c735abd 717184f
1473 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1474 Date: Thu Aug 5 14:19:18 2010 +0200
1475
1476 Merge branch 'connection-error-523895'
1477
1478 commit 717184f6d506b0fe6ea316accbb6aeebb3253919
1479 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1480 Date: Thu Aug 5 14:17:33 2010 +0200
1481
1482 no need to pass the reason to main_window_error_display
1483
1484 src/empathy-main-window.c | 5 ++---
1485 1 files changed, 2 insertions(+), 3 deletions(-)
1486
1487 commit 1707cb8bb953cb4886a8e3b8ab0eeddf0d6b0567
1488 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1489 Date: Thu Aug 5 14:14:34 2010 +0200
1490
1491 no need to pass the reason to empathy_account_get_error_message
1492
1493 libempathy/empathy-utils.c | 6 ++++--
1494 libempathy/empathy-utils.h | 3 +--
1495 src/empathy-accounts-dialog.c | 4 ++--
1496 src/empathy-main-window.c | 2 +-
1497 4 files changed, 8 insertions(+), 7 deletions(-)
1498
1499 commit b5e7268ebc857928c6672d84b23c1c05f9a45bd5
1500 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1501 Date: Thu Aug 5 14:11:04 2010 +0200
1502
1503 empathy_account_get_error_message: no need to get the details
1504 hash table
1505
1506 libempathy/empathy-utils.c | 3 +--
1507 1 files changed, 1 insertions(+), 2 deletions(-)
1508
1509 commit b5c916cfcee92d2c20d4ee25889dd56d9abb8721
1510 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1511 Date: Thu Aug 5 13:43:02 2010 +0200
1512
1513 empathy_status_reason_get_default_message can be static now
1514
1515 libempathy/empathy-utils.c | 2 +-
1516 libempathy/empathy-utils.h | 1 -
1517 2 files changed, 1 insertions(+), 2 deletions(-)
1518
1519 commit d3c850f72226ae5b9a6d0cdaf357d81f0fd261d1
1520 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1521 Date: Thu Aug 5 13:40:57 2010 +0200
1522
1523 accounts-dialog: use empathy_account_get_error_message (#523895)
1524
1525 src/empathy-accounts-dialog.c | 4 ++--
1526 1 files changed, 2 insertions(+), 2 deletions(-)
1527
1528 commit 42d87a3d0d9048d6661449a5997d7dadc9a2a3c4
1529 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1530 Date: Thu Aug 5 13:37:52 2010 +0200
1531
1532 main-window: use empathy_account_get_error_message (#523895)
1533
1534 src/empathy-main-window.c | 5 +----
1535 1 files changed, 1 insertions(+), 4 deletions(-)
1536
1537 commit fde1ddca54a6f94fd4112f9d4e5c49d823ed00a4
1538 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1539 Date: Thu Aug 5 13:37:35 2010 +0200
1540
1541 add empathy_account_get_error_message
1542
1543 libempathy/empathy-utils.c | 21 ++++++++++++++++++++-
1544 libempathy/empathy-utils.h | 4 +++-
1545 2 files changed, 23 insertions(+), 2 deletions(-)
1546
1547 commit 3486c2525088388b5d1fa39b4099f8b80743fd00
1548 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1549 Date: Thu Aug 5 12:50:37 2010 +0200
1550
1551 create_errors_to_message_hash: add support for more errors
1552
1553 libempathy/empathy-utils.c | 21 +++++++++++++++++++++
1554 1 files changed, 21 insertions(+), 0 deletions(-)
1555
1556 commit 0b5e1ce2f0aafecaaf855b1f81d52821862f6526
1557 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1558 Date: Thu Aug 5 12:38:26 2010 +0200
1559
1560 add empathy_dbus_error_name_get_default_message
1561
1562 Reuse existing errors for now.
1563
1564 libempathy/empathy-utils.c | 44
1565 ++++++++++++++++++++++++++++++++++++++++++++
1566 libempathy/empathy-utils.h | 1 +
1567 2 files changed, 45 insertions(+), 0 deletions(-)
1568
1569 commit 76a6ff433280ed7bee6346ab05caa00ceb2aba49
1570 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1571 Date: Tue Aug 3 17:47:23 2010 +0200
1572
1573 main-window: pass the TpConnectionStatusReason to
1574 main_window_error_display
1575
1576 src/empathy-main-window.c | 11 +++++------
1577 1 files changed, 5 insertions(+), 6 deletions(-)
1578
1579 commit c735abd4a11c57d0cabb50051e45b57cdb80652d
1580 Author: Jorge González <jorgegonz@svn.gnome.org>
1581 Date: Thu Aug 5 12:21:50 2010 +0200
1582
1583 Updated Spanish translation
1584
1585 po/es.po | 150
1586 +++++++++++++++++++++++++++++++++++++-------------------------
1587 1 files changed, 89 insertions(+), 61 deletions(-)
1588
1589 commit d4397c1120f65ce0f4051156c255857d08b1b4ae
1590 Merge: 493056e 6d744e0
1591 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1592 Date: Thu Aug 5 12:06:53 2010 +0200
1593
1594 Merge branch 'av-candidate-624344'
1595
1596 commit 6d744e08f1cc7169b79fedade4681d5c67fadcd4
1597 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1598 Date: Thu Aug 5 12:01:46 2010 +0200
1599
1600 display the tooltip on the info image
1601
1602 src/empathy-call-window.c | 24 +++++++++++++++++-------
1603 1 files changed, 17 insertions(+), 7 deletions(-)
1604
1605 commit f74839c25648a0ed910d582d84965f3c0107b45e
1606 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1607 Date: Thu Aug 5 11:44:36 2010 +0200
1608
1609 add 'info' icon next to the candidates
1610
1611 src/empathy-call-window.ui | 96
1612 ++++++++++++++++++++++++++++++++++++-------
1613 1 files changed, 80 insertions(+), 16 deletions(-)
1614
1615 commit 493056ec895710376ee79e403e6c17ea93029e4a
1616 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1617 Date: Wed Aug 4 17:20:30 2010 +0100
1618
1619 Fix an assertion failure in the filtering code due to show-offline
1620 changes
1621
1622 individual_view_is_visible_individual() is now called even when
1623 the live
1624 search widget isn't in use, so has to fail gracefully in that case.
1625 Closes: bgo#626041
1626
1627 libempathy-gtk/empathy-individual-view.c | 6 ++++--
1628 1 files changed, 4 insertions(+), 2 deletions(-)
1629
1630 commit 1b603a6d7dcc0a46544b8f34baa1610195e8f6c7
1631 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1632 Date: Wed Aug 4 11:23:18 2010 +0200
1633
1634 call-window: use candidates-changed signal
1635
1636 src/empathy-call-window.c | 116
1637 ++++++++++++++------------------------------
1638 1 files changed, 37 insertions(+), 79 deletions(-)
1639
1640 commit a27087fda3a50d3454384bfa3664f79a17ac3f0a
1641 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1642 Date: Wed Aug 4 11:23:01 2010 +0200
1643
1644 call-handler: add candidates-changed signal
1645
1646 libempathy/empathy-call-handler.c | 13 +++++++++++++
1647 1 files changed, 13 insertions(+), 0 deletions(-)
1648
1649 commit fd401e8a06921ead2aa06131afdd08ee46b9de92
1650 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1651 Date: Wed Aug 4 11:08:05 2010 +0200
1652
1653 use a space to separate the IP from the port
1654
1655 src/empathy-call-window.c | 2 +-
1656 1 files changed, 1 insertions(+), 1 deletions(-)
1657
1658 commit 2b7aea94f1db089bb9f3fee62fd924f7a2c27c63
1659 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1660 Date: Wed Aug 4 10:56:28 2010 +0200
1661
1662 add tooltips giving a bit more context about the candidate
1663
1664 src/empathy-call-window.c | 23 +++++++++++++++++++++++
1665 1 files changed, 23 insertions(+), 0 deletions(-)
1666
1667 commit 6f618087dea59d0a7c0d4ff0c63cd0dc38f76ac2
1668 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1669 Date: Wed Aug 4 10:50:25 2010 +0200
1670
1671 destroy the old candidates before updating them
1672
1673 libempathy/empathy-call-handler.c | 4 ++++
1674 1 files changed, 4 insertions(+), 0 deletions(-)
1675
1676 commit c2aacd4f46a4fbb449f78809a88aff08d3084974
1677 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1678 Date: Tue Aug 3 17:00:49 2010 +0200
1679
1680 call-window: display candidates info (#599166)
1681
1682 src/empathy-call-window.c | 129 +++++++++++++++++++++++
1683 src/empathy-call-window.ui | 241
1684 ++++++++++++++++++++++++++++++++++++++++++++
1685 2 files changed, 370 insertions(+), 0 deletions(-)
1686
1687 commit 81e35b4237433cf031004aa840e94d5f03c1b2f8
1688 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1689 Date: Tue Aug 3 17:00:26 2010 +0200
1690
1691 call-handler: add properties tracking the candidates
1692
1693 libempathy/empathy-call-handler.c | 161
1694 +++++++++++++++++++++++++++++++++++++
1695 libempathy/empathy-call-handler.h | 12 +++
1696 2 files changed, 173 insertions(+), 0 deletions(-)
1697
1698 commit b51dda50b585f6c3cee76996bfb6f45da000447d
1699 Author: Kjartan Maraas <kmaraas@gnome.org>
1700 Date: Wed Aug 4 14:05:20 2010 +0200
1701
1702 Updated Norwegian bokmål translation
1703
1704 po/nb.po | 461
1705 ++++++++++++++++++++++++++++++++++---------------------------
1706 1 files changed, 257 insertions(+), 204 deletions(-)
1707
1708 commit ed56a1d64e3aa20e47452374fa4fd76c86271e7f
1709 Author: Brian Curtis <bcurtiswx@ubuntu.com>
1710 Date: Wed Aug 4 12:34:38 2010 +0200
1711
1712 irc-networks: Remove Ubuntu Servers (#625950)
1713
1714 It's redundant with freenode.
1715
1716 libempathy/irc-networks.xml | 5 -----
1717 1 files changed, 0 insertions(+), 5 deletions(-)
1718
1719 commit 6eb5156a637f6790b09e1b9a6df99302d5d560a9
1720 Author: A S Alam <aalam@users.sf.net>
1721 Date: Wed Aug 4 14:13:28 2010 +0530
1722
1723 update Punjabi Translation by A S Alam
1724
1725 po/pa.po | 1466
1726 ++++++++++++++++++++++++++++++++++----------------------------
1727 1 files changed, 799 insertions(+), 667 deletions(-)
1728
1729 commit e9125fce7bd864e9b9292c2b890007b2c245f536
1730 Author: Felix Kaser <f.kaser@gmx.net>
1731 Date: Tue Aug 3 14:19:46 2010 +0200
1732
1733 use member variable instead of getter
1734
1735 libempathy-gtk/empathy-individual-view.c | 8 +++-----
1736 1 files changed, 3 insertions(+), 5 deletions(-)
1737
1738 commit dfa83a219e8ac885f2e9930656e5d186a164b386
1739 Author: Felix Kaser <f.kaser@gmx.net>
1740 Date: Tue Aug 3 13:54:12 2010 +0200
1741
1742 removed fixme comment when toggling show_offline
1743
1744 src/empathy-main-window.c | 3 ---
1745 1 files changed, 0 insertions(+), 3 deletions(-)
1746
1747 commit a84e9e79c7f7a0dca20e1f5b5bc576400238e55c
1748 Author: Felix Kaser <f.kaser@gmx.net>
1749 Date: Tue Aug 3 13:01:29 2010 +0200
1750
1751 refactored show_offline property to the view
1752
1753 the show offline property was moved from the individual store to the
1754 individual view. this allows to easily and automatically search
1755 through
1756 offline contacts as well.
1757
1758 libempathy-gtk/empathy-individual-store.c | 106
1759 +----------------------------
1760 libempathy-gtk/empathy-individual-store.h | 7 --
1761 libempathy-gtk/empathy-individual-view.c | 63 ++++++++++++++++-
1762 libempathy-gtk/empathy-individual-view.h | 7 ++
1763 src/empathy-main-window.c | 2 +-
1764 5 files changed, 70 insertions(+), 115 deletions(-)
1765
1766 commit f5f67749239b7b6b8898c31acc3df33f4d02cd32
1767 Author: Matej Urbančič <mateju@svn.gnome.org>
1768 Date: Tue Aug 3 14:37:02 2010 +0200
1769
1770 Updated Slovenian translation
1771
1772 po/sl.po | 837
1773 +++++++++++++++++++++++++++++++++++---------------------------
1774 1 files changed, 470 insertions(+), 367 deletions(-)
1775
1776 commit ed0f30f24ec8f045647b3886da9cd086f263c5f1
1777 Author: Xavier Claessens <xclaesse@gmail.com>
1778 Date: Tue Aug 3 14:34:05 2010 +0200
1779
1780 Connect signals only once, it's enough
1781
1782 libempathy-gtk/empathy-individual-view.c | 7 -------
1783 1 files changed, 0 insertions(+), 7 deletions(-)
1784
1785 commit acc539549da986e0cfb4dd29142dcdf34743ce7d
1786 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1787 Date: Mon Aug 2 18:29:40 2010 +0100
1788
1789 Ensure contacts have a persona set
1790
1791 Ensure that contacts created by
1792 empathy_contact_dup_from_folks_individual()
1793 have a persona set, so that things like custom presence messages
1794 in contact
1795 tooltips work again. This requires that we don't set the alias on the
1796 contacts during the initial contact population period, or we'll end
1797 up with
1798 duplicates of each contact in the list. Closes: bgo#625828
1799
1800 libempathy/empathy-contact.c | 3 ++-
1801 libempathy/empathy-utils.c | 1 +
1802 2 files changed, 3 insertions(+), 1 deletions(-)
1803
1804 commit 737212cbc975c9113f4aaf105fb765811805c54a
1805 Author: Felix Kaser <f.kaser@gmx.net>
1806 Date: Tue Aug 3 11:06:56 2010 +0200
1807
1808 fixing a method name typo
1809
1810 libempathy-gtk/empathy-individual-store.c | 4 ++--
1811 1 files changed, 2 insertions(+), 2 deletions(-)
1812
1813 commit 9901d38f39d9d4a71f8232ec4b6ea24426b6b062
1814 Author: Leonid Kanter <leon@asplinux.ru>
1815 Date: Tue Aug 3 12:04:05 2010 +0300
1816
1817 Updated Russian translation from Александр Семёнов
1818 <rotuka@ya.ru>
1819
1820 po/ru.po | 1457
1821 ++++++++++++++++++++++++++++++++++----------------------------
1822 1 files changed, 795 insertions(+), 662 deletions(-)
1823
1824 commit 8f92e7fc2a7f3f3fe86f8f1ac5b226d443352e2e
1825 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1826 Date: Tue Aug 3 10:14:02 2010 +0200
1827
1828 contact: coding style fix
1829
1830 libempathy/empathy-contact.c | 2 +-
1831 1 files changed, 1 insertions(+), 1 deletions(-)
1832
1833 commit 663ef268deaa411db38c865ce90260d86eea0b41
1834 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1835 Date: Mon Aug 2 11:17:38 2010 +0200
1836
1837 Add a translator comment explaining the "reduce location" semantic
1838 (#624062)
1839
1840 Thanks to mahfiaz@gmail.com for his suggestion.
1841
1842 src/empathy-preferences.ui | 2 +-
1843 1 files changed, 1 insertions(+), 1 deletions(-)
1844
1845 commit a1528a5fb3a3bfc78edeedd2c6c28093a879cee7
1846 Author: Funda Wang <fundawang@gmail.com>
1847 Date: Tue Aug 3 15:34:52 2010 +0800
1848
1849 Updated zh_CN translation.
1850
1851 po/ChangeLog | 4 ++
1852 po/zh_CN.po | 147
1853 +++++++++++++++++++++++++++++-----------------------------
1854 2 files changed, 77 insertions(+), 74 deletions(-)
1855
1856 commit 791e5739bca80309501825f48da93a78aaba0b3c
1857 Author: Philip Withnall <philip.withnall@collabora.co.uk>
1858 Date: Mon Jul 19 18:55:35 2010 +0100
1859
1860 Maintain a list of Individuals which have EmpathyContacts in the
1861 manager
1862
1863 This is necessary so that Individuals can be tracked as
1864 EmpathyContact-carrying Personas are added and removed from them, and
1865 to ensure that the IndividualManager doesn't use Individuals without
1866 EmpathyContacts.
1867
1868 libempathy/empathy-contact.c | 3 +-
1869 libempathy/empathy-individual-manager.c | 137
1870 +++++++++++++++++++++++++------
1871 2 files changed, 115 insertions(+), 25 deletions(-)
1872
1873 commit 26193e7075c04d7ec01b6a75a71206a3e690b6e8
1874 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1875 Date: Mon Aug 2 18:12:06 2010 +0200
1876
1877 remove released flag
1878
1879 configure.ac | 4 ++--
1880 1 files changed, 2 insertions(+), 2 deletions(-)
1881
01882 commit 19089099870f5bfe681aa18b90136906025caab7
11883 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
21884 Date: Mon Aug 2 17:35:17 2010 +0200
0 NEW in 2.31.90 (18/08/2010)
1 ==============
2
3 The "Dissociative identity disorder" release.
4
5 Dependencies:
6
7 • telepathy-glib ≥ 0.11.13
8 • telepathy-logger ≥ 0.1.5
9 • folks ≥ 0.1.13
10
11 Thanks to the hard work of Philip Withnall and Travis Treitter, Empathy
12 finally gained meta-contacts support! There is still lots of work to do but
13 most the pieces are now in place. You can use the linking dialogue to
14 merge similar contacts together.
15
16 This is still in very early stage so some regressions have to be expected. If you
17 experience any please check for existing bug reports before reporting.
18 Most of the them should be filed using the 'Meta Contacts' component [1].
19
20 But meta-contacts support is the not the only new feature in this release!
21 Empathy should now report more useful error messages when failing to connect.
22 The preferences window gained an option to disable logging of chats
23 and the 'Details' pane of the call UI now displays information about the
24 candidates used to stream the audio/video data.
25
26 [1] https://bugzilla.gnome.org/buglist.cgi?product=empathy&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Meta%20Contacts
27
28 Bugs fixed:
29 - Fixed #523895, Use ConnectionError for better error reporting (Guillaume Desmottes)
30 - Fixed #567858, Logging should be optional (Guillaume Desmottes)
31 - Fixed #621090, Live search does not show offline contacts (Felix Kaser)
32 - Fixed #621642, live search should display "no match found" if thats the case (Felix Kaser)
33 - Fixed #621643, the treeview should have the default focus (Felix Kaser)
34 - Fixed #622714, 'previous conversations' on a contact brings up generic dialog (Guillaume Desmottes)
35 - Fixed #623139, Should use TpSimpleHandler to handle FT channels (Guillaume Desmottes)
36 - Fixed #623934, follow LC_TIME preferred time format when printing time and date (Nicolò Chieffo)
37 - Fixed #624062, GPS data precision (Guillaume Desmottes)
38 - Fixed #624344, details pane: display FsCandidate info (Guillaume Desmottes)
39 - Fixed #625641, Crash in g_value_array_free, valuearray_simple_free at dbus-gvalue-utils.c line 790 (Philip Withnall)
40 - Fixed #625675, freenode should be the default irc network when creating an irc account (Bilal Akhtar)
41 - Fixed #625828, No custom presence message in tooltip (Philip Withnall)
42 - Fixed #625950, Remove "Ubuntu servers" from irc channel list (Brian Curtis)
43 - Fixed #626009, [PATCH] Allow selection of persona to chat to (Philip Withnall)
44 - Fixed #626041, Fix an assertion failure in the filtering code due to show-offline changes (Philip Withnall)
45 - Fixed #626114, gcc warning fixes (Philip Withnall)
46 - Fixed #626130, Add linking UI for Individuals (Philip Withnall)
47 - Fixed #626162, No audio/video icon in the contact list (Philip Withnall)
48 - Fixed #626552, Sporadic tree model warnings upon initial fill in Empathy (Philip Withnall)
49 - Fixed #626600, Make use of TpAccountChannelRequest (Guillaume Desmottes)
50 - Fixed #626602, Add support for new errors (Guillaume Desmottes)
51 - Fixed #626620, Log In button is not enabled after all details are entered while creating IRC account (Guillaume Desmottes)
52 - Fixed #626630, Use TpAccountChannelRequest to request text channels (Guillaume Desmottes)
53 - Fixed #626636, Should use TpCapabilities to get RCC (Guillaume Desmottes)
54 - Fixed #626992, Back and Forward buttons in Previous conservations window are reversed (Guillaume Desmottes)
55 - Fixed #626994, Rename Back and Forward buttons,in Previous Conservations > Search Tab, to Previous and Next (Guillaume Desmottes)
56 - Fixed #627165, Use tp-glib's user action API (Guillaume Desmottes)
57
58 Translations:
59 - Updated es Translation (Jorge González)
60 - Updated gl Translation (Fran Diéguez)
61 - Updated he Translation (Yaron Shahrabani)
62 - Updated nb Translation (Kjartan Maraas)
63 - Updated pa Translation (A S Alam)
64 - Updated ru Translation (Leonid Kanter)
65 - Updated sl Translation (Matej Urbančič)
66 - Updated sv Translation (Daniel Nylander)
67 - Updated zh_CN Translation (Funda Wang)
68
069 NEW in 2.31.6 (02/08/2010)
170 =============
271
+1418
-1413
aclocal.m4 less more
1717 You have another version of autoconf. It may work, but is not guaranteed to.
1818 If you have problems, you may need to regenerate the build system entirely.
1919 To do so, use the procedure documented by the package, typically `autoreconf'.])])
20
21 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
22 #
23 # This file is free software; the Free Software Foundation
24 # gives unlimited permission to copy and/or distribute it,
25 # with or without modifications, as long as this notice is preserved.
26
27 # AM_AUTOMAKE_VERSION(VERSION)
28 # ----------------------------
29 # Automake X.Y traces this macro to ensure aclocal.m4 has been
30 # generated from the m4 files accompanying Automake X.Y.
31 # (This private macro should not be called outside this file.)
32 AC_DEFUN([AM_AUTOMAKE_VERSION],
33 [am__api_version='1.11'
34 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
35 dnl require some minimum version. Point them to the right macro.
36 m4_if([$1], [1.11.1], [],
37 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
38 ])
39
40 # _AM_AUTOCONF_VERSION(VERSION)
41 # -----------------------------
42 # aclocal traces this macro to find the Autoconf version.
43 # This is a private macro too. Using m4_define simplifies
44 # the logic in aclocal, which can simply ignore this definition.
45 m4_define([_AM_AUTOCONF_VERSION], [])
46
47 # AM_SET_CURRENT_AUTOMAKE_VERSION
48 # -------------------------------
49 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
50 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
51 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
52 [AM_AUTOMAKE_VERSION([1.11.1])dnl
53 m4_ifndef([AC_AUTOCONF_VERSION],
54 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
55 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
56
57 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
58
59 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
60 #
61 # This file is free software; the Free Software Foundation
62 # gives unlimited permission to copy and/or distribute it,
63 # with or without modifications, as long as this notice is preserved.
64
65 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
66 # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
67 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
68 #
69 # Of course, Automake must honor this variable whenever it calls a
70 # tool from the auxiliary directory. The problem is that $srcdir (and
71 # therefore $ac_aux_dir as well) can be either absolute or relative,
72 # depending on how configure is run. This is pretty annoying, since
73 # it makes $ac_aux_dir quite unusable in subdirectories: in the top
74 # source directory, any form will work fine, but in subdirectories a
75 # relative path needs to be adjusted first.
76 #
77 # $ac_aux_dir/missing
78 # fails when called from a subdirectory if $ac_aux_dir is relative
79 # $top_srcdir/$ac_aux_dir/missing
80 # fails if $ac_aux_dir is absolute,
81 # fails when called from a subdirectory in a VPATH build with
82 # a relative $ac_aux_dir
83 #
84 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
85 # are both prefixed by $srcdir. In an in-source build this is usually
86 # harmless because $srcdir is `.', but things will broke when you
87 # start a VPATH build or use an absolute $srcdir.
88 #
89 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
90 # iff we strip the leading $srcdir from $ac_aux_dir. That would be:
91 # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
92 # and then we would define $MISSING as
93 # MISSING="\${SHELL} $am_aux_dir/missing"
94 # This will work as long as MISSING is not called from configure, because
95 # unfortunately $(top_srcdir) has no meaning in configure.
96 # However there are other variables, like CC, which are often used in
97 # configure, and could therefore not use this "fixed" $ac_aux_dir.
98 #
99 # Another solution, used here, is to always expand $ac_aux_dir to an
100 # absolute PATH. The drawback is that using absolute paths prevent a
101 # configured tree to be moved without reconfiguration.
102
103 AC_DEFUN([AM_AUX_DIR_EXPAND],
104 [dnl Rely on autoconf to set up CDPATH properly.
105 AC_PREREQ([2.50])dnl
106 # expand $ac_aux_dir to an absolute path
107 am_aux_dir=`cd $ac_aux_dir && pwd`
108 ])
109
110 # AM_CONDITIONAL -*- Autoconf -*-
111
112 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
113 # Free Software Foundation, Inc.
114 #
115 # This file is free software; the Free Software Foundation
116 # gives unlimited permission to copy and/or distribute it,
117 # with or without modifications, as long as this notice is preserved.
118
119 # serial 9
120
121 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
122 # -------------------------------------
123 # Define a conditional.
124 AC_DEFUN([AM_CONDITIONAL],
125 [AC_PREREQ(2.52)dnl
126 ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
127 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
128 AC_SUBST([$1_TRUE])dnl
129 AC_SUBST([$1_FALSE])dnl
130 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
131 _AM_SUBST_NOTMAKE([$1_FALSE])dnl
132 m4_define([_AM_COND_VALUE_$1], [$2])dnl
133 if $2; then
134 $1_TRUE=
135 $1_FALSE='#'
136 else
137 $1_TRUE='#'
138 $1_FALSE=
139 fi
140 AC_CONFIG_COMMANDS_PRE(
141 [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
142 AC_MSG_ERROR([[conditional "$1" was never defined.
143 Usually this means the macro was only invoked conditionally.]])
144 fi])])
145
146 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
147 # Free Software Foundation, Inc.
148 #
149 # This file is free software; the Free Software Foundation
150 # gives unlimited permission to copy and/or distribute it,
151 # with or without modifications, as long as this notice is preserved.
152
153 # serial 10
154
155 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
156 # written in clear, in which case automake, when reading aclocal.m4,
157 # will think it sees a *use*, and therefore will trigger all it's
158 # C support machinery. Also note that it means that autoscan, seeing
159 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
160
161
162 # _AM_DEPENDENCIES(NAME)
163 # ----------------------
164 # See how the compiler implements dependency checking.
165 # NAME is "CC", "CXX", "GCJ", or "OBJC".
166 # We try a few techniques and use that to set a single cache variable.
167 #
168 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
169 # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
170 # dependency, and given that the user is not expected to run this macro,
171 # just rely on AC_PROG_CC.
172 AC_DEFUN([_AM_DEPENDENCIES],
173 [AC_REQUIRE([AM_SET_DEPDIR])dnl
174 AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
175 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
176 AC_REQUIRE([AM_DEP_TRACK])dnl
177
178 ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
179 [$1], CXX, [depcc="$CXX" am_compiler_list=],
180 [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
181 [$1], UPC, [depcc="$UPC" am_compiler_list=],
182 [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
183 [depcc="$$1" am_compiler_list=])
184
185 AC_CACHE_CHECK([dependency style of $depcc],
186 [am_cv_$1_dependencies_compiler_type],
187 [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
188 # We make a subdir and do the tests there. Otherwise we can end up
189 # making bogus files that we don't know about and never remove. For
190 # instance it was reported that on HP-UX the gcc test will end up
191 # making a dummy file named `D' -- because `-MD' means `put the output
192 # in D'.
193 mkdir conftest.dir
194 # Copy depcomp to subdir because otherwise we won't find it if we're
195 # using a relative directory.
196 cp "$am_depcomp" conftest.dir
197 cd conftest.dir
198 # We will build objects and dependencies in a subdirectory because
199 # it helps to detect inapplicable dependency modes. For instance
200 # both Tru64's cc and ICC support -MD to output dependencies as a
201 # side effect of compilation, but ICC will put the dependencies in
202 # the current directory while Tru64 will put them in the object
203 # directory.
204 mkdir sub
205
206 am_cv_$1_dependencies_compiler_type=none
207 if test "$am_compiler_list" = ""; then
208 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
209 fi
210 am__universal=false
211 m4_case([$1], [CC],
212 [case " $depcc " in #(
213 *\ -arch\ *\ -arch\ *) am__universal=true ;;
214 esac],
215 [CXX],
216 [case " $depcc " in #(
217 *\ -arch\ *\ -arch\ *) am__universal=true ;;
218 esac])
219
220 for depmode in $am_compiler_list; do
221 # Setup a source with many dependencies, because some compilers
222 # like to wrap large dependency lists on column 80 (with \), and
223 # we should not choose a depcomp mode which is confused by this.
224 #
225 # We need to recreate these files for each test, as the compiler may
226 # overwrite some of them when testing with obscure command lines.
227 # This happens at least with the AIX C compiler.
228 : > sub/conftest.c
229 for i in 1 2 3 4 5 6; do
230 echo '#include "conftst'$i'.h"' >> sub/conftest.c
231 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
232 # Solaris 8's {/usr,}/bin/sh.
233 touch sub/conftst$i.h
234 done
235 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
236
237 # We check with `-c' and `-o' for the sake of the "dashmstdout"
238 # mode. It turns out that the SunPro C++ compiler does not properly
239 # handle `-M -o', and we need to detect this. Also, some Intel
240 # versions had trouble with output in subdirs
241 am__obj=sub/conftest.${OBJEXT-o}
242 am__minus_obj="-o $am__obj"
243 case $depmode in
244 gcc)
245 # This depmode causes a compiler race in universal mode.
246 test "$am__universal" = false || continue
247 ;;
248 nosideeffect)
249 # after this tag, mechanisms are not by side-effect, so they'll
250 # only be used when explicitly requested
251 if test "x$enable_dependency_tracking" = xyes; then
252 continue
253 else
254 break
255 fi
256 ;;
257 msvisualcpp | msvcmsys)
258 # This compiler won't grok `-c -o', but also, the minuso test has
259 # not run yet. These depmodes are late enough in the game, and
260 # so weak that their functioning should not be impacted.
261 am__obj=conftest.${OBJEXT-o}
262 am__minus_obj=
263 ;;
264 none) break ;;
265 esac
266 if depmode=$depmode \
267 source=sub/conftest.c object=$am__obj \
268 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
269 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
270 >/dev/null 2>conftest.err &&
271 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
272 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
273 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
274 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
275 # icc doesn't choke on unknown options, it will just issue warnings
276 # or remarks (even with -Werror). So we grep stderr for any message
277 # that says an option was ignored or not supported.
278 # When given -MP, icc 7.0 and 7.1 complain thusly:
279 # icc: Command line warning: ignoring option '-M'; no argument required
280 # The diagnosis changed in icc 8.0:
281 # icc: Command line remark: option '-MP' not supported
282 if (grep 'ignoring option' conftest.err ||
283 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
284 am_cv_$1_dependencies_compiler_type=$depmode
285 break
286 fi
287 fi
288 done
289
290 cd ..
291 rm -rf conftest.dir
292 else
293 am_cv_$1_dependencies_compiler_type=none
294 fi
295 ])
296 AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
297 AM_CONDITIONAL([am__fastdep$1], [
298 test "x$enable_dependency_tracking" != xno \
299 && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
300 ])
301
302
303 # AM_SET_DEPDIR
304 # -------------
305 # Choose a directory name for dependency files.
306 # This macro is AC_REQUIREd in _AM_DEPENDENCIES
307 AC_DEFUN([AM_SET_DEPDIR],
308 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
309 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
310 ])
311
312
313 # AM_DEP_TRACK
314 # ------------
315 AC_DEFUN([AM_DEP_TRACK],
316 [AC_ARG_ENABLE(dependency-tracking,
317 [ --disable-dependency-tracking speeds up one-time build
318 --enable-dependency-tracking do not reject slow dependency extractors])
319 if test "x$enable_dependency_tracking" != xno; then
320 am_depcomp="$ac_aux_dir/depcomp"
321 AMDEPBACKSLASH='\'
322 fi
323 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
324 AC_SUBST([AMDEPBACKSLASH])dnl
325 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
326 ])
327
328 # Generate code to set up dependency tracking. -*- Autoconf -*-
329
330 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
331 # Free Software Foundation, Inc.
332 #
333 # This file is free software; the Free Software Foundation
334 # gives unlimited permission to copy and/or distribute it,
335 # with or without modifications, as long as this notice is preserved.
336
337 #serial 5
338
339 # _AM_OUTPUT_DEPENDENCY_COMMANDS
340 # ------------------------------
341 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
342 [{
343 # Autoconf 2.62 quotes --file arguments for eval, but not when files
344 # are listed without --file. Let's play safe and only enable the eval
345 # if we detect the quoting.
346 case $CONFIG_FILES in
347 *\'*) eval set x "$CONFIG_FILES" ;;
348 *) set x $CONFIG_FILES ;;
349 esac
350 shift
351 for mf
352 do
353 # Strip MF so we end up with the name of the file.
354 mf=`echo "$mf" | sed -e 's/:.*$//'`
355 # Check whether this is an Automake generated Makefile or not.
356 # We used to match only the files named `Makefile.in', but
357 # some people rename them; so instead we look at the file content.
358 # Grep'ing the first line is not enough: some people post-process
359 # each Makefile.in and add a new line on top of each file to say so.
360 # Grep'ing the whole file is not good either: AIX grep has a line
361 # limit of 2048, but all sed's we know have understand at least 4000.
362 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
363 dirpart=`AS_DIRNAME("$mf")`
364 else
365 continue
366 fi
367 # Extract the definition of DEPDIR, am__include, and am__quote
368 # from the Makefile without running `make'.
369 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
370 test -z "$DEPDIR" && continue
371 am__include=`sed -n 's/^am__include = //p' < "$mf"`
372 test -z "am__include" && continue
373 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
374 # When using ansi2knr, U may be empty or an underscore; expand it
375 U=`sed -n 's/^U = //p' < "$mf"`
376 # Find all dependency output files, they are included files with
377 # $(DEPDIR) in their names. We invoke sed twice because it is the
378 # simplest approach to changing $(DEPDIR) to its actual value in the
379 # expansion.
380 for file in `sed -n "
381 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
382 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
383 # Make sure the directory exists.
384 test -f "$dirpart/$file" && continue
385 fdir=`AS_DIRNAME(["$file"])`
386 AS_MKDIR_P([$dirpart/$fdir])
387 # echo "creating $dirpart/$file"
388 echo '# dummy' > "$dirpart/$file"
389 done
390 done
391 }
392 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
393
394
395 # AM_OUTPUT_DEPENDENCY_COMMANDS
396 # -----------------------------
397 # This macro should only be invoked once -- use via AC_REQUIRE.
398 #
399 # This code is only required when automatic dependency tracking
400 # is enabled. FIXME. This creates each `.P' file that we will
401 # need in order to bootstrap the dependency handling code.
402 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
403 [AC_CONFIG_COMMANDS([depfiles],
404 [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
405 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
406 ])
407
408 # Do all the work for Automake. -*- Autoconf -*-
409
410 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
411 # 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
412 #
413 # This file is free software; the Free Software Foundation
414 # gives unlimited permission to copy and/or distribute it,
415 # with or without modifications, as long as this notice is preserved.
416
417 # serial 16
418
419 # This macro actually does too much. Some checks are only needed if
420 # your package does certain things. But this isn't really a big deal.
421
422 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
423 # AM_INIT_AUTOMAKE([OPTIONS])
424 # -----------------------------------------------
425 # The call with PACKAGE and VERSION arguments is the old style
426 # call (pre autoconf-2.50), which is being phased out. PACKAGE
427 # and VERSION should now be passed to AC_INIT and removed from
428 # the call to AM_INIT_AUTOMAKE.
429 # We support both call styles for the transition. After
430 # the next Automake release, Autoconf can make the AC_INIT
431 # arguments mandatory, and then we can depend on a new Autoconf
432 # release and drop the old call support.
433 AC_DEFUN([AM_INIT_AUTOMAKE],
434 [AC_PREREQ([2.62])dnl
435 dnl Autoconf wants to disallow AM_ names. We explicitly allow
436 dnl the ones we care about.
437 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
438 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
439 AC_REQUIRE([AC_PROG_INSTALL])dnl
440 if test "`cd $srcdir && pwd`" != "`pwd`"; then
441 # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
442 # is not polluted with repeated "-I."
443 AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
444 # test to see if srcdir already configured
445 if test -f $srcdir/config.status; then
446 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
447 fi
448 fi
449
450 # test whether we have cygpath
451 if test -z "$CYGPATH_W"; then
452 if (cygpath --version) >/dev/null 2>/dev/null; then
453 CYGPATH_W='cygpath -w'
454 else
455 CYGPATH_W=echo
456 fi
457 fi
458 AC_SUBST([CYGPATH_W])
459
460 # Define the identity of the package.
461 dnl Distinguish between old-style and new-style calls.
462 m4_ifval([$2],
463 [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
464 AC_SUBST([PACKAGE], [$1])dnl
465 AC_SUBST([VERSION], [$2])],
466 [_AM_SET_OPTIONS([$1])dnl
467 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
468 m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
469 [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
470 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
471 AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
472
473 _AM_IF_OPTION([no-define],,
474 [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
475 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
476
477 # Some tools Automake needs.
478 AC_REQUIRE([AM_SANITY_CHECK])dnl
479 AC_REQUIRE([AC_ARG_PROGRAM])dnl
480 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
481 AM_MISSING_PROG(AUTOCONF, autoconf)
482 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
483 AM_MISSING_PROG(AUTOHEADER, autoheader)
484 AM_MISSING_PROG(MAKEINFO, makeinfo)
485 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
486 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
487 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
488 # We need awk for the "check" target. The system "awk" is bad on
489 # some platforms.
490 AC_REQUIRE([AC_PROG_AWK])dnl
491 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
492 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
493 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
494 [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
495 [_AM_PROG_TAR([v7])])])
496 _AM_IF_OPTION([no-dependencies],,
497 [AC_PROVIDE_IFELSE([AC_PROG_CC],
498 [_AM_DEPENDENCIES(CC)],
499 [define([AC_PROG_CC],
500 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
501 AC_PROVIDE_IFELSE([AC_PROG_CXX],
502 [_AM_DEPENDENCIES(CXX)],
503 [define([AC_PROG_CXX],
504 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
505 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
506 [_AM_DEPENDENCIES(OBJC)],
507 [define([AC_PROG_OBJC],
508 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
509 ])
510 _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
511 dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
512 dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
513 dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
514 AC_CONFIG_COMMANDS_PRE(dnl
515 [m4_provide_if([_AM_COMPILER_EXEEXT],
516 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
517 ])
518
519 dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
520 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
521 dnl mangled by Autoconf and run in a shell conditional statement.
522 m4_define([_AC_COMPILER_EXEEXT],
523 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
524
525
526 # When config.status generates a header, we must update the stamp-h file.
527 # This file resides in the same directory as the config header
528 # that is generated. The stamp files are numbered to have different names.
529
530 # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
531 # loop where config.status creates the headers, so we can generate
532 # our stamp files there.
533 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
534 [# Compute $1's index in $config_headers.
535 _am_arg=$1
536 _am_stamp_count=1
537 for _am_header in $config_headers :; do
538 case $_am_header in
539 $_am_arg | $_am_arg:* )
540 break ;;
541 * )
542 _am_stamp_count=`expr $_am_stamp_count + 1` ;;
543 esac
544 done
545 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
546
547 # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
548 #
549 # This file is free software; the Free Software Foundation
550 # gives unlimited permission to copy and/or distribute it,
551 # with or without modifications, as long as this notice is preserved.
552
553 # AM_PROG_INSTALL_SH
554 # ------------------
555 # Define $install_sh.
556 AC_DEFUN([AM_PROG_INSTALL_SH],
557 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
558 if test x"${install_sh}" != xset; then
559 case $am_aux_dir in
560 *\ * | *\ *)
561 install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
562 *)
563 install_sh="\${SHELL} $am_aux_dir/install-sh"
564 esac
565 fi
566 AC_SUBST(install_sh)])
567
568 # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
569 #
570 # This file is free software; the Free Software Foundation
571 # gives unlimited permission to copy and/or distribute it,
572 # with or without modifications, as long as this notice is preserved.
573
574 # serial 2
575
576 # Check whether the underlying file-system supports filenames
577 # with a leading dot. For instance MS-DOS doesn't.
578 AC_DEFUN([AM_SET_LEADING_DOT],
579 [rm -rf .tst 2>/dev/null
580 mkdir .tst 2>/dev/null
581 if test -d .tst; then
582 am__leading_dot=.
583 else
584 am__leading_dot=_
585 fi
586 rmdir .tst 2>/dev/null
587 AC_SUBST([am__leading_dot])])
588
589 # Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
590 # From Jim Meyering
591
592 # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
593 # Free Software Foundation, Inc.
594 #
595 # This file is free software; the Free Software Foundation
596 # gives unlimited permission to copy and/or distribute it,
597 # with or without modifications, as long as this notice is preserved.
598
599 # serial 5
600
601 # AM_MAINTAINER_MODE([DEFAULT-MODE])
602 # ----------------------------------
603 # Control maintainer-specific portions of Makefiles.
604 # Default is to disable them, unless `enable' is passed literally.
605 # For symmetry, `disable' may be passed as well. Anyway, the user
606 # can override the default with the --enable/--disable switch.
607 AC_DEFUN([AM_MAINTAINER_MODE],
608 [m4_case(m4_default([$1], [disable]),
609 [enable], [m4_define([am_maintainer_other], [disable])],
610 [disable], [m4_define([am_maintainer_other], [enable])],
611 [m4_define([am_maintainer_other], [enable])
612 m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
613 AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
614 dnl maintainer-mode's default is 'disable' unless 'enable' is passed
615 AC_ARG_ENABLE([maintainer-mode],
616 [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
617 (and sometimes confusing) to the casual installer],
618 [USE_MAINTAINER_MODE=$enableval],
619 [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
620 AC_MSG_RESULT([$USE_MAINTAINER_MODE])
621 AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
622 MAINT=$MAINTAINER_MODE_TRUE
623 AC_SUBST([MAINT])dnl
624 ]
625 )
626
627 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
628
629 # Check to see how 'make' treats includes. -*- Autoconf -*-
630
631 # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
632 #
633 # This file is free software; the Free Software Foundation
634 # gives unlimited permission to copy and/or distribute it,
635 # with or without modifications, as long as this notice is preserved.
636
637 # serial 4
638
639 # AM_MAKE_INCLUDE()
640 # -----------------
641 # Check to see how make treats includes.
642 AC_DEFUN([AM_MAKE_INCLUDE],
643 [am_make=${MAKE-make}
644 cat > confinc << 'END'
645 am__doit:
646 @echo this is the am__doit target
647 .PHONY: am__doit
648 END
649 # If we don't find an include directive, just comment out the code.
650 AC_MSG_CHECKING([for style of include used by $am_make])
651 am__include="#"
652 am__quote=
653 _am_result=none
654 # First try GNU make style include.
655 echo "include confinc" > confmf
656 # Ignore all kinds of additional output from `make'.
657 case `$am_make -s -f confmf 2> /dev/null` in #(
658 *the\ am__doit\ target*)
659 am__include=include
660 am__quote=
661 _am_result=GNU
662 ;;
663 esac
664 # Now try BSD make style include.
665 if test "$am__include" = "#"; then
666 echo '.include "confinc"' > confmf
667 case `$am_make -s -f confmf 2> /dev/null` in #(
668 *the\ am__doit\ target*)
669 am__include=.include
670 am__quote="\""
671 _am_result=BSD
672 ;;
673 esac
674 fi
675 AC_SUBST([am__include])
676 AC_SUBST([am__quote])
677 AC_MSG_RESULT([$_am_result])
678 rm -f confinc confmf
679 ])
680
681 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
682
683 # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
684 # Free Software Foundation, Inc.
685 #
686 # This file is free software; the Free Software Foundation
687 # gives unlimited permission to copy and/or distribute it,
688 # with or without modifications, as long as this notice is preserved.
689
690 # serial 6
691
692 # AM_MISSING_PROG(NAME, PROGRAM)
693 # ------------------------------
694 AC_DEFUN([AM_MISSING_PROG],
695 [AC_REQUIRE([AM_MISSING_HAS_RUN])
696 $1=${$1-"${am_missing_run}$2"}
697 AC_SUBST($1)])
698
699
700 # AM_MISSING_HAS_RUN
701 # ------------------
702 # Define MISSING if not defined so far and test if it supports --run.
703 # If it does, set am_missing_run to use it, otherwise, to nothing.
704 AC_DEFUN([AM_MISSING_HAS_RUN],
705 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
706 AC_REQUIRE_AUX_FILE([missing])dnl
707 if test x"${MISSING+set}" != xset; then
708 case $am_aux_dir in
709 *\ * | *\ *)
710 MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
711 *)
712 MISSING="\${SHELL} $am_aux_dir/missing" ;;
713 esac
714 fi
715 # Use eval to expand $SHELL
716 if eval "$MISSING --run true"; then
717 am_missing_run="$MISSING --run "
718 else
719 am_missing_run=
720 AC_MSG_WARN([`missing' script is too old or missing])
721 fi
722 ])
723
724 # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
725 #
726 # This file is free software; the Free Software Foundation
727 # gives unlimited permission to copy and/or distribute it,
728 # with or without modifications, as long as this notice is preserved.
729
730 # AM_PROG_MKDIR_P
731 # ---------------
732 # Check for `mkdir -p'.
733 AC_DEFUN([AM_PROG_MKDIR_P],
734 [AC_PREREQ([2.60])dnl
735 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
736 dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
737 dnl while keeping a definition of mkdir_p for backward compatibility.
738 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
739 dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
740 dnl Makefile.ins that do not define MKDIR_P, so we do our own
741 dnl adjustment using top_builddir (which is defined more often than
742 dnl MKDIR_P).
743 AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
744 case $mkdir_p in
745 [[\\/$]]* | ?:[[\\/]]*) ;;
746 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
747 esac
748 ])
749
750 # Helper functions for option handling. -*- Autoconf -*-
751
752 # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
753 #
754 # This file is free software; the Free Software Foundation
755 # gives unlimited permission to copy and/or distribute it,
756 # with or without modifications, as long as this notice is preserved.
757
758 # serial 4
759
760 # _AM_MANGLE_OPTION(NAME)
761 # -----------------------
762 AC_DEFUN([_AM_MANGLE_OPTION],
763 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
764
765 # _AM_SET_OPTION(NAME)
766 # ------------------------------
767 # Set option NAME. Presently that only means defining a flag for this option.
768 AC_DEFUN([_AM_SET_OPTION],
769 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
770
771 # _AM_SET_OPTIONS(OPTIONS)
772 # ----------------------------------
773 # OPTIONS is a space-separated list of Automake options.
774 AC_DEFUN([_AM_SET_OPTIONS],
775 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
776
777 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
778 # -------------------------------------------
779 # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
780 AC_DEFUN([_AM_IF_OPTION],
781 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
782
783 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
784 # Free Software Foundation, Inc.
785 #
786 # This file is free software; the Free Software Foundation
787 # gives unlimited permission to copy and/or distribute it,
788 # with or without modifications, as long as this notice is preserved.
789
790 # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
791 # ---------------------------------------------------------------------------
792 # Adds support for distributing Python modules and packages. To
793 # install modules, copy them to $(pythondir), using the python_PYTHON
794 # automake variable. To install a package with the same name as the
795 # automake package, install to $(pkgpythondir), or use the
796 # pkgpython_PYTHON automake variable.
797 #
798 # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
799 # locations to install python extension modules (shared libraries).
800 # Another macro is required to find the appropriate flags to compile
801 # extension modules.
802 #
803 # If your package is configured with a different prefix to python,
804 # users will have to add the install directory to the PYTHONPATH
805 # environment variable, or create a .pth file (see the python
806 # documentation for details).
807 #
808 # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
809 # cause an error if the version of python installed on the system
810 # doesn't meet the requirement. MINIMUM-VERSION should consist of
811 # numbers and dots only.
812 AC_DEFUN([AM_PATH_PYTHON],
813 [
814 dnl Find a Python interpreter. Python versions prior to 2.0 are not
815 dnl supported. (2.0 was released on October 16, 2000).
816 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
817 [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
818 python2.1 python2.0])
819
820 m4_if([$1],[],[
821 dnl No version check is needed.
822 # Find any Python interpreter.
823 if test -z "$PYTHON"; then
824 AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
825 fi
826 am_display_PYTHON=python
827 ], [
828 dnl A version check is needed.
829 if test -n "$PYTHON"; then
830 # If the user set $PYTHON, use it and don't search something else.
831 AC_MSG_CHECKING([whether $PYTHON version >= $1])
832 AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
833 [AC_MSG_RESULT(yes)],
834 [AC_MSG_ERROR(too old)])
835 am_display_PYTHON=$PYTHON
836 else
837 # Otherwise, try each interpreter until we find one that satisfies
838 # VERSION.
839 AC_CACHE_CHECK([for a Python interpreter with version >= $1],
840 [am_cv_pathless_PYTHON],[
841 for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
842 test "$am_cv_pathless_PYTHON" = none && break
843 AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
844 done])
845 # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
846 if test "$am_cv_pathless_PYTHON" = none; then
847 PYTHON=:
848 else
849 AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
850 fi
851 am_display_PYTHON=$am_cv_pathless_PYTHON
852 fi
853 ])
854
855 if test "$PYTHON" = :; then
856 dnl Run any user-specified action, or abort.
857 m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
858 else
859
860 dnl Query Python for its version number. Getting [:3] seems to be
861 dnl the best way to do this; it's what "site.py" does in the standard
862 dnl library.
863
864 AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
865 [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
866 AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
867
868 dnl Use the values of $prefix and $exec_prefix for the corresponding
869 dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
870 dnl distinct variables so they can be overridden if need be. However,
871 dnl general consensus is that you shouldn't need this ability.
872
873 AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
874 AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
875
876 dnl At times (like when building shared libraries) you may want
877 dnl to know which OS platform Python thinks this is.
878
879 AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
880 [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
881 AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
882
883
884 dnl Set up 4 directories:
885
886 dnl pythondir -- where to install python scripts. This is the
887 dnl site-packages directory, not the python standard library
888 dnl directory like in previous automake betas. This behavior
889 dnl is more consistent with lispdir.m4 for example.
890 dnl Query distutils for this directory. distutils does not exist in
891 dnl Python 1.5, so we fall back to the hardcoded directory if it
892 dnl doesn't work.
893 AC_CACHE_CHECK([for $am_display_PYTHON script directory],
894 [am_cv_python_pythondir],
895 [if test "x$prefix" = xNONE
896 then
897 am_py_prefix=$ac_default_prefix
898 else
899 am_py_prefix=$prefix
900 fi
901 am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
902 echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
903 case $am_cv_python_pythondir in
904 $am_py_prefix*)
905 am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
906 am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
907 ;;
908 *)
909 case $am_py_prefix in
910 /usr|/System*) ;;
911 *)
912 am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
913 ;;
914 esac
915 ;;
916 esac
917 ])
918 AC_SUBST([pythondir], [$am_cv_python_pythondir])
919
920 dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
921 dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
922 dnl more consistent with the rest of automake.
923
924 AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
925
926 dnl pyexecdir -- directory for installing python extension modules
927 dnl (shared libraries)
928 dnl Query distutils for this directory. distutils does not exist in
929 dnl Python 1.5, so we fall back to the hardcoded directory if it
930 dnl doesn't work.
931 AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
932 [am_cv_python_pyexecdir],
933 [if test "x$exec_prefix" = xNONE
934 then
935 am_py_exec_prefix=$am_py_prefix
936 else
937 am_py_exec_prefix=$exec_prefix
938 fi
939 am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
940 echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
941 case $am_cv_python_pyexecdir in
942 $am_py_exec_prefix*)
943 am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
944 am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
945 ;;
946 *)
947 case $am_py_exec_prefix in
948 /usr|/System*) ;;
949 *)
950 am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
951 ;;
952 esac
953 ;;
954 esac
955 ])
956 AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
957
958 dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
959
960 AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
961
962 dnl Run any user-specified action.
963 $2
964 fi
965
966 ])
967
968
969 # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
970 # ---------------------------------------------------------------------------
971 # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
972 # Run ACTION-IF-FALSE otherwise.
973 # This test uses sys.hexversion instead of the string equivalent (first
974 # word of sys.version), in order to cope with versions such as 2.2c1.
975 # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
976 AC_DEFUN([AM_PYTHON_CHECK_VERSION],
977 [prog="import sys
978 # split strings by '.' and convert to numeric. Append some zeros
979 # because we need at least 4 digits for the hex conversion.
980 # map returns an iterator in Python 3.0 and a list in 2.x
981 minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
982 minverhex = 0
983 # xrange is not present in Python 3.0 and range returns an iterator
984 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
985 sys.exit(sys.hexversion < minverhex)"
986 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
987
988 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
989 #
990 # This file is free software; the Free Software Foundation
991 # gives unlimited permission to copy and/or distribute it,
992 # with or without modifications, as long as this notice is preserved.
993
994 # AM_RUN_LOG(COMMAND)
995 # -------------------
996 # Run COMMAND, save the exit status in ac_status, and log it.
997 # (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
998 AC_DEFUN([AM_RUN_LOG],
999 [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
1000 ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
1001 ac_status=$?
1002 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1003 (exit $ac_status); }])
1004
1005 # Check to make sure that the build environment is sane. -*- Autoconf -*-
1006
1007 # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
1008 # Free Software Foundation, Inc.
1009 #
1010 # This file is free software; the Free Software Foundation
1011 # gives unlimited permission to copy and/or distribute it,
1012 # with or without modifications, as long as this notice is preserved.
1013
1014 # serial 5
1015
1016 # AM_SANITY_CHECK
1017 # ---------------
1018 AC_DEFUN([AM_SANITY_CHECK],
1019 [AC_MSG_CHECKING([whether build environment is sane])
1020 # Just in case
1021 sleep 1
1022 echo timestamp > conftest.file
1023 # Reject unsafe characters in $srcdir or the absolute working directory
1024 # name. Accept space and tab only in the latter.
1025 am_lf='
1026 '
1027 case `pwd` in
1028 *[[\\\"\#\$\&\'\`$am_lf]]*)
1029 AC_MSG_ERROR([unsafe absolute working directory name]);;
1030 esac
1031 case $srcdir in
1032 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
1033 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
1034 esac
1035
1036 # Do `set' in a subshell so we don't clobber the current shell's
1037 # arguments. Must try -L first in case configure is actually a
1038 # symlink; some systems play weird games with the mod time of symlinks
1039 # (eg FreeBSD returns the mod time of the symlink's containing
1040 # directory).
1041 if (
1042 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
1043 if test "$[*]" = "X"; then
1044 # -L didn't work.
1045 set X `ls -t "$srcdir/configure" conftest.file`
1046 fi
1047 rm -f conftest.file
1048 if test "$[*]" != "X $srcdir/configure conftest.file" \
1049 && test "$[*]" != "X conftest.file $srcdir/configure"; then
1050
1051 # If neither matched, then we have a broken ls. This can happen
1052 # if, for instance, CONFIG_SHELL is bash and it inherits a
1053 # broken ls alias from the environment. This has actually
1054 # happened. Such a system could not be considered "sane".
1055 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1056 alias in your environment])
1057 fi
1058
1059 test "$[2]" = conftest.file
1060 )
1061 then
1062 # Ok.
1063 :
1064 else
1065 AC_MSG_ERROR([newly created file is older than distributed files!
1066 Check your system clock])
1067 fi
1068 AC_MSG_RESULT(yes)])
1069
1070 # Copyright (C) 2009 Free Software Foundation, Inc.
1071 #
1072 # This file is free software; the Free Software Foundation
1073 # gives unlimited permission to copy and/or distribute it,
1074 # with or without modifications, as long as this notice is preserved.
1075
1076 # serial 1
1077
1078 # AM_SILENT_RULES([DEFAULT])
1079 # --------------------------
1080 # Enable less verbose build rules; with the default set to DEFAULT
1081 # (`yes' being less verbose, `no' or empty being verbose).
1082 AC_DEFUN([AM_SILENT_RULES],
1083 [AC_ARG_ENABLE([silent-rules],
1084 [ --enable-silent-rules less verbose build output (undo: `make V=1')
1085 --disable-silent-rules verbose build output (undo: `make V=0')])
1086 case $enable_silent_rules in
1087 yes) AM_DEFAULT_VERBOSITY=0;;
1088 no) AM_DEFAULT_VERBOSITY=1;;
1089 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
1090 esac
1091 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
1092 AM_BACKSLASH='\'
1093 AC_SUBST([AM_BACKSLASH])dnl
1094 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
1095 ])
1096
1097 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1098 #
1099 # This file is free software; the Free Software Foundation
1100 # gives unlimited permission to copy and/or distribute it,
1101 # with or without modifications, as long as this notice is preserved.
1102
1103 # AM_PROG_INSTALL_STRIP
1104 # ---------------------
1105 # One issue with vendor `install' (even GNU) is that you can't
1106 # specify the program used to strip binaries. This is especially
1107 # annoying in cross-compiling environments, where the build's strip
1108 # is unlikely to handle the host's binaries.
1109 # Fortunately install-sh will honor a STRIPPROG variable, so we
1110 # always use install-sh in `make install-strip', and initialize
1111 # STRIPPROG with the value of the STRIP variable (set by the user).
1112 AC_DEFUN([AM_PROG_INSTALL_STRIP],
1113 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
1114 # Installed binaries are usually stripped using `strip' when the user
1115 # run `make install-strip'. However `strip' might not be the right
1116 # tool to use in cross-compilation environments, therefore Automake
1117 # will honor the `STRIP' environment variable to overrule this program.
1118 dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
1119 if test "$cross_compiling" != no; then
1120 AC_CHECK_TOOL([STRIP], [strip], :)
1121 fi
1122 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1123 AC_SUBST([INSTALL_STRIP_PROGRAM])])
1124
1125 # Copyright (C) 2006, 2008 Free Software Foundation, Inc.
1126 #
1127 # This file is free software; the Free Software Foundation
1128 # gives unlimited permission to copy and/or distribute it,
1129 # with or without modifications, as long as this notice is preserved.
1130
1131 # serial 2
1132
1133 # _AM_SUBST_NOTMAKE(VARIABLE)
1134 # ---------------------------
1135 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
1136 # This macro is traced by Automake.
1137 AC_DEFUN([_AM_SUBST_NOTMAKE])
1138
1139 # AM_SUBST_NOTMAKE(VARIABLE)
1140 # ---------------------------
1141 # Public sister of _AM_SUBST_NOTMAKE.
1142 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
1143
1144 # Check how to create a tarball. -*- Autoconf -*-
1145
1146 # Copyright (C) 2004, 2005 Free Software Foundation, Inc.
1147 #
1148 # This file is free software; the Free Software Foundation
1149 # gives unlimited permission to copy and/or distribute it,
1150 # with or without modifications, as long as this notice is preserved.
1151
1152 # serial 2
1153
1154 # _AM_PROG_TAR(FORMAT)
1155 # --------------------
1156 # Check how to create a tarball in format FORMAT.
1157 # FORMAT should be one of `v7', `ustar', or `pax'.
1158 #
1159 # Substitute a variable $(am__tar) that is a command
1160 # writing to stdout a FORMAT-tarball containing the directory
1161 # $tardir.
1162 # tardir=directory && $(am__tar) > result.tar
1163 #
1164 # Substitute a variable $(am__untar) that extract such
1165 # a tarball read from stdin.
1166 # $(am__untar) < result.tar
1167 AC_DEFUN([_AM_PROG_TAR],
1168 [# Always define AMTAR for backward compatibility.
1169 AM_MISSING_PROG([AMTAR], [tar])
1170 m4_if([$1], [v7],
1171 [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
1172 [m4_case([$1], [ustar],, [pax],,
1173 [m4_fatal([Unknown tar format])])
1174 AC_MSG_CHECKING([how to create a $1 tar archive])
1175 # Loop over all known methods to create a tar archive until one works.
1176 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
1177 _am_tools=${am_cv_prog_tar_$1-$_am_tools}
1178 # Do not fold the above two line into one, because Tru64 sh and
1179 # Solaris sh will not grok spaces in the rhs of `-'.
1180 for _am_tool in $_am_tools
1181 do
1182 case $_am_tool in
1183 gnutar)
1184 for _am_tar in tar gnutar gtar;
1185 do
1186 AM_RUN_LOG([$_am_tar --version]) && break
1187 done
1188 am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
1189 am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
1190 am__untar="$_am_tar -xf -"
1191 ;;
1192 plaintar)
1193 # Must skip GNU tar: if it does not support --format= it doesn't create
1194 # ustar tarball either.
1195 (tar --version) >/dev/null 2>&1 && continue
1196 am__tar='tar chf - "$$tardir"'
1197 am__tar_='tar chf - "$tardir"'
1198 am__untar='tar xf -'
1199 ;;
1200 pax)
1201 am__tar='pax -L -x $1 -w "$$tardir"'
1202 am__tar_='pax -L -x $1 -w "$tardir"'
1203 am__untar='pax -r'
1204 ;;
1205 cpio)
1206 am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
1207 am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
1208 am__untar='cpio -i -H $1 -d'
1209 ;;
1210 none)
1211 am__tar=false
1212 am__tar_=false
1213 am__untar=false
1214 ;;
1215 esac
1216
1217 # If the value was cached, stop now. We just wanted to have am__tar
1218 # and am__untar set.
1219 test -n "${am_cv_prog_tar_$1}" && break
1220
1221 # tar/untar a dummy directory, and stop if the command works
1222 rm -rf conftest.dir
1223 mkdir conftest.dir
1224 echo GrepMe > conftest.dir/file
1225 AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
1226 rm -rf conftest.dir
1227 if test -s conftest.tar; then
1228 AM_RUN_LOG([$am__untar <conftest.tar])
1229 grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
1230 fi
1231 done
1232 rm -rf conftest.dir
1233
1234 AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
1235 AC_MSG_RESULT([$am_cv_prog_tar_$1])])
1236 AC_SUBST([am__tar])
1237 AC_SUBST([am__untar])
1238 ]) # _AM_PROG_TAR
1239
1240 # nls.m4 serial 3 (gettext-0.15)
1241 dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
1242 dnl This file is free software; the Free Software Foundation
1243 dnl gives unlimited permission to copy and/or distribute it,
1244 dnl with or without modifications, as long as this notice is preserved.
1245 dnl
1246 dnl This file can can be used in projects which are not available under
1247 dnl the GNU General Public License or the GNU Library General Public
1248 dnl License but which still want to provide support for the GNU gettext
1249 dnl functionality.
1250 dnl Please note that the actual code of the GNU gettext library is covered
1251 dnl by the GNU Library General Public License, and the rest of the GNU
1252 dnl gettext package package is covered by the GNU General Public License.
1253 dnl They are *not* in the public domain.
1254
1255 dnl Authors:
1256 dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
1257 dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
1258
1259 AC_PREREQ(2.50)
1260
1261 AC_DEFUN([AM_NLS],
1262 [
1263 AC_MSG_CHECKING([whether NLS is requested])
1264 dnl Default is enabled NLS
1265 AC_ARG_ENABLE(nls,
1266 [ --disable-nls do not use Native Language Support],
1267 USE_NLS=$enableval, USE_NLS=yes)
1268 AC_MSG_RESULT($USE_NLS)
1269 AC_SUBST(USE_NLS)
1270 ])
1271
1272 # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
1273 #
1274 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
1275 #
1276 # This program is free software; you can redistribute it and/or modify
1277 # it under the terms of the GNU General Public License as published by
1278 # the Free Software Foundation; either version 2 of the License, or
1279 # (at your option) any later version.
1280 #
1281 # This program is distributed in the hope that it will be useful, but
1282 # WITHOUT ANY WARRANTY; without even the implied warranty of
1283 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1284 # General Public License for more details.
1285 #
1286 # You should have received a copy of the GNU General Public License
1287 # along with this program; if not, write to the Free Software
1288 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1289 #
1290 # As a special exception to the GNU General Public License, if you
1291 # distribute this file as part of a program that contains a
1292 # configuration script generated by Autoconf, you may include it under
1293 # the same distribution terms that you use for the rest of that program.
1294
1295 # PKG_PROG_PKG_CONFIG([MIN-VERSION])
1296 # ----------------------------------
1297 AC_DEFUN([PKG_PROG_PKG_CONFIG],
1298 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
1299 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
1300 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
1301 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
1302 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
1303 fi
1304 if test -n "$PKG_CONFIG"; then
1305 _pkg_min_version=m4_default([$1], [0.9.0])
1306 AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
1307 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
1308 AC_MSG_RESULT([yes])
1309 else
1310 AC_MSG_RESULT([no])
1311 PKG_CONFIG=""
1312 fi
1313
1314 fi[]dnl
1315 ])# PKG_PROG_PKG_CONFIG
1316
1317 # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
1318 #
1319 # Check to see whether a particular set of modules exists. Similar
1320 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
1321 #
1322 #
1323 # Similar to PKG_CHECK_MODULES, make sure that the first instance of
1324 # this or PKG_CHECK_MODULES is called, or make sure to call
1325 # PKG_CHECK_EXISTS manually
1326 # --------------------------------------------------------------
1327 AC_DEFUN([PKG_CHECK_EXISTS],
1328 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
1329 if test -n "$PKG_CONFIG" && \
1330 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
1331 m4_ifval([$2], [$2], [:])
1332 m4_ifvaln([$3], [else
1333 $3])dnl
1334 fi])
1335
1336
1337 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
1338 # ---------------------------------------------
1339 m4_define([_PKG_CONFIG],
1340 [if test -n "$PKG_CONFIG"; then
1341 if test -n "$$1"; then
1342 pkg_cv_[]$1="$$1"
1343 else
1344 PKG_CHECK_EXISTS([$3],
1345 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
1346 [pkg_failed=yes])
1347 fi
1348 else
1349 pkg_failed=untried
1350 fi[]dnl
1351 ])# _PKG_CONFIG
1352
1353 # _PKG_SHORT_ERRORS_SUPPORTED
1354 # -----------------------------
1355 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
1356 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
1357 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
1358 _pkg_short_errors_supported=yes
1359 else
1360 _pkg_short_errors_supported=no
1361 fi[]dnl
1362 ])# _PKG_SHORT_ERRORS_SUPPORTED
1363
1364
1365 # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
1366 # [ACTION-IF-NOT-FOUND])
1367 #
1368 #
1369 # Note that if there is a possibility the first call to
1370 # PKG_CHECK_MODULES might not happen, you should be sure to include an
1371 # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
1372 #
1373 #
1374 # --------------------------------------------------------------
1375 AC_DEFUN([PKG_CHECK_MODULES],
1376 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
1377 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
1378 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
1379
1380 pkg_failed=no
1381 AC_MSG_CHECKING([for $1])
1382
1383 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
1384 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
1385
1386 m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
1387 and $1[]_LIBS to avoid the need to call pkg-config.
1388 See the pkg-config man page for more details.])
1389
1390 if test $pkg_failed = yes; then
1391 _PKG_SHORT_ERRORS_SUPPORTED
1392 if test $_pkg_short_errors_supported = yes; then
1393 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
1394 else
1395 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1396 fi
1397 # Put the nasty error message in config.log where it belongs
1398 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
1399
1400 ifelse([$4], , [AC_MSG_ERROR(dnl
1401 [Package requirements ($2) were not met:
1402
1403 $$1_PKG_ERRORS
1404
1405 Consider adjusting the PKG_CONFIG_PATH environment variable if you
1406 installed software in a non-standard prefix.
1407
1408 _PKG_TEXT
1409 ])],
1410 [AC_MSG_RESULT([no])
1411 $4])
1412 elif test $pkg_failed = untried; then
1413 ifelse([$4], , [AC_MSG_FAILURE(dnl
1414 [The pkg-config script could not be found or is too old. Make sure it
1415 is in your PATH or set the PKG_CONFIG environment variable to the full
1416 path to pkg-config.
1417
1418 _PKG_TEXT
1419
1420 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
1421 [$4])
1422 else
1423 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
1424 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
1425 AC_MSG_RESULT([yes])
1426 ifelse([$3], , :, [$3])
1427 fi[]dnl
1428 ])# PKG_CHECK_MODULES
201429
211430 # Configure paths for GLIB
221431 # Owen Taylor 1997-2001
5121921
5131922 dnl These rules are solely for the distribution goal. While doing this
5141923 dnl we only have to keep exactly one list of the available catalogs
515 dnl in configure.in.
1924 dnl in configure.ac.
5161925 for lang in $ALL_LINGUAS; do
5171926 GMOFILES="$GMOFILES $lang.gmo"
5181927 POFILES="$POFILES $lang.po"
6412050 dnl
6422051 dnl Now the definitions that aclocal will find
6432052 dnl
644 ifdef(glib_configure_in,[],[
2053 ifdef(glib_configure_ac,[],[
6452054 AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
6462055 AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
6472056 ])dnl
6642073
6652074
6662075 # gnome-common.m4
2076 #
2077 # serial 3
6672078 #
6682079
6692080 dnl GNOME_COMMON_INIT
6702081
671 AC_DEFUN([GNOME_COMMON_INIT],
2082 AU_DEFUN([GNOME_COMMON_INIT],
6722083 [
6732084 dnl this macro should come after AC_CONFIG_MACRO_DIR
6742085 AC_BEFORE([AC_CONFIG_MACRO_DIR], [$0])
6812092 fi
6822093
6832094 AC_SUBST([ACLOCAL_AMFLAGS])
684 ])
2095 ],
2096 [[$0: This macro is deprecated. You should set put "ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}"
2097 in your top-level Makefile.am, instead, where "m4" is the macro directory set
2098 with AC_CONFIG_MACRO_DIR() in your configure.ac]])
6852099
6862100 AC_DEFUN([GNOME_DEBUG_CHECK],
6872101 [
7132127
7142128 AC_SUBST(DISABLE_DEPRECATED)
7152129 ])
716
717 # nls.m4 serial 3 (gettext-0.15)
718 dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
719 dnl This file is free software; the Free Software Foundation
720 dnl gives unlimited permission to copy and/or distribute it,
721 dnl with or without modifications, as long as this notice is preserved.
722 dnl
723 dnl This file can can be used in projects which are not available under
724 dnl the GNU General Public License or the GNU Library General Public
725 dnl License but which still want to provide support for the GNU gettext
726 dnl functionality.
727 dnl Please note that the actual code of the GNU gettext library is covered
728 dnl by the GNU Library General Public License, and the rest of the GNU
729 dnl gettext package package is covered by the GNU General Public License.
730 dnl They are *not* in the public domain.
731
732 dnl Authors:
733 dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
734 dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
735
736 AC_PREREQ(2.50)
737
738 AC_DEFUN([AM_NLS],
739 [
740 AC_MSG_CHECKING([whether NLS is requested])
741 dnl Default is enabled NLS
742 AC_ARG_ENABLE(nls,
743 [ --disable-nls do not use Native Language Support],
744 USE_NLS=$enableval, USE_NLS=yes)
745 AC_MSG_RESULT($USE_NLS)
746 AC_SUBST(USE_NLS)
747 ])
748
749 # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
750 #
751 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
752 #
753 # This program is free software; you can redistribute it and/or modify
754 # it under the terms of the GNU General Public License as published by
755 # the Free Software Foundation; either version 2 of the License, or
756 # (at your option) any later version.
757 #
758 # This program is distributed in the hope that it will be useful, but
759 # WITHOUT ANY WARRANTY; without even the implied warranty of
760 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
761 # General Public License for more details.
762 #
763 # You should have received a copy of the GNU General Public License
764 # along with this program; if not, write to the Free Software
765 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
766 #
767 # As a special exception to the GNU General Public License, if you
768 # distribute this file as part of a program that contains a
769 # configuration script generated by Autoconf, you may include it under
770 # the same distribution terms that you use for the rest of that program.
771
772 # PKG_PROG_PKG_CONFIG([MIN-VERSION])
773 # ----------------------------------
774 AC_DEFUN([PKG_PROG_PKG_CONFIG],
775 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
776 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
777 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
778 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
779 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
780 fi
781 if test -n "$PKG_CONFIG"; then
782 _pkg_min_version=m4_default([$1], [0.9.0])
783 AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
784 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
785 AC_MSG_RESULT([yes])
786 else
787 AC_MSG_RESULT([no])
788 PKG_CONFIG=""
789 fi
790
791 fi[]dnl
792 ])# PKG_PROG_PKG_CONFIG
793
794 # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
795 #
796 # Check to see whether a particular set of modules exists. Similar
797 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
798 #
799 #
800 # Similar to PKG_CHECK_MODULES, make sure that the first instance of
801 # this or PKG_CHECK_MODULES is called, or make sure to call
802 # PKG_CHECK_EXISTS manually
803 # --------------------------------------------------------------
804 AC_DEFUN([PKG_CHECK_EXISTS],
805 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
806 if test -n "$PKG_CONFIG" && \
807 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
808 m4_ifval([$2], [$2], [:])
809 m4_ifvaln([$3], [else
810 $3])dnl
811 fi])
812
813
814 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
815 # ---------------------------------------------
816 m4_define([_PKG_CONFIG],
817 [if test -n "$PKG_CONFIG"; then
818 if test -n "$$1"; then
819 pkg_cv_[]$1="$$1"
820 else
821 PKG_CHECK_EXISTS([$3],
822 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
823 [pkg_failed=yes])
824 fi
825 else
826 pkg_failed=untried
827 fi[]dnl
828 ])# _PKG_CONFIG
829
830 # _PKG_SHORT_ERRORS_SUPPORTED
831 # -----------------------------
832 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
833 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
834 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
835 _pkg_short_errors_supported=yes
836 else
837 _pkg_short_errors_supported=no
838 fi[]dnl
839 ])# _PKG_SHORT_ERRORS_SUPPORTED
840
841
842 # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
843 # [ACTION-IF-NOT-FOUND])
844 #
845 #
846 # Note that if there is a possibility the first call to
847 # PKG_CHECK_MODULES might not happen, you should be sure to include an
848 # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
849 #
850 #
851 # --------------------------------------------------------------
852 AC_DEFUN([PKG_CHECK_MODULES],
853 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
854 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
855 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
856
857 pkg_failed=no
858 AC_MSG_CHECKING([for $1])
859
860 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
861 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
862
863 m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
864 and $1[]_LIBS to avoid the need to call pkg-config.
865 See the pkg-config man page for more details.])
866
867 if test $pkg_failed = yes; then
868 _PKG_SHORT_ERRORS_SUPPORTED
869 if test $_pkg_short_errors_supported = yes; then
870 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
871 else
872 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
873 fi
874 # Put the nasty error message in config.log where it belongs
875 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
876
877 ifelse([$4], , [AC_MSG_ERROR(dnl
878 [Package requirements ($2) were not met:
879
880 $$1_PKG_ERRORS
881
882 Consider adjusting the PKG_CONFIG_PATH environment variable if you
883 installed software in a non-standard prefix.
884
885 _PKG_TEXT
886 ])],
887 [AC_MSG_RESULT([no])
888 $4])
889 elif test $pkg_failed = untried; then
890 ifelse([$4], , [AC_MSG_FAILURE(dnl
891 [The pkg-config script could not be found or is too old. Make sure it
892 is in your PATH or set the PKG_CONFIG environment variable to the full
893 path to pkg-config.
894
895 _PKG_TEXT
896
897 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
898 [$4])
899 else
900 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
901 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
902 AC_MSG_RESULT([yes])
903 ifelse([$3], , :, [$3])
904 fi[]dnl
905 ])# PKG_CHECK_MODULES
906
907 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
908 #
909 # This file is free software; the Free Software Foundation
910 # gives unlimited permission to copy and/or distribute it,
911 # with or without modifications, as long as this notice is preserved.
912
913 # AM_AUTOMAKE_VERSION(VERSION)
914 # ----------------------------
915 # Automake X.Y traces this macro to ensure aclocal.m4 has been
916 # generated from the m4 files accompanying Automake X.Y.
917 # (This private macro should not be called outside this file.)
918 AC_DEFUN([AM_AUTOMAKE_VERSION],
919 [am__api_version='1.11'
920 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
921 dnl require some minimum version. Point them to the right macro.
922 m4_if([$1], [1.11.1], [],
923 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
924 ])
925
926 # _AM_AUTOCONF_VERSION(VERSION)
927 # -----------------------------
928 # aclocal traces this macro to find the Autoconf version.
929 # This is a private macro too. Using m4_define simplifies
930 # the logic in aclocal, which can simply ignore this definition.
931 m4_define([_AM_AUTOCONF_VERSION], [])
932
933 # AM_SET_CURRENT_AUTOMAKE_VERSION
934 # -------------------------------
935 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
936 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
937 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
938 [AM_AUTOMAKE_VERSION([1.11.1])dnl
939 m4_ifndef([AC_AUTOCONF_VERSION],
940 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
941 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
942
943 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
944
945 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
946 #
947 # This file is free software; the Free Software Foundation
948 # gives unlimited permission to copy and/or distribute it,
949 # with or without modifications, as long as this notice is preserved.
950
951 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
952 # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
953 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
954 #
955 # Of course, Automake must honor this variable whenever it calls a
956 # tool from the auxiliary directory. The problem is that $srcdir (and
957 # therefore $ac_aux_dir as well) can be either absolute or relative,
958 # depending on how configure is run. This is pretty annoying, since
959 # it makes $ac_aux_dir quite unusable in subdirectories: in the top
960 # source directory, any form will work fine, but in subdirectories a
961 # relative path needs to be adjusted first.
962 #
963 # $ac_aux_dir/missing
964 # fails when called from a subdirectory if $ac_aux_dir is relative
965 # $top_srcdir/$ac_aux_dir/missing
966 # fails if $ac_aux_dir is absolute,
967 # fails when called from a subdirectory in a VPATH build with
968 # a relative $ac_aux_dir
969 #
970 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
971 # are both prefixed by $srcdir. In an in-source build this is usually
972 # harmless because $srcdir is `.', but things will broke when you
973 # start a VPATH build or use an absolute $srcdir.
974 #
975 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
976 # iff we strip the leading $srcdir from $ac_aux_dir. That would be:
977 # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
978 # and then we would define $MISSING as
979 # MISSING="\${SHELL} $am_aux_dir/missing"
980 # This will work as long as MISSING is not called from configure, because
981 # unfortunately $(top_srcdir) has no meaning in configure.
982 # However there are other variables, like CC, which are often used in
983 # configure, and could therefore not use this "fixed" $ac_aux_dir.
984 #
985 # Another solution, used here, is to always expand $ac_aux_dir to an
986 # absolute PATH. The drawback is that using absolute paths prevent a
987 # configured tree to be moved without reconfiguration.
988
989 AC_DEFUN([AM_AUX_DIR_EXPAND],
990 [dnl Rely on autoconf to set up CDPATH properly.
991 AC_PREREQ([2.50])dnl
992 # expand $ac_aux_dir to an absolute path
993 am_aux_dir=`cd $ac_aux_dir && pwd`
994 ])
995
996 # AM_CONDITIONAL -*- Autoconf -*-
997
998 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
999 # Free Software Foundation, Inc.
1000 #
1001 # This file is free software; the Free Software Foundation
1002 # gives unlimited permission to copy and/or distribute it,
1003 # with or without modifications, as long as this notice is preserved.
1004
1005 # serial 9
1006
1007 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
1008 # -------------------------------------
1009 # Define a conditional.
1010 AC_DEFUN([AM_CONDITIONAL],
1011 [AC_PREREQ(2.52)dnl
1012 ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
1013 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
1014 AC_SUBST([$1_TRUE])dnl
1015 AC_SUBST([$1_FALSE])dnl
1016 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
1017 _AM_SUBST_NOTMAKE([$1_FALSE])dnl
1018 m4_define([_AM_COND_VALUE_$1], [$2])dnl
1019 if $2; then
1020 $1_TRUE=
1021 $1_FALSE='#'
1022 else
1023 $1_TRUE='#'
1024 $1_FALSE=
1025 fi
1026 AC_CONFIG_COMMANDS_PRE(
1027 [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
1028 AC_MSG_ERROR([[conditional "$1" was never defined.
1029 Usually this means the macro was only invoked conditionally.]])
1030 fi])])
1031
1032 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
1033 # Free Software Foundation, Inc.
1034 #
1035 # This file is free software; the Free Software Foundation
1036 # gives unlimited permission to copy and/or distribute it,
1037 # with or without modifications, as long as this notice is preserved.
1038
1039 # serial 10
1040
1041 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
1042 # written in clear, in which case automake, when reading aclocal.m4,
1043 # will think it sees a *use*, and therefore will trigger all it's
1044 # C support machinery. Also note that it means that autoscan, seeing
1045 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
1046
1047
1048 # _AM_DEPENDENCIES(NAME)
1049 # ----------------------
1050 # See how the compiler implements dependency checking.
1051 # NAME is "CC", "CXX", "GCJ", or "OBJC".
1052 # We try a few techniques and use that to set a single cache variable.
1053 #
1054 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
1055 # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
1056 # dependency, and given that the user is not expected to run this macro,
1057 # just rely on AC_PROG_CC.
1058 AC_DEFUN([_AM_DEPENDENCIES],
1059 [AC_REQUIRE([AM_SET_DEPDIR])dnl
1060 AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
1061 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
1062 AC_REQUIRE([AM_DEP_TRACK])dnl
1063
1064 ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
1065 [$1], CXX, [depcc="$CXX" am_compiler_list=],
1066 [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
1067 [$1], UPC, [depcc="$UPC" am_compiler_list=],
1068 [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
1069 [depcc="$$1" am_compiler_list=])
1070
1071 AC_CACHE_CHECK([dependency style of $depcc],
1072 [am_cv_$1_dependencies_compiler_type],
1073 [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
1074 # We make a subdir and do the tests there. Otherwise we can end up
1075 # making bogus files that we don't know about and never remove. For
1076 # instance it was reported that on HP-UX the gcc test will end up
1077 # making a dummy file named `D' -- because `-MD' means `put the output
1078 # in D'.
1079 mkdir conftest.dir
1080 # Copy depcomp to subdir because otherwise we won't find it if we're
1081 # using a relative directory.
1082 cp "$am_depcomp" conftest.dir
1083 cd conftest.dir
1084 # We will build objects and dependencies in a subdirectory because
1085 # it helps to detect inapplicable dependency modes. For instance
1086 # both Tru64's cc and ICC support -MD to output dependencies as a
1087 # side effect of compilation, but ICC will put the dependencies in
1088 # the current directory while Tru64 will put them in the object
1089 # directory.
1090 mkdir sub
1091
1092 am_cv_$1_dependencies_compiler_type=none
1093 if test "$am_compiler_list" = ""; then
1094 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
1095 fi
1096 am__universal=false
1097 m4_case([$1], [CC],
1098 [case " $depcc " in #(
1099 *\ -arch\ *\ -arch\ *) am__universal=true ;;
1100 esac],
1101 [CXX],
1102 [case " $depcc " in #(
1103 *\ -arch\ *\ -arch\ *) am__universal=true ;;
1104 esac])
1105
1106 for depmode in $am_compiler_list; do
1107 # Setup a source with many dependencies, because some compilers
1108 # like to wrap large dependency lists on column 80 (with \), and
1109 # we should not choose a depcomp mode which is confused by this.
1110 #
1111 # We need to recreate these files for each test, as the compiler may
1112 # overwrite some of them when testing with obscure command lines.
1113 # This happens at least with the AIX C compiler.
1114 : > sub/conftest.c
1115 for i in 1 2 3 4 5 6; do
1116 echo '#include "conftst'$i'.h"' >> sub/conftest.c
1117 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
1118 # Solaris 8's {/usr,}/bin/sh.
1119 touch sub/conftst$i.h
1120 done
1121 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
1122
1123 # We check with `-c' and `-o' for the sake of the "dashmstdout"
1124 # mode. It turns out that the SunPro C++ compiler does not properly
1125 # handle `-M -o', and we need to detect this. Also, some Intel
1126 # versions had trouble with output in subdirs
1127 am__obj=sub/conftest.${OBJEXT-o}
1128 am__minus_obj="-o $am__obj"
1129 case $depmode in
1130 gcc)
1131 # This depmode causes a compiler race in universal mode.
1132 test "$am__universal" = false || continue
1133 ;;
1134 nosideeffect)
1135 # after this tag, mechanisms are not by side-effect, so they'll
1136 # only be used when explicitly requested
1137 if test "x$enable_dependency_tracking" = xyes; then
1138 continue
1139 else
1140 break
1141 fi
1142 ;;
1143 msvisualcpp | msvcmsys)
1144 # This compiler won't grok `-c -o', but also, the minuso test has
1145 # not run yet. These depmodes are late enough in the game, and
1146 # so weak that their functioning should not be impacted.
1147 am__obj=conftest.${OBJEXT-o}
1148 am__minus_obj=
1149 ;;
1150 none) break ;;
1151 esac
1152 if depmode=$depmode \
1153 source=sub/conftest.c object=$am__obj \
1154 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
1155 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
1156 >/dev/null 2>conftest.err &&
1157 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
1158 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
1159 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
1160 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
1161 # icc doesn't choke on unknown options, it will just issue warnings
1162 # or remarks (even with -Werror). So we grep stderr for any message
1163 # that says an option was ignored or not supported.
1164 # When given -MP, icc 7.0 and 7.1 complain thusly:
1165 # icc: Command line warning: ignoring option '-M'; no argument required
1166 # The diagnosis changed in icc 8.0:
1167 # icc: Command line remark: option '-MP' not supported
1168 if (grep 'ignoring option' conftest.err ||
1169 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
1170 am_cv_$1_dependencies_compiler_type=$depmode
1171 break
1172 fi
1173 fi
1174 done
1175
1176 cd ..
1177 rm -rf conftest.dir
1178 else
1179 am_cv_$1_dependencies_compiler_type=none
1180 fi
1181 ])
1182 AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
1183 AM_CONDITIONAL([am__fastdep$1], [
1184 test "x$enable_dependency_tracking" != xno \
1185 && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
1186 ])
1187
1188
1189 # AM_SET_DEPDIR
1190 # -------------
1191 # Choose a directory name for dependency files.
1192 # This macro is AC_REQUIREd in _AM_DEPENDENCIES
1193 AC_DEFUN([AM_SET_DEPDIR],
1194 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
1195 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
1196 ])
1197
1198
1199 # AM_DEP_TRACK
1200 # ------------
1201 AC_DEFUN([AM_DEP_TRACK],
1202 [AC_ARG_ENABLE(dependency-tracking,
1203 [ --disable-dependency-tracking speeds up one-time build
1204 --enable-dependency-tracking do not reject slow dependency extractors])
1205 if test "x$enable_dependency_tracking" != xno; then
1206 am_depcomp="$ac_aux_dir/depcomp"
1207 AMDEPBACKSLASH='\'
1208 fi
1209 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
1210 AC_SUBST([AMDEPBACKSLASH])dnl
1211 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
1212 ])
1213
1214 # Generate code to set up dependency tracking. -*- Autoconf -*-
1215
1216 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
1217 # Free Software Foundation, Inc.
1218 #
1219 # This file is free software; the Free Software Foundation
1220 # gives unlimited permission to copy and/or distribute it,
1221 # with or without modifications, as long as this notice is preserved.
1222
1223 #serial 5
1224
1225 # _AM_OUTPUT_DEPENDENCY_COMMANDS
1226 # ------------------------------
1227 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
1228 [{
1229 # Autoconf 2.62 quotes --file arguments for eval, but not when files
1230 # are listed without --file. Let's play safe and only enable the eval
1231 # if we detect the quoting.
1232 case $CONFIG_FILES in
1233 *\'*) eval set x "$CONFIG_FILES" ;;
1234 *) set x $CONFIG_FILES ;;
1235 esac
1236 shift
1237 for mf
1238 do
1239 # Strip MF so we end up with the name of the file.
1240 mf=`echo "$mf" | sed -e 's/:.*$//'`
1241 # Check whether this is an Automake generated Makefile or not.
1242 # We used to match only the files named `Makefile.in', but
1243 # some people rename them; so instead we look at the file content.
1244 # Grep'ing the first line is not enough: some people post-process
1245 # each Makefile.in and add a new line on top of each file to say so.
1246 # Grep'ing the whole file is not good either: AIX grep has a line
1247 # limit of 2048, but all sed's we know have understand at least 4000.
1248 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
1249 dirpart=`AS_DIRNAME("$mf")`
1250 else
1251 continue
1252 fi
1253 # Extract the definition of DEPDIR, am__include, and am__quote
1254 # from the Makefile without running `make'.
1255 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
1256 test -z "$DEPDIR" && continue
1257 am__include=`sed -n 's/^am__include = //p' < "$mf"`
1258 test -z "am__include" && continue
1259 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
1260 # When using ansi2knr, U may be empty or an underscore; expand it
1261 U=`sed -n 's/^U = //p' < "$mf"`
1262 # Find all dependency output files, they are included files with
1263 # $(DEPDIR) in their names. We invoke sed twice because it is the
1264 # simplest approach to changing $(DEPDIR) to its actual value in the
1265 # expansion.
1266 for file in `sed -n "
1267 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
1268 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
1269 # Make sure the directory exists.
1270 test -f "$dirpart/$file" && continue
1271 fdir=`AS_DIRNAME(["$file"])`
1272 AS_MKDIR_P([$dirpart/$fdir])
1273 # echo "creating $dirpart/$file"
1274 echo '# dummy' > "$dirpart/$file"
1275 done
1276 done
1277 }
1278 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
1279
1280
1281 # AM_OUTPUT_DEPENDENCY_COMMANDS
1282 # -----------------------------
1283 # This macro should only be invoked once -- use via AC_REQUIRE.
1284 #
1285 # This code is only required when automatic dependency tracking
1286 # is enabled. FIXME. This creates each `.P' file that we will
1287 # need in order to bootstrap the dependency handling code.
1288 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
1289 [AC_CONFIG_COMMANDS([depfiles],
1290 [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
1291 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
1292 ])
1293
1294 # Do all the work for Automake. -*- Autoconf -*-
1295
1296 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
1297 # 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
1298 #
1299 # This file is free software; the Free Software Foundation
1300 # gives unlimited permission to copy and/or distribute it,
1301 # with or without modifications, as long as this notice is preserved.
1302
1303 # serial 16
1304
1305 # This macro actually does too much. Some checks are only needed if
1306 # your package does certain things. But this isn't really a big deal.
1307
1308 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
1309 # AM_INIT_AUTOMAKE([OPTIONS])
1310 # -----------------------------------------------
1311 # The call with PACKAGE and VERSION arguments is the old style
1312 # call (pre autoconf-2.50), which is being phased out. PACKAGE
1313 # and VERSION should now be passed to AC_INIT and removed from
1314 # the call to AM_INIT_AUTOMAKE.
1315 # We support both call styles for the transition. After
1316 # the next Automake release, Autoconf can make the AC_INIT
1317 # arguments mandatory, and then we can depend on a new Autoconf
1318 # release and drop the old call support.
1319 AC_DEFUN([AM_INIT_AUTOMAKE],
1320 [AC_PREREQ([2.62])dnl
1321 dnl Autoconf wants to disallow AM_ names. We explicitly allow
1322 dnl the ones we care about.
1323 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
1324 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
1325 AC_REQUIRE([AC_PROG_INSTALL])dnl
1326 if test "`cd $srcdir && pwd`" != "`pwd`"; then
1327 # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
1328 # is not polluted with repeated "-I."
1329 AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
1330 # test to see if srcdir already configured
1331 if test -f $srcdir/config.status; then
1332 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
1333 fi
1334 fi
1335
1336 # test whether we have cygpath
1337 if test -z "$CYGPATH_W"; then
1338 if (cygpath --version) >/dev/null 2>/dev/null; then
1339 CYGPATH_W='cygpath -w'
1340 else
1341 CYGPATH_W=echo
1342 fi
1343 fi
1344 AC_SUBST([CYGPATH_W])
1345
1346 # Define the identity of the package.
1347 dnl Distinguish between old-style and new-style calls.
1348 m4_ifval([$2],
1349 [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
1350 AC_SUBST([PACKAGE], [$1])dnl
1351 AC_SUBST([VERSION], [$2])],
1352 [_AM_SET_OPTIONS([$1])dnl
1353 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
1354 m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
1355 [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
1356 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
1357 AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
1358
1359 _AM_IF_OPTION([no-define],,
1360 [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
1361 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
1362
1363 # Some tools Automake needs.
1364 AC_REQUIRE([AM_SANITY_CHECK])dnl
1365 AC_REQUIRE([AC_ARG_PROGRAM])dnl
1366 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
1367 AM_MISSING_PROG(AUTOCONF, autoconf)
1368 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
1369 AM_MISSING_PROG(AUTOHEADER, autoheader)
1370 AM_MISSING_PROG(MAKEINFO, makeinfo)
1371 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
1372 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
1373 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
1374 # We need awk for the "check" target. The system "awk" is bad on
1375 # some platforms.
1376 AC_REQUIRE([AC_PROG_AWK])dnl
1377 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1378 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
1379 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
1380 [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
1381 [_AM_PROG_TAR([v7])])])
1382 _AM_IF_OPTION([no-dependencies],,
1383 [AC_PROVIDE_IFELSE([AC_PROG_CC],
1384 [_AM_DEPENDENCIES(CC)],
1385 [define([AC_PROG_CC],
1386 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
1387 AC_PROVIDE_IFELSE([AC_PROG_CXX],
1388 [_AM_DEPENDENCIES(CXX)],
1389 [define([AC_PROG_CXX],
1390 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
1391 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
1392 [_AM_DEPENDENCIES(OBJC)],
1393 [define([AC_PROG_OBJC],
1394 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
1395 ])
1396 _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
1397 dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
1398 dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
1399 dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
1400 AC_CONFIG_COMMANDS_PRE(dnl
1401 [m4_provide_if([_AM_COMPILER_EXEEXT],
1402 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
1403 ])
1404
1405 dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
1406 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
1407 dnl mangled by Autoconf and run in a shell conditional statement.
1408 m4_define([_AC_COMPILER_EXEEXT],
1409 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
1410
1411
1412 # When config.status generates a header, we must update the stamp-h file.
1413 # This file resides in the same directory as the config header
1414 # that is generated. The stamp files are numbered to have different names.
1415
1416 # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
1417 # loop where config.status creates the headers, so we can generate
1418 # our stamp files there.
1419 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
1420 [# Compute $1's index in $config_headers.
1421 _am_arg=$1
1422 _am_stamp_count=1
1423 for _am_header in $config_headers :; do
1424 case $_am_header in
1425 $_am_arg | $_am_arg:* )
1426 break ;;
1427 * )
1428 _am_stamp_count=`expr $_am_stamp_count + 1` ;;
1429 esac
1430 done
1431 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
1432
1433 # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
1434 #
1435 # This file is free software; the Free Software Foundation
1436 # gives unlimited permission to copy and/or distribute it,
1437 # with or without modifications, as long as this notice is preserved.
1438
1439 # AM_PROG_INSTALL_SH
1440 # ------------------
1441 # Define $install_sh.
1442 AC_DEFUN([AM_PROG_INSTALL_SH],
1443 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
1444 if test x"${install_sh}" != xset; then
1445 case $am_aux_dir in
1446 *\ * | *\ *)
1447 install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
1448 *)
1449 install_sh="\${SHELL} $am_aux_dir/install-sh"
1450 esac
1451 fi
1452 AC_SUBST(install_sh)])
1453
1454 # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
1455 #
1456 # This file is free software; the Free Software Foundation
1457 # gives unlimited permission to copy and/or distribute it,
1458 # with or without modifications, as long as this notice is preserved.
1459
1460 # serial 2
1461
1462 # Check whether the underlying file-system supports filenames
1463 # with a leading dot. For instance MS-DOS doesn't.
1464 AC_DEFUN([AM_SET_LEADING_DOT],
1465 [rm -rf .tst 2>/dev/null
1466 mkdir .tst 2>/dev/null
1467 if test -d .tst; then
1468 am__leading_dot=.
1469 else
1470 am__leading_dot=_
1471 fi
1472 rmdir .tst 2>/dev/null
1473 AC_SUBST([am__leading_dot])])
1474
1475 # Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
1476 # From Jim Meyering
1477
1478 # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
1479 # Free Software Foundation, Inc.
1480 #
1481 # This file is free software; the Free Software Foundation
1482 # gives unlimited permission to copy and/or distribute it,
1483 # with or without modifications, as long as this notice is preserved.
1484
1485 # serial 5
1486
1487 # AM_MAINTAINER_MODE([DEFAULT-MODE])
1488 # ----------------------------------
1489 # Control maintainer-specific portions of Makefiles.
1490 # Default is to disable them, unless `enable' is passed literally.
1491 # For symmetry, `disable' may be passed as well. Anyway, the user
1492 # can override the default with the --enable/--disable switch.
1493 AC_DEFUN([AM_MAINTAINER_MODE],
1494 [m4_case(m4_default([$1], [disable]),
1495 [enable], [m4_define([am_maintainer_other], [disable])],
1496 [disable], [m4_define([am_maintainer_other], [enable])],
1497 [m4_define([am_maintainer_other], [enable])
1498 m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
1499 AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
1500 dnl maintainer-mode's default is 'disable' unless 'enable' is passed
1501 AC_ARG_ENABLE([maintainer-mode],
1502 [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
1503 (and sometimes confusing) to the casual installer],
1504 [USE_MAINTAINER_MODE=$enableval],
1505 [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
1506 AC_MSG_RESULT([$USE_MAINTAINER_MODE])
1507 AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
1508 MAINT=$MAINTAINER_MODE_TRUE
1509 AC_SUBST([MAINT])dnl
1510 ]
1511 )
1512
1513 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
1514
1515 # Check to see how 'make' treats includes. -*- Autoconf -*-
1516
1517 # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
1518 #
1519 # This file is free software; the Free Software Foundation
1520 # gives unlimited permission to copy and/or distribute it,
1521 # with or without modifications, as long as this notice is preserved.
1522
1523 # serial 4
1524
1525 # AM_MAKE_INCLUDE()
1526 # -----------------
1527 # Check to see how make treats includes.
1528 AC_DEFUN([AM_MAKE_INCLUDE],
1529 [am_make=${MAKE-make}
1530 cat > confinc << 'END'
1531 am__doit:
1532 @echo this is the am__doit target
1533 .PHONY: am__doit
1534 END
1535 # If we don't find an include directive, just comment out the code.
1536 AC_MSG_CHECKING([for style of include used by $am_make])
1537 am__include="#"
1538 am__quote=
1539 _am_result=none
1540 # First try GNU make style include.
1541 echo "include confinc" > confmf
1542 # Ignore all kinds of additional output from `make'.
1543 case `$am_make -s -f confmf 2> /dev/null` in #(
1544 *the\ am__doit\ target*)
1545 am__include=include
1546 am__quote=
1547 _am_result=GNU
1548 ;;
1549 esac
1550 # Now try BSD make style include.
1551 if test "$am__include" = "#"; then
1552 echo '.include "confinc"' > confmf
1553 case `$am_make -s -f confmf 2> /dev/null` in #(
1554 *the\ am__doit\ target*)
1555 am__include=.include
1556 am__quote="\""
1557 _am_result=BSD
1558 ;;
1559 esac
1560 fi
1561 AC_SUBST([am__include])
1562 AC_SUBST([am__quote])
1563 AC_MSG_RESULT([$_am_result])
1564 rm -f confinc confmf
1565 ])
1566
1567 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
1568
1569 # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
1570 # Free Software Foundation, Inc.
1571 #
1572 # This file is free software; the Free Software Foundation
1573 # gives unlimited permission to copy and/or distribute it,
1574 # with or without modifications, as long as this notice is preserved.
1575
1576 # serial 6
1577
1578 # AM_MISSING_PROG(NAME, PROGRAM)
1579 # ------------------------------
1580 AC_DEFUN([AM_MISSING_PROG],
1581 [AC_REQUIRE([AM_MISSING_HAS_RUN])
1582 $1=${$1-"${am_missing_run}$2"}
1583 AC_SUBST($1)])
1584
1585
1586 # AM_MISSING_HAS_RUN
1587 # ------------------
1588 # Define MISSING if not defined so far and test if it supports --run.
1589 # If it does, set am_missing_run to use it, otherwise, to nothing.
1590 AC_DEFUN([AM_MISSING_HAS_RUN],
1591 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
1592 AC_REQUIRE_AUX_FILE([missing])dnl
1593 if test x"${MISSING+set}" != xset; then
1594 case $am_aux_dir in
1595 *\ * | *\ *)
1596 MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
1597 *)
1598 MISSING="\${SHELL} $am_aux_dir/missing" ;;
1599 esac
1600 fi
1601 # Use eval to expand $SHELL
1602 if eval "$MISSING --run true"; then
1603 am_missing_run="$MISSING --run "
1604 else
1605 am_missing_run=
1606 AC_MSG_WARN([`missing' script is too old or missing])
1607 fi
1608 ])
1609
1610 # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
1611 #
1612 # This file is free software; the Free Software Foundation
1613 # gives unlimited permission to copy and/or distribute it,
1614 # with or without modifications, as long as this notice is preserved.
1615
1616 # AM_PROG_MKDIR_P
1617 # ---------------
1618 # Check for `mkdir -p'.
1619 AC_DEFUN([AM_PROG_MKDIR_P],
1620 [AC_PREREQ([2.60])dnl
1621 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
1622 dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
1623 dnl while keeping a definition of mkdir_p for backward compatibility.
1624 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
1625 dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
1626 dnl Makefile.ins that do not define MKDIR_P, so we do our own
1627 dnl adjustment using top_builddir (which is defined more often than
1628 dnl MKDIR_P).
1629 AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
1630 case $mkdir_p in
1631 [[\\/$]]* | ?:[[\\/]]*) ;;
1632 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
1633 esac
1634 ])
1635
1636 # Helper functions for option handling. -*- Autoconf -*-
1637
1638 # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
1639 #
1640 # This file is free software; the Free Software Foundation
1641 # gives unlimited permission to copy and/or distribute it,
1642 # with or without modifications, as long as this notice is preserved.
1643
1644 # serial 4
1645
1646 # _AM_MANGLE_OPTION(NAME)
1647 # -----------------------
1648 AC_DEFUN([_AM_MANGLE_OPTION],
1649 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
1650
1651 # _AM_SET_OPTION(NAME)
1652 # ------------------------------
1653 # Set option NAME. Presently that only means defining a flag for this option.
1654 AC_DEFUN([_AM_SET_OPTION],
1655 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
1656
1657 # _AM_SET_OPTIONS(OPTIONS)
1658 # ----------------------------------
1659 # OPTIONS is a space-separated list of Automake options.
1660 AC_DEFUN([_AM_SET_OPTIONS],
1661 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
1662
1663 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
1664 # -------------------------------------------
1665 # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
1666 AC_DEFUN([_AM_IF_OPTION],
1667 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
1668
1669 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
1670 # Free Software Foundation, Inc.
1671 #
1672 # This file is free software; the Free Software Foundation
1673 # gives unlimited permission to copy and/or distribute it,
1674 # with or without modifications, as long as this notice is preserved.
1675
1676 # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
1677 # ---------------------------------------------------------------------------
1678 # Adds support for distributing Python modules and packages. To
1679 # install modules, copy them to $(pythondir), using the python_PYTHON
1680 # automake variable. To install a package with the same name as the
1681 # automake package, install to $(pkgpythondir), or use the
1682 # pkgpython_PYTHON automake variable.
1683 #
1684 # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
1685 # locations to install python extension modules (shared libraries).
1686 # Another macro is required to find the appropriate flags to compile
1687 # extension modules.
1688 #
1689 # If your package is configured with a different prefix to python,
1690 # users will have to add the install directory to the PYTHONPATH
1691 # environment variable, or create a .pth file (see the python
1692 # documentation for details).
1693 #
1694 # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
1695 # cause an error if the version of python installed on the system
1696 # doesn't meet the requirement. MINIMUM-VERSION should consist of
1697 # numbers and dots only.
1698 AC_DEFUN([AM_PATH_PYTHON],
1699 [
1700 dnl Find a Python interpreter. Python versions prior to 2.0 are not
1701 dnl supported. (2.0 was released on October 16, 2000).
1702 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
1703 [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
1704 python2.1 python2.0])
1705
1706 m4_if([$1],[],[
1707 dnl No version check is needed.
1708 # Find any Python interpreter.
1709 if test -z "$PYTHON"; then
1710 AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
1711 fi
1712 am_display_PYTHON=python
1713 ], [
1714 dnl A version check is needed.
1715 if test -n "$PYTHON"; then
1716 # If the user set $PYTHON, use it and don't search something else.
1717 AC_MSG_CHECKING([whether $PYTHON version >= $1])
1718 AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
1719 [AC_MSG_RESULT(yes)],
1720 [AC_MSG_ERROR(too old)])
1721 am_display_PYTHON=$PYTHON
1722 else
1723 # Otherwise, try each interpreter until we find one that satisfies
1724 # VERSION.
1725 AC_CACHE_CHECK([for a Python interpreter with version >= $1],
1726 [am_cv_pathless_PYTHON],[
1727 for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
1728 test "$am_cv_pathless_PYTHON" = none && break
1729 AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
1730 done])
1731 # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
1732 if test "$am_cv_pathless_PYTHON" = none; then
1733 PYTHON=:
1734 else
1735 AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
1736 fi
1737 am_display_PYTHON=$am_cv_pathless_PYTHON
1738 fi
1739 ])
1740
1741 if test "$PYTHON" = :; then
1742 dnl Run any user-specified action, or abort.
1743 m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
1744 else
1745
1746 dnl Query Python for its version number. Getting [:3] seems to be
1747 dnl the best way to do this; it's what "site.py" does in the standard
1748 dnl library.
1749
1750 AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
1751 [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
1752 AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
1753
1754 dnl Use the values of $prefix and $exec_prefix for the corresponding
1755 dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
1756 dnl distinct variables so they can be overridden if need be. However,
1757 dnl general consensus is that you shouldn't need this ability.
1758
1759 AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
1760 AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
1761
1762 dnl At times (like when building shared libraries) you may want
1763 dnl to know which OS platform Python thinks this is.
1764
1765 AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
1766 [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
1767 AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
1768
1769
1770 dnl Set up 4 directories:
1771
1772 dnl pythondir -- where to install python scripts. This is the
1773 dnl site-packages directory, not the python standard library
1774 dnl directory like in previous automake betas. This behavior
1775 dnl is more consistent with lispdir.m4 for example.
1776 dnl Query distutils for this directory. distutils does not exist in
1777 dnl Python 1.5, so we fall back to the hardcoded directory if it
1778 dnl doesn't work.
1779 AC_CACHE_CHECK([for $am_display_PYTHON script directory],
1780 [am_cv_python_pythondir],
1781 [if test "x$prefix" = xNONE
1782 then
1783 am_py_prefix=$ac_default_prefix
1784 else
1785 am_py_prefix=$prefix
1786 fi
1787 am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
1788 echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1789 case $am_cv_python_pythondir in
1790 $am_py_prefix*)
1791 am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
1792 am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
1793 ;;
1794 *)
1795 case $am_py_prefix in
1796 /usr|/System*) ;;
1797 *)
1798 am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
1799 ;;
1800 esac
1801 ;;
1802 esac
1803 ])
1804 AC_SUBST([pythondir], [$am_cv_python_pythondir])
1805
1806 dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
1807 dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
1808 dnl more consistent with the rest of automake.
1809
1810 AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
1811
1812 dnl pyexecdir -- directory for installing python extension modules
1813 dnl (shared libraries)
1814 dnl Query distutils for this directory. distutils does not exist in
1815 dnl Python 1.5, so we fall back to the hardcoded directory if it
1816 dnl doesn't work.
1817 AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
1818 [am_cv_python_pyexecdir],
1819 [if test "x$exec_prefix" = xNONE
1820 then
1821 am_py_exec_prefix=$am_py_prefix
1822 else
1823 am_py_exec_prefix=$exec_prefix
1824 fi
1825 am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
1826 echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1827 case $am_cv_python_pyexecdir in
1828 $am_py_exec_prefix*)
1829 am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
1830 am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
1831 ;;
1832 *)
1833 case $am_py_exec_prefix in
1834 /usr|/System*) ;;
1835 *)
1836 am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
1837 ;;
1838 esac
1839 ;;
1840 esac
1841 ])
1842 AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
1843
1844 dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
1845
1846 AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
1847
1848 dnl Run any user-specified action.
1849 $2
1850 fi
1851
1852 ])
1853
1854
1855 # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
1856 # ---------------------------------------------------------------------------
1857 # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
1858 # Run ACTION-IF-FALSE otherwise.
1859 # This test uses sys.hexversion instead of the string equivalent (first
1860 # word of sys.version), in order to cope with versions such as 2.2c1.
1861 # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
1862 AC_DEFUN([AM_PYTHON_CHECK_VERSION],
1863 [prog="import sys
1864 # split strings by '.' and convert to numeric. Append some zeros
1865 # because we need at least 4 digits for the hex conversion.
1866 # map returns an iterator in Python 3.0 and a list in 2.x
1867 minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
1868 minverhex = 0
1869 # xrange is not present in Python 3.0 and range returns an iterator
1870 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
1871 sys.exit(sys.hexversion < minverhex)"
1872 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
1873
1874 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1875 #
1876 # This file is free software; the Free Software Foundation
1877 # gives unlimited permission to copy and/or distribute it,
1878 # with or without modifications, as long as this notice is preserved.
1879
1880 # AM_RUN_LOG(COMMAND)
1881 # -------------------
1882 # Run COMMAND, save the exit status in ac_status, and log it.
1883 # (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
1884 AC_DEFUN([AM_RUN_LOG],
1885 [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
1886 ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
1887 ac_status=$?
1888 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1889 (exit $ac_status); }])
1890
1891 # Check to make sure that the build environment is sane. -*- Autoconf -*-
1892
1893 # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
1894 # Free Software Foundation, Inc.
1895 #
1896 # This file is free software; the Free Software Foundation
1897 # gives unlimited permission to copy and/or distribute it,
1898 # with or without modifications, as long as this notice is preserved.
1899
1900 # serial 5
1901
1902 # AM_SANITY_CHECK
1903 # ---------------
1904 AC_DEFUN([AM_SANITY_CHECK],
1905 [AC_MSG_CHECKING([whether build environment is sane])
1906 # Just in case
1907 sleep 1
1908 echo timestamp > conftest.file
1909 # Reject unsafe characters in $srcdir or the absolute working directory
1910 # name. Accept space and tab only in the latter.
1911 am_lf='
1912 '
1913 case `pwd` in
1914 *[[\\\"\#\$\&\'\`$am_lf]]*)
1915 AC_MSG_ERROR([unsafe absolute working directory name]);;
1916 esac
1917 case $srcdir in
1918 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
1919 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
1920 esac
1921
1922 # Do `set' in a subshell so we don't clobber the current shell's
1923 # arguments. Must try -L first in case configure is actually a
1924 # symlink; some systems play weird games with the mod time of symlinks
1925 # (eg FreeBSD returns the mod time of the symlink's containing
1926 # directory).
1927 if (
1928 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
1929 if test "$[*]" = "X"; then
1930 # -L didn't work.
1931 set X `ls -t "$srcdir/configure" conftest.file`
1932 fi
1933 rm -f conftest.file
1934 if test "$[*]" != "X $srcdir/configure conftest.file" \
1935 && test "$[*]" != "X conftest.file $srcdir/configure"; then
1936
1937 # If neither matched, then we have a broken ls. This can happen
1938 # if, for instance, CONFIG_SHELL is bash and it inherits a
1939 # broken ls alias from the environment. This has actually
1940 # happened. Such a system could not be considered "sane".
1941 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1942 alias in your environment])
1943 fi
1944
1945 test "$[2]" = conftest.file
1946 )
1947 then
1948 # Ok.
1949 :
1950 else
1951 AC_MSG_ERROR([newly created file is older than distributed files!
1952 Check your system clock])
1953 fi
1954 AC_MSG_RESULT(yes)])
1955
1956 # Copyright (C) 2009 Free Software Foundation, Inc.
1957 #
1958 # This file is free software; the Free Software Foundation
1959 # gives unlimited permission to copy and/or distribute it,
1960 # with or without modifications, as long as this notice is preserved.
1961
1962 # serial 1
1963
1964 # AM_SILENT_RULES([DEFAULT])
1965 # --------------------------
1966 # Enable less verbose build rules; with the default set to DEFAULT
1967 # (`yes' being less verbose, `no' or empty being verbose).
1968 AC_DEFUN([AM_SILENT_RULES],
1969 [AC_ARG_ENABLE([silent-rules],
1970 [ --enable-silent-rules less verbose build output (undo: `make V=1')
1971 --disable-silent-rules verbose build output (undo: `make V=0')])
1972 case $enable_silent_rules in
1973 yes) AM_DEFAULT_VERBOSITY=0;;
1974 no) AM_DEFAULT_VERBOSITY=1;;
1975 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
1976 esac
1977 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
1978 AM_BACKSLASH='\'
1979 AC_SUBST([AM_BACKSLASH])dnl
1980 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
1981 ])
1982
1983 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1984 #
1985 # This file is free software; the Free Software Foundation
1986 # gives unlimited permission to copy and/or distribute it,
1987 # with or without modifications, as long as this notice is preserved.
1988
1989 # AM_PROG_INSTALL_STRIP
1990 # ---------------------
1991 # One issue with vendor `install' (even GNU) is that you can't
1992 # specify the program used to strip binaries. This is especially
1993 # annoying in cross-compiling environments, where the build's strip
1994 # is unlikely to handle the host's binaries.
1995 # Fortunately install-sh will honor a STRIPPROG variable, so we
1996 # always use install-sh in `make install-strip', and initialize
1997 # STRIPPROG with the value of the STRIP variable (set by the user).
1998 AC_DEFUN([AM_PROG_INSTALL_STRIP],
1999 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
2000 # Installed binaries are usually stripped using `strip' when the user
2001 # run `make install-strip'. However `strip' might not be the right
2002 # tool to use in cross-compilation environments, therefore Automake
2003 # will honor the `STRIP' environment variable to overrule this program.
2004 dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
2005 if test "$cross_compiling" != no; then
2006 AC_CHECK_TOOL([STRIP], [strip], :)
2007 fi
2008 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
2009 AC_SUBST([INSTALL_STRIP_PROGRAM])])
2010
2011 # Copyright (C) 2006, 2008 Free Software Foundation, Inc.
2012 #
2013 # This file is free software; the Free Software Foundation
2014 # gives unlimited permission to copy and/or distribute it,
2015 # with or without modifications, as long as this notice is preserved.
2016
2017 # serial 2
2018
2019 # _AM_SUBST_NOTMAKE(VARIABLE)
2020 # ---------------------------
2021 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
2022 # This macro is traced by Automake.
2023 AC_DEFUN([_AM_SUBST_NOTMAKE])
2024
2025 # AM_SUBST_NOTMAKE(VARIABLE)
2026 # ---------------------------
2027 # Public sister of _AM_SUBST_NOTMAKE.
2028 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
2029
2030 # Check how to create a tarball. -*- Autoconf -*-
2031
2032 # Copyright (C) 2004, 2005 Free Software Foundation, Inc.
2033 #
2034 # This file is free software; the Free Software Foundation
2035 # gives unlimited permission to copy and/or distribute it,
2036 # with or without modifications, as long as this notice is preserved.
2037
2038 # serial 2
2039
2040 # _AM_PROG_TAR(FORMAT)
2041 # --------------------
2042 # Check how to create a tarball in format FORMAT.
2043 # FORMAT should be one of `v7', `ustar', or `pax'.
2044 #
2045 # Substitute a variable $(am__tar) that is a command
2046 # writing to stdout a FORMAT-tarball containing the directory
2047 # $tardir.
2048 # tardir=directory && $(am__tar) > result.tar
2049 #
2050 # Substitute a variable $(am__untar) that extract such
2051 # a tarball read from stdin.
2052 # $(am__untar) < result.tar
2053 AC_DEFUN([_AM_PROG_TAR],
2054 [# Always define AMTAR for backward compatibility.
2055 AM_MISSING_PROG([AMTAR], [tar])
2056 m4_if([$1], [v7],
2057 [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
2058 [m4_case([$1], [ustar],, [pax],,
2059 [m4_fatal([Unknown tar format])])
2060 AC_MSG_CHECKING([how to create a $1 tar archive])
2061 # Loop over all known methods to create a tar archive until one works.
2062 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
2063 _am_tools=${am_cv_prog_tar_$1-$_am_tools}
2064 # Do not fold the above two line into one, because Tru64 sh and
2065 # Solaris sh will not grok spaces in the rhs of `-'.
2066 for _am_tool in $_am_tools
2067 do
2068 case $_am_tool in
2069 gnutar)
2070 for _am_tar in tar gnutar gtar;
2071 do
2072 AM_RUN_LOG([$_am_tar --version]) && break
2073 done
2074 am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
2075 am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
2076 am__untar="$_am_tar -xf -"
2077 ;;
2078 plaintar)
2079 # Must skip GNU tar: if it does not support --format= it doesn't create
2080 # ustar tarball either.
2081 (tar --version) >/dev/null 2>&1 && continue
2082 am__tar='tar chf - "$$tardir"'
2083 am__tar_='tar chf - "$tardir"'
2084 am__untar='tar xf -'
2085 ;;
2086 pax)
2087 am__tar='pax -L -x $1 -w "$$tardir"'
2088 am__tar_='pax -L -x $1 -w "$tardir"'
2089 am__untar='pax -r'
2090 ;;
2091 cpio)
2092 am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
2093 am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
2094 am__untar='cpio -i -H $1 -d'
2095 ;;
2096 none)
2097 am__tar=false
2098 am__tar_=false
2099 am__untar=false
2100 ;;
2101 esac
2102
2103 # If the value was cached, stop now. We just wanted to have am__tar
2104 # and am__untar set.
2105 test -n "${am_cv_prog_tar_$1}" && break
2106
2107 # tar/untar a dummy directory, and stop if the command works
2108 rm -rf conftest.dir
2109 mkdir conftest.dir
2110 echo GrepMe > conftest.dir/file
2111 AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
2112 rm -rf conftest.dir
2113 if test -s conftest.tar; then
2114 AM_RUN_LOG([$am__untar <conftest.tar])
2115 grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
2116 fi
2117 done
2118 rm -rf conftest.dir
2119
2120 AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
2121 AC_MSG_RESULT([$am_cv_prog_tar_$1])])
2122 AC_SUBST([am__tar])
2123 AC_SUBST([am__untar])
2124 ]) # _AM_PROG_TAR
21252130
21262131 m4_include([m4/as-compiler-flag.m4])
21272132 m4_include([m4/empathy-args.m4])
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.65 for Empathy 2.31.6.
2 # Generated by GNU Autoconf 2.65 for Empathy 2.31.90.
33 #
44 # Report bugs to <http://bugzilla.gnome.org/browse.cgi?product=empathy>.
55 #
706706 # Identity of this package.
707707 PACKAGE_NAME='Empathy'
708708 PACKAGE_TARNAME='empathy'
709 PACKAGE_VERSION='2.31.6'
710 PACKAGE_STRING='Empathy 2.31.6'
709 PACKAGE_VERSION='2.31.90'
710 PACKAGE_STRING='Empathy 2.31.90'
711711 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/browse.cgi?product=empathy'
712712 PACKAGE_URL=''
713713
16101610 # Omit some internal or obsolete options to make the list less imposing.
16111611 # This message is too long to be a string in the A/UX 3.1 sh.
16121612 cat <<_ACEOF
1613 \`configure' configures Empathy 2.31.6 to adapt to many kinds of systems.
1613 \`configure' configures Empathy 2.31.90 to adapt to many kinds of systems.
16141614
16151615 Usage: $0 [OPTION]... [VAR=VALUE]...
16161616
16841684
16851685 if test -n "$ac_init_help"; then
16861686 case $ac_init_help in
1687 short | recursive ) echo "Configuration of Empathy 2.31.6:";;
1687 short | recursive ) echo "Configuration of Empathy 2.31.90:";;
16881688 esac
16891689 cat <<\_ACEOF
16901690
18771877 test -n "$ac_init_help" && exit $ac_status
18781878 if $ac_init_version; then
18791879 cat <<\_ACEOF
1880 Empathy configure 2.31.6
1880 Empathy configure 2.31.90
18811881 generated by GNU Autoconf 2.65
18821882
18831883 Copyright (C) 2009 Free Software Foundation, Inc.
22532253 This file contains any messages produced by compilers while
22542254 running configure, to aid debugging if configure makes a mistake.
22552255
2256 It was created by Empathy $as_me 2.31.6, which was
2256 It was created by Empathy $as_me 2.31.90, which was
22572257 generated by GNU Autoconf 2.65. Invocation command line was
22582258
22592259 $ $0 $@
26082608 # Minimal version required
26092609
26102610 # Hardp deps
2611 FOLKS_REQUIRED=0.1.11
2611 FOLKS_REQUIRED=0.1.13
26122612 GCONF_REQUIRED=1.2.0
26132613 GLIB_REQUIRED=2.25.9
26142614 GTK_REQUIRED=2.21.2
26172617 LIBNOTIFY_REQUIRED=0.4.4
26182618 LIBNOTIFY_REQUIRED_GTK3=0.5.1
26192619 TELEPATHY_FARSIGHT_REQUIRED=0.0.14
2620 TELEPATHY_GLIB_REQUIRED=0.11.7
2621 TELEPATHY_LOGGER=0.1.2
2620 TELEPATHY_GLIB_REQUIRED=0.11.13
2621 TELEPATHY_LOGGER=0.1.5
26222622 UNIQUE_REQUIRED=1.1.2
26232623
26242624 # Optionnal deps
31523152
31533153 # Define the identity of the package.
31543154 PACKAGE='empathy'
3155 VERSION='2.31.6'
3155 VERSION='2.31.90'
31563156
31573157
31583158 # Some tools Automake needs.
1793317933 # report actual input values of CONFIG_FILES etc. instead of their
1793417934 # values after options handling.
1793517935 ac_log="
17936 This file was extended by Empathy $as_me 2.31.6, which was
17936 This file was extended by Empathy $as_me 2.31.90, which was
1793717937 generated by GNU Autoconf 2.65. Invocation command line was
1793817938
1793917939 CONFIG_FILES = $CONFIG_FILES
1799917999 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1800018000 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1800118001 ac_cs_version="\\
18002 Empathy config.status 2.31.6
18002 Empathy config.status 2.31.90
1800318003 configured by $0, generated by GNU Autoconf 2.65,
1800418004 with options \\"\$ac_cs_config\\"
1800518005
22
33 m4_define([empathy_major_version], [2])
44 m4_define([empathy_minor_version], [31])
5 m4_define([empathy_micro_version], [6])
5 m4_define([empathy_micro_version], [90])
66 m4_define([empathy_nano_version], [0])
77
88 dnl Display the nano_version only if it's not '0'
3030 # Minimal version required
3131
3232 # Hardp deps
33 FOLKS_REQUIRED=0.1.11
33 FOLKS_REQUIRED=0.1.13
3434 GCONF_REQUIRED=1.2.0
3535 GLIB_REQUIRED=2.25.9
3636 GTK_REQUIRED=2.21.2
3939 LIBNOTIFY_REQUIRED=0.4.4
4040 LIBNOTIFY_REQUIRED_GTK3=0.5.1
4141 TELEPATHY_FARSIGHT_REQUIRED=0.0.14
42 TELEPATHY_GLIB_REQUIRED=0.11.7
43 TELEPATHY_LOGGER=0.1.2
42 TELEPATHY_GLIB_REQUIRED=0.11.13
43 TELEPATHY_LOGGER=0.1.5
4444 UNIQUE_REQUIRED=1.1.2
4545
4646 # Optionnal deps
9999 X-GNOME-Bugzilla-Bugzilla=GNOME
100100 X-GNOME-Bugzilla-Product=empathy
101101 X-GNOME-Bugzilla-Component=General
102 X-GNOME-Bugzilla-Version=2.31.6
102 X-GNOME-Bugzilla-Version=2.31.90
1111 X-GNOME-Bugzilla-Bugzilla=GNOME
1212 X-GNOME-Bugzilla-Product=empathy
1313 X-GNOME-Bugzilla-Component=General
14 X-GNOME-Bugzilla-Version=2.31.6
14 X-GNOME-Bugzilla-Version=2.31.90
132132 X-GNOME-FullName[he]=‏Empathy מסרים מידיים
133133 X-GNOME-FullName[nb]=Empathy internettmeldinger
134134 X-GNOME-FullName[nn]=Empathy Internettprat
135 X-GNOME-FullName[pa]=ਇੰਪੈਥੀ ਇੰਟਰਨੈੱਟ ਮੈੱਸਜ਼ਿੰਗ
135136 X-GNOME-FullName[sl]=Hipno sporočanje Empathy
137 X-GNOME-FullName[sv]=Meddelandeklienten Empathy
136138 X-GNOME-FullName[th]=Empathy: โปรแกรมข้อความทันใจ
137139 X-GNOME-FullName[zh_CN]=Empathy 互联网通讯
138140 X-GNOME-FullName[zh_HK]=Empathy 互聯網通訊程式
142144 Comment[es]=Chatee en Google Talk, Facebook, MSN y muchos otros servicios de chat
143145 Comment[gl]=Converse usando Google Talk, Facebook, MSN e moitos máis servizos de conversa
144146 Comment[he]=ניתן לשוחח דרך Google Talk,‏ Facebook,‏ MSN ושירותי שיחה נוספים
147 Comment[nb]=Prat på Google Talk, Facebook, MSN og mange andre pratetjenester
148 Comment[pa]=ਗੂਗਲ ਟਾਕ, ਫੇਸਬੁੱਕ, MSN ਤੇ ਹੋਰ ਕਈ ਚੈੱਟ ਸਰਵਿਸਾਂ ਉੱਤੇ ਗੱਲਾਂ ਕਰੋ
149 Comment[sl]=Klepet na Google Talk, Facebook, MSN in drugih klepetalnih storitvah.
150 Comment[sv]=Chatta på Google Talk, Facebook, MSN och många andra chattjänster
145151 Comment[zh_CN]=使用 Google Talk、Facebook、MSN 以及许多其它聊天服务
146152 Comment[zh_HK]=使用 Google Talk、Facebook、MSN,與其他聊天服務和他人對話
147153 Comment[zh_TW]=使用 Google Talk、Facebook、MSN,與其他聊天服務和他人對話
154160 X-GNOME-Bugzilla-Bugzilla=GNOME
155161 X-GNOME-Bugzilla-Product=empathy
156162 X-GNOME-Bugzilla-Component=General
157 X-GNOME-Bugzilla-Version=2.31.6
163 X-GNOME-Bugzilla-Version=2.31.90
1212 X-GNOME-Bugzilla-Bugzilla=GNOME
1313 X-GNOME-Bugzilla-Product=empathy
1414 X-GNOME-Bugzilla-Component=General
15 X-GNOME-Bugzilla-Version=2.31.6
15 X-GNOME-Bugzilla-Version=2.31.90
3636 empathy-contact-manager.h \
3737 empathy-contact.h \
3838 empathy-debug.h \
39 empathy-dispatch-operation.h \
4039 empathy-dispatcher.h \
4140 empathy-ft-factory.h \
4241 empathy-ft-handler.h \
4342 empathy-gsettings.h \
44 empathy-handler.h \
4543 empathy-idle.h \
4644 empathy-individual-manager.h \
4745 empathy-irc-network-manager.h \
7472 empathy-contact-manager.c \
7573 empathy-contact.c \
7674 empathy-debug.c \
77 empathy-dispatch-operation.c \
7875 empathy-dispatcher.c \
7976 empathy-ft-factory.c \
8077 empathy-ft-handler.c \
81 empathy-handler.c \
8278 empathy-idle.c \
8379 empathy-individual-manager.c \
8480 empathy-irc-network-manager.c \
6666 empathy-chatroom.lo empathy-connection-managers.lo \
6767 empathy-connectivity.lo empathy-contact-groups.lo \
6868 empathy-contact-list.lo empathy-contact-manager.lo \
69 empathy-contact.lo empathy-debug.lo \
70 empathy-dispatch-operation.lo empathy-dispatcher.lo \
71 empathy-ft-factory.lo empathy-ft-handler.lo empathy-handler.lo \
72 empathy-idle.lo empathy-individual-manager.lo \
73 empathy-irc-network-manager.lo empathy-irc-network.lo \
74 empathy-irc-server.lo empathy-message.lo \
75 empathy-status-presets.lo empathy-time.lo empathy-tp-call.lo \
76 empathy-tp-chat.lo empathy-tp-contact-factory.lo \
77 empathy-tp-contact-list.lo empathy-tp-file.lo \
78 empathy-tp-roomlist.lo empathy-utils.lo
69 empathy-contact.lo empathy-debug.lo empathy-dispatcher.lo \
70 empathy-ft-factory.lo empathy-ft-handler.lo empathy-idle.lo \
71 empathy-individual-manager.lo empathy-irc-network-manager.lo \
72 empathy-irc-network.lo empathy-irc-server.lo \
73 empathy-message.lo empathy-status-presets.lo empathy-time.lo \
74 empathy-tp-call.lo empathy-tp-chat.lo \
75 empathy-tp-contact-factory.lo empathy-tp-contact-list.lo \
76 empathy-tp-file.lo empathy-tp-roomlist.lo empathy-utils.lo
7977 am__objects_2 = empathy-marshal.lo empathy-enum-types.lo
8078 nodist_libempathy_la_OBJECTS = $(am__objects_2)
8179 libempathy_la_OBJECTS = $(am_libempathy_la_OBJECTS) \
374372 empathy-contact-manager.h \
375373 empathy-contact.h \
376374 empathy-debug.h \
377 empathy-dispatch-operation.h \
378375 empathy-dispatcher.h \
379376 empathy-ft-factory.h \
380377 empathy-ft-handler.h \
381378 empathy-gsettings.h \
382 empathy-handler.h \
383379 empathy-idle.h \
384380 empathy-individual-manager.h \
385381 empathy-irc-network-manager.h \
412408 empathy-contact-manager.c \
413409 empathy-contact.c \
414410 empathy-debug.c \
415 empathy-dispatch-operation.c \
416411 empathy-dispatcher.c \
417412 empathy-ft-factory.c \
418413 empathy-ft-handler.c \
419 empathy-handler.c \
420414 empathy-idle.c \
421415 empathy-individual-manager.c \
422416 empathy-irc-network-manager.c \
534528 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-contact-manager.Plo@am__quote@
535529 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-contact.Plo@am__quote@
536530 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-debug.Plo@am__quote@
537 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-dispatch-operation.Plo@am__quote@
538531 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-dispatcher.Plo@am__quote@
539532 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-enum-types.Plo@am__quote@
540533 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-ft-factory.Plo@am__quote@
541534 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-ft-handler.Plo@am__quote@
542 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-handler.Plo@am__quote@
543535 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-idle.Plo@am__quote@
544536 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-manager.Plo@am__quote@
545537 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-irc-network-manager.Plo@am__quote@
2121 #include <stdio.h>
2222 #include <stdlib.h>
2323
24 #include <telepathy-glib/account-channel-request.h>
2425 #include <telepathy-glib/simple-handler.h>
2526 #include <telepathy-glib/interfaces.h>
2627 #include <telepathy-glib/util.h>
2930 #include "empathy-marshal.h"
3031 #include "empathy-call-factory.h"
3132 #include "empathy-utils.h"
33
34 #define DEBUG_FLAG EMPATHY_DEBUG_VOIP
35 #include <libempathy/empathy-debug.h>
3236
3337 G_DEFINE_TYPE(EmpathyCallFactory, empathy_call_factory, G_TYPE_OBJECT)
3438
142146
143147 priv->dispose_has_run = TRUE;
144148
145 /* release any references held by the object here */
149 tp_clear_object (&priv->handler);
146150
147151 if (G_OBJECT_CLASS (empathy_call_factory_parent_class)->dispose)
148152 G_OBJECT_CLASS (empathy_call_factory_parent_class)->dispose (object);
185189 g_return_val_if_fail (call_factory != NULL, NULL);
186190
187191 return EMPATHY_CALL_FACTORY (call_factory);
192 }
193
194 GHashTable *
195 empathy_call_factory_create_request (EmpathyContact *contact,
196 gboolean initial_audio,
197 gboolean initial_video)
198 {
199 return tp_asv_new (
200 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
201 TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA,
202 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
203 TP_PROP_CHANNEL_TARGET_HANDLE, G_TYPE_UINT,
204 empathy_contact_get_handle (contact),
205 TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_AUDIO, G_TYPE_BOOLEAN,
206 initial_audio,
207 TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, G_TYPE_BOOLEAN,
208 initial_video,
209 NULL);
210 }
211
212 static void
213 create_media_channel_cb (GObject *source,
214 GAsyncResult *result,
215 gpointer user_data)
216 {
217 GError *error = NULL;
218
219 if (!tp_account_channel_request_create_channel_finish (
220 TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error))
221 {
222 DEBUG ("Failed to create media channel: %s", error->message);
223 g_error_free (error);
224 }
188225 }
189226
190227 /**
201238 gboolean initial_audio,
202239 gboolean initial_video,
203240 gint64 timestamp,
204 EmpathyDispatcherRequestCb callback,
205241 gpointer user_data)
206242 {
207 EmpathyDispatcher *dispatcher;
208243 GHashTable *request;
209
210 request = tp_asv_new (
211 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
212 TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA,
213 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
214 TP_PROP_CHANNEL_TARGET_HANDLE, G_TYPE_UINT,
215 empathy_contact_get_handle (contact),
216 TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_AUDIO, G_TYPE_BOOLEAN,
217 initial_audio,
218 TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, G_TYPE_BOOLEAN,
219 initial_video,
220 NULL);
221
222 dispatcher = empathy_dispatcher_dup_singleton ();
223
224 empathy_dispatcher_create_channel (dispatcher,
225 empathy_contact_get_connection (contact), request, timestamp, callback,
226 user_data);
227
228 g_object_unref (dispatcher);
244 TpAccount *account;
245 TpAccountChannelRequest *req;
246
247 request = empathy_call_factory_create_request (contact, initial_audio,
248 initial_video);
249
250 account = empathy_contact_get_account (contact);
251
252 req = tp_account_channel_request_new (account, request, timestamp);
253
254 tp_account_channel_request_create_channel_async (req, NULL, NULL,
255 create_media_channel_cb, NULL);
256
257 g_hash_table_unref (request);
258 g_object_unref (req);
229259 }
230260
231261 static void
283313 TP_IFACE_QUARK_CHANNEL_TYPE_STREAMED_MEDIA)
284314 continue;
285315
286 call = empathy_tp_call_new (channel);
316 call = empathy_tp_call_new (account, channel);
287317
288318 if (empathy_tp_call_get_status (call) <= EMPATHY_TP_CALL_STATUS_READYING)
289319 {
2222
2323 #include <glib-object.h>
2424
25 #include <libempathy/empathy-dispatch-operation.h>
2625 #include <libempathy/empathy-call-handler.h>
2726 #include <libempathy/empathy-dispatcher.h>
2827
6867 gboolean initial_audio,
6968 gboolean initial_video,
7069 gint64 timestamp,
71 EmpathyDispatcherRequestCb callback,
7270 gpointer user_data);
7371
7472 gboolean empathy_call_factory_register (EmpathyCallFactory *self,
7573 GError **error);
7674
75 GHashTable * empathy_call_factory_create_request (EmpathyContact *contact,
76 gboolean initial_audio,
77 gboolean initial_video);
78
7779 G_END_DECLS
7880
7981 #endif /* #ifndef __EMPATHY_CALL_FACTORY_H__*/
2121 #include <stdio.h>
2222 #include <stdlib.h>
2323
24 #include <telepathy-glib/account-channel-request.h>
2425 #include <telepathy-glib/util.h>
2526 #include <telepathy-glib/interfaces.h>
2627
2930
3031 #include "empathy-call-handler.h"
3132 #include "empathy-call-factory.h"
32 #include "empathy-dispatcher.h"
3333 #include "empathy-marshal.h"
3434 #include "empathy-utils.h"
35
36 #define DEBUG_FLAG EMPATHY_DEBUG_VOIP
37 #include <libempathy/empathy-debug.h>
3538
3639 G_DEFINE_TYPE(EmpathyCallHandler, empathy_call_handler, G_TYPE_OBJECT)
3740
4346 REQUEST_RESOURCE,
4447 CLOSED,
4548 STREAM_CLOSED,
49 CANDIDATES_CHANGED,
4650 LAST_SIGNAL
4751 };
4852
5862 PROP_SEND_VIDEO_CODEC,
5963 PROP_RECV_AUDIO_CODECS,
6064 PROP_RECV_VIDEO_CODECS,
65 PROP_AUDIO_REMOTE_CANDIDATE,
66 PROP_VIDEO_REMOTE_CANDIDATE,
67 PROP_AUDIO_LOCAL_CANDIDATE,
68 PROP_VIDEO_LOCAL_CANDIDATE,
6169 };
6270
6371 /* private structure */
7482 FsCodec *send_video_codec;
7583 GList *recv_audio_codecs;
7684 GList *recv_video_codecs;
85 FsCandidate *audio_remote_candidate;
86 FsCandidate *video_remote_candidate;
87 FsCandidate *audio_local_candidate;
88 FsCandidate *video_local_candidate;
7789 } EmpathyCallHandlerPriv;
7890
7991 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyCallHandler)
120132 fs_codec_destroy (priv->send_video_codec);
121133 fs_codec_list_destroy (priv->recv_audio_codecs);
122134 fs_codec_list_destroy (priv->recv_video_codecs);
135 fs_candidate_destroy (priv->audio_remote_candidate);
136 fs_candidate_destroy (priv->video_remote_candidate);
137 fs_candidate_destroy (priv->audio_local_candidate);
138 fs_candidate_destroy (priv->video_local_candidate);
123139
124140 if (G_OBJECT_CLASS (empathy_call_handler_parent_class)->finalize)
125141 G_OBJECT_CLASS (empathy_call_handler_parent_class)->finalize (object);
201217 break;
202218 case PROP_RECV_VIDEO_CODECS:
203219 g_value_set_boxed (value, priv->recv_video_codecs);
220 break;
221 case PROP_AUDIO_REMOTE_CANDIDATE:
222 g_value_set_boxed (value, priv->audio_remote_candidate);
223 break;
224 case PROP_VIDEO_REMOTE_CANDIDATE:
225 g_value_set_boxed (value, priv->video_remote_candidate);
226 break;
227 case PROP_AUDIO_LOCAL_CANDIDATE:
228 g_value_set_boxed (value, priv->audio_local_candidate);
229 break;
230 case PROP_VIDEO_LOCAL_CANDIDATE:
231 g_value_set_boxed (value, priv->video_local_candidate);
204232 break;
205233 default:
206234 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
276304 g_object_class_install_property (object_class, PROP_RECV_VIDEO_CODECS,
277305 param_spec);
278306
307 param_spec = g_param_spec_boxed ("audio-remote-candidate",
308 "audio remote candidate",
309 "Remote candidate used for the audio stream",
310 FS_TYPE_CANDIDATE,
311 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
312 g_object_class_install_property (object_class,
313 PROP_AUDIO_REMOTE_CANDIDATE, param_spec);
314
315 param_spec = g_param_spec_boxed ("video-remote-candidate",
316 "video remote candidate",
317 "Remote candidate used for the video stream",
318 FS_TYPE_CANDIDATE,
319 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
320 g_object_class_install_property (object_class,
321 PROP_VIDEO_REMOTE_CANDIDATE, param_spec);
322
323 param_spec = g_param_spec_boxed ("audio-local-candidate",
324 "audio local candidate",
325 "Local candidate used for the audio stream",
326 FS_TYPE_CANDIDATE,
327 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
328 g_object_class_install_property (object_class,
329 PROP_AUDIO_REMOTE_CANDIDATE, param_spec);
330
331 param_spec = g_param_spec_boxed ("video-local-candidate",
332 "video local candidate",
333 "Local candidate used for the video stream",
334 FS_TYPE_CANDIDATE,
335 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
336 g_object_class_install_property (object_class,
337 PROP_VIDEO_REMOTE_CANDIDATE, param_spec);
338
279339 signals[CONFERENCE_ADDED] =
280340 g_signal_new ("conference-added", G_TYPE_FROM_CLASS (klass),
281341 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
316376 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
317377 g_cclosure_marshal_VOID__OBJECT,
318378 G_TYPE_NONE, 1, TF_TYPE_STREAM);
379
380 signals[CANDIDATES_CHANGED] =
381 g_signal_new ("candidates-changed", G_TYPE_FROM_CLASS (klass),
382 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
383 g_cclosure_marshal_VOID__UINT,
384 G_TYPE_NONE, 1, G_TYPE_UINT);
319385 }
320386
321387 /**
399465 g_object_unref (session);
400466 }
401467
468 static void
469 update_candidates (EmpathyCallHandler *self,
470 FsCandidate *remote_candidate,
471 FsCandidate *local_candidate,
472 FsStream *stream)
473 {
474 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
475 FsSession *session;
476 FsMediaType type;
477
478 if (stream == NULL)
479 return;
480
481 g_object_get (stream, "session", &session, NULL);
482 if (session == NULL)
483 return;
484
485 g_object_get (session, "media-type", &type, NULL);
486
487 if (type == FS_MEDIA_TYPE_AUDIO)
488 {
489 if (remote_candidate != NULL)
490 {
491 fs_candidate_destroy (priv->audio_remote_candidate);
492 priv->audio_remote_candidate = fs_candidate_copy (remote_candidate);
493 g_object_notify (G_OBJECT (self), "audio-remote-candidate");
494 }
495
496 if (local_candidate != NULL)
497 {
498 fs_candidate_destroy (priv->audio_local_candidate);
499 priv->audio_local_candidate = fs_candidate_copy (local_candidate);
500 g_object_notify (G_OBJECT (self), "audio-local-candidate");
501 }
502
503 g_signal_emit (G_OBJECT (self), signals[CANDIDATES_CHANGED], 0,
504 FS_MEDIA_TYPE_AUDIO);
505 }
506 else if (type == FS_MEDIA_TYPE_VIDEO)
507 {
508 if (remote_candidate != NULL)
509 {
510 fs_candidate_destroy (priv->video_remote_candidate);
511 priv->video_remote_candidate = fs_candidate_copy (remote_candidate);
512 g_object_notify (G_OBJECT (self), "video-remote-candidate");
513 }
514
515 if (local_candidate != NULL)
516 {
517 fs_candidate_destroy (priv->video_local_candidate);
518 priv->video_local_candidate = fs_candidate_copy (local_candidate);
519 g_object_notify (G_OBJECT (self), "video-local-candidate");
520 }
521
522 g_signal_emit (G_OBJECT (self), signals[CANDIDATES_CHANGED], 0,
523 FS_MEDIA_TYPE_VIDEO);
524 }
525
526 g_object_unref (session);
527 }
528
402529 void
403530 empathy_call_handler_bus_message (EmpathyCallHandler *handler,
404531 GstBus *bus, GstMessage *message)
438565 stream = g_value_get_object (val);
439566
440567 update_receiving_codec (handler, codecs, stream);
568 }
569 else if (s != NULL &&
570 gst_structure_has_name (s, "farsight-new-active-candidate-pair"))
571 {
572 const GValue *val;
573 FsCandidate *remote_candidate, *local_candidate;
574 FsStream *stream;
575
576 val = gst_structure_get_value (s, "remote-candidate");
577 remote_candidate = g_value_get_boxed (val);
578
579 val = gst_structure_get_value (s, "local-candidate");
580 local_candidate = g_value_get_boxed (val);
581
582 val = gst_structure_get_value (s, "stream");
583 stream = g_value_get_object (val);
584
585 update_candidates (handler, remote_candidate, local_candidate, stream);
441586 }
442587
443588 tf_channel_bus_message (priv->tfchannel, message);
608753 }
609754
610755 static void
611 empathy_call_handler_request_cb (EmpathyDispatchOperation *operation,
612 const GError *error,
613 gpointer user_data)
756 empathy_call_handler_request_cb (GObject *source,
757 GAsyncResult *result,
758 gpointer user_data)
614759 {
615760 EmpathyCallHandler *self = EMPATHY_CALL_HANDLER (user_data);
616761 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
617762 TpChannel *channel;
618
619 if (error != NULL)
620 return;
621
622 channel = empathy_dispatch_operation_get_channel (operation);
623 g_assert (channel != NULL);
624
625 priv->call = empathy_tp_call_new (channel);
763 GError *error = NULL;
764 TpAccountChannelRequest *req = TP_ACCOUNT_CHANNEL_REQUEST (source);
765 TpAccount *account;
766
767 channel = tp_account_channel_request_create_and_handle_channel_finish (req,
768 result, NULL, &error);
769 if (channel == NULL)
770 {
771 DEBUG ("Failed to create the channel: %s", error->message);
772 g_error_free (error);
773 return;
774 }
775
776 account = tp_account_channel_request_get_account (req);
777
778 priv->call = empathy_tp_call_new (account, channel);
626779
627780 g_object_notify (G_OBJECT (self), "tp-call");
628781
629782 empathy_call_handler_start_tpfs (self);
630783
631 empathy_dispatch_operation_claim (operation);
784 g_object_unref (channel);
632785 }
633786
634787 void
635788 empathy_call_handler_start_call (EmpathyCallHandler *handler,
636789 gint64 timestamp)
637790 {
638
639791 EmpathyCallHandlerPriv *priv = GET_PRIV (handler);
792 TpAccountChannelRequest *req;
793 TpAccount *account;
794 GHashTable *request;
640795
641796 if (priv->call != NULL)
642797 {
649804 * will be used to create a new EmpathyTpCall. */
650805 g_assert (priv->contact != NULL);
651806
652 empathy_call_factory_new_call_with_streams (priv->contact,
653 priv->initial_audio, priv->initial_video, timestamp,
807 account = empathy_contact_get_account (priv->contact);
808 request = empathy_call_factory_create_request (priv->contact,
809 priv->initial_audio, priv->initial_video);
810
811 req = tp_account_channel_request_new (account, request, timestamp);
812
813 tp_account_channel_request_create_and_handle_channel_async (req, NULL,
654814 empathy_call_handler_request_cb, handler);
815
816 g_object_unref (req);
817 g_hash_table_unref (request);
655818 }
656819
657820 /**
722885
723886 return priv->recv_video_codecs;
724887 }
888
889 FsCandidate *
890 empathy_call_handler_get_audio_remote_candidate (
891 EmpathyCallHandler *self)
892 {
893 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
894
895 return priv->audio_remote_candidate;
896 }
897
898 FsCandidate *
899 empathy_call_handler_get_audio_local_candidate (
900 EmpathyCallHandler *self)
901 {
902 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
903
904 return priv->audio_local_candidate;
905 }
906
907 FsCandidate *
908 empathy_call_handler_get_video_remote_candidate (
909 EmpathyCallHandler *self)
910 {
911 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
912
913 return priv->video_remote_candidate;
914 }
915
916 FsCandidate *
917 empathy_call_handler_get_video_local_candidate (
918 EmpathyCallHandler *self)
919 {
920 EmpathyCallHandlerPriv *priv = GET_PRIV (self);
921
922 return priv->video_local_candidate;
923 }
8888 GList * empathy_call_handler_get_recv_video_codecs (
8989 EmpathyCallHandler *self);
9090
91 FsCandidate * empathy_call_handler_get_audio_remote_candidate (
92 EmpathyCallHandler *self);
93
94 FsCandidate * empathy_call_handler_get_audio_local_candidate (
95 EmpathyCallHandler *self);
96
97 FsCandidate * empathy_call_handler_get_video_remote_candidate (
98 EmpathyCallHandler *self);
99
100 FsCandidate * empathy_call_handler_get_video_local_candidate (
101 EmpathyCallHandler *self);
102
91103 G_END_DECLS
92104
93105 #endif /* #ifndef __EMPATHY_CALL_HANDLER_H__*/
3131 #include <folks/folks.h>
3232 #include <folks/folks-telepathy.h>
3333
34 #if HAVE_GEOCLUE
34 #ifdef HAVE_GEOCLUE
3535 #include <geoclue/geoclue-geocode.h>
3636 #endif
3737
7474 static void contact_set_property (GObject *object, guint param_id,
7575 const GValue *value, GParamSpec *pspec);
7676
77 #if HAVE_GEOCLUE
77 #ifdef HAVE_GEOCLUE
7878 static void update_geocode (EmpathyContact *contact);
7979 #endif
8080
501501 };
502502 }
503503
504 EmpathyContact *
504 static EmpathyContact *
505505 empathy_contact_new (TpContact *tp_contact)
506506 {
507507 g_return_val_if_fail (TP_IS_CONTACT (tp_contact), NULL);
806806 if (tp_contact == priv->tp_contact)
807807 {
808808 /* Found the right persona */
809 priv->persona = g_object_ref (persona);
809 empathy_contact_set_persona (contact,
810 (FolksPersona *) persona);
810811 goto finished;
811812 }
812813 }
847848 /* Set the persona's alias, since ours could've been set using
848849 * empathy_contact_set_alias() before we had a persona; this happens when
849850 * adding a contact. */
850 empathy_contact_set_alias (contact, priv->alias);
851 if (priv->alias != NULL)
852 empathy_contact_set_alias (contact, priv->alias);
851853
852854 /* Set the persona's groups */
853855 if (priv->groups != NULL)
10451047 case TP_CONNECTION_PRESENCE_TYPE_OFFLINE:
10461048 case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
10471049 case TP_CONNECTION_PRESENCE_TYPE_ERROR:
1050 case TP_CONNECTION_PRESENCE_TYPE_UNSET:
10481051 return FALSE;
1052 case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE:
1053 case TP_CONNECTION_PRESENCE_TYPE_AWAY:
1054 case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
1055 case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
1056 case TP_CONNECTION_PRESENCE_TYPE_BUSY:
10491057 default:
10501058 return TRUE;
10511059 }
13461354 g_hash_table_unref (priv->location);
13471355
13481356 priv->location = g_hash_table_ref (location);
1349 #if HAVE_GEOCLUE
1357 #ifdef HAVE_GEOCLUE
13501358 update_geocode (contact);
13511359 #endif
13521360 g_object_notify (G_OBJECT (contact), "location");
13891397 return FALSE;
13901398 }
13911399
1392 #if HAVE_GEOCLUE
1400 #ifdef HAVE_GEOCLUE
13931401 #define GEOCODE_SERVICE "org.freedesktop.Geoclue.Providers.Yahoo"
13941402 #define GEOCODE_PATH "/org/freedesktop/Geoclue/Providers/Yahoo"
13951403
7070 } EmpathyCapabilities;
7171
7272 GType empathy_contact_get_type (void) G_GNUC_CONST;
73 EmpathyContact * empathy_contact_new (TpContact *tp_contact);
7473 EmpathyContact * empathy_contact_from_tpl_contact (TpAccount *account,
7574 TplEntity *tpl_contact);
7675 EmpathyContact * empathy_contact_new_for_log (TpAccount *account,
+0
-633
libempathy/empathy-dispatch-operation.c less more
0 /*
1 * empathy-dispatch-operation.c - Source for EmpathyDispatchOperation
2 * Copyright (C) 2008 Collabora Ltd.
3 * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20
21 #include <stdio.h>
22 #include <stdlib.h>
23
24 #include <telepathy-glib/interfaces.h>
25
26 #include "empathy-dispatch-operation.h"
27 #include <libempathy/empathy-enum-types.h>
28 #include <libempathy/empathy-tp-contact-factory.h>
29 #include <libempathy/empathy-tp-call.h>
30 #include <libempathy/empathy-tp-file.h>
31
32 #include "empathy-marshal.h"
33
34 #include "extensions/extensions.h"
35
36 #define DEBUG_FLAG EMPATHY_DEBUG_DISPATCHER
37 #include <libempathy/empathy-debug.h>
38
39 G_DEFINE_TYPE(EmpathyDispatchOperation, empathy_dispatch_operation,
40 G_TYPE_OBJECT)
41
42 static void empathy_dispatch_operation_set_status (
43 EmpathyDispatchOperation *self, EmpathyDispatchOperationState status);
44 static void empathy_dispatch_operation_channel_ready_cb (TpChannel *channel,
45 const GError *error, gpointer user_data);
46
47 /* signal enum */
48 enum
49 {
50 /* Ready for dispatching */
51 READY,
52 /* Claimed by a handler */
53 CLAIMED,
54 /* Error, channel went away, inspecting it failed etc */
55 INVALIDATED,
56 LAST_SIGNAL
57 };
58
59 static guint signals[LAST_SIGNAL] = {0};
60
61 /* properties */
62 enum {
63 PROP_CONNECTION = 1,
64 PROP_CHANNEL,
65 PROP_CHANNEL_WRAPPER,
66 PROP_CONTACT,
67 PROP_INCOMING,
68 PROP_STATUS,
69 PROP_USER_ACTION_TIME,
70 };
71
72 /* private structure */
73 typedef struct _EmpathyDispatchOperationPriv \
74 EmpathyDispatchOperationPriv;
75
76 struct _EmpathyDispatchOperationPriv
77 {
78 gboolean dispose_has_run;
79 TpConnection *connection;
80 TpChannel *channel;
81 GObject *channel_wrapper;
82 EmpathyContact *contact;
83 EmpathyDispatchOperationState status;
84 gboolean incoming;
85 gint64 user_action_time;
86 gulong invalidated_handler;
87 gulong ready_handler;
88 };
89
90 #define GET_PRIV(o) \
91 (G_TYPE_INSTANCE_GET_PRIVATE ((o), EMPATHY_TYPE_DISPATCH_OPERATION, \
92 EmpathyDispatchOperationPriv))
93
94 static void
95 empathy_dispatch_operation_init (EmpathyDispatchOperation *obj)
96 {
97 //EmpathyDispatchOperationPriv *priv =
98 // GET_PRIV (obj);
99
100 /* allocate any data required by the object here */
101 }
102
103 static void empathy_dispatch_operation_dispose (GObject *object);
104 static void empathy_dispatch_operation_finalize (GObject *object);
105
106 static void
107 empathy_dispatch_operation_set_property (GObject *object,
108 guint property_id, const GValue *value, GParamSpec *pspec)
109 {
110 EmpathyDispatchOperation *operation = EMPATHY_DISPATCH_OPERATION (object);
111 EmpathyDispatchOperationPriv *priv = GET_PRIV (operation);
112
113 switch (property_id)
114 {
115 case PROP_CONNECTION:
116 priv->connection = g_value_dup_object (value);
117 break;
118 case PROP_CHANNEL:
119 priv->channel = g_value_dup_object (value);
120 break;
121 case PROP_CHANNEL_WRAPPER:
122 priv->channel_wrapper = g_value_dup_object (value);
123 break;
124 case PROP_CONTACT:
125 if (priv->contact != NULL)
126 g_object_unref (priv->contact);
127 priv->contact = g_value_dup_object (value);
128 break;
129 case PROP_INCOMING:
130 priv->incoming = g_value_get_boolean (value);
131 break;
132
133 case PROP_USER_ACTION_TIME:
134 priv->user_action_time = g_value_get_int64 (value);
135 break;
136 }
137 }
138
139 static void
140 empathy_dispatch_operation_get_property (GObject *object,
141 guint property_id, GValue *value, GParamSpec *pspec)
142 {
143 EmpathyDispatchOperation *operation = EMPATHY_DISPATCH_OPERATION (object);
144 EmpathyDispatchOperationPriv *priv = GET_PRIV (operation);
145
146 switch (property_id)
147 {
148 case PROP_CONNECTION:
149 g_value_set_object (value, priv->connection);
150 break;
151 case PROP_CHANNEL:
152 g_value_set_object (value, priv->channel);
153 break;
154 case PROP_CHANNEL_WRAPPER:
155 g_value_set_object (value, priv->channel_wrapper);
156 break;
157 case PROP_CONTACT:
158 g_value_set_object (value, priv->contact);
159 break;
160 case PROP_INCOMING:
161 g_value_set_boolean (value, priv->incoming);
162 break;
163 case PROP_STATUS:
164 g_value_set_enum (value, priv->status);
165 break;
166 case PROP_USER_ACTION_TIME:
167 g_value_set_int64 (value, priv->user_action_time);
168 break;
169 }
170 }
171
172 static void
173 empathy_dispatch_operation_invalidated (TpProxy *proxy, guint domain,
174 gint code, char *message, EmpathyDispatchOperation *self)
175 {
176 empathy_dispatch_operation_set_status (self,
177 EMPATHY_DISPATCHER_OPERATION_STATE_INVALIDATED);
178
179 g_signal_emit (self, signals[INVALIDATED], 0, domain, code, message);
180 }
181
182 static void
183 dispatcher_operation_got_contact_cb (TpConnection *connection,
184 EmpathyContact *contact,
185 const GError *error,
186 gpointer user_data,
187 GObject *self)
188 {
189 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
190
191 if (error)
192 {
193 /* FIXME: We should cancel the operation */
194 DEBUG ("Error: %s", error->message);
195 return;
196 }
197
198 if (priv->contact != NULL)
199 g_object_unref (priv->contact);
200 priv->contact = g_object_ref (contact);
201 g_object_notify (G_OBJECT (self), "contact");
202
203 /* Ensure to keep the self object alive while the call_when_ready is
204 * running */
205 g_object_ref (self);
206 tp_channel_call_when_ready (priv->channel,
207 empathy_dispatch_operation_channel_ready_cb, self);
208 }
209
210 static void
211 dispatch_operation_connection_ready (TpConnection *connection,
212 const GError *error,
213 gpointer user_data)
214 {
215 EmpathyDispatchOperation *self = EMPATHY_DISPATCH_OPERATION (user_data);
216 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
217 TpHandle handle;
218 TpHandleType handle_type;
219
220 if (error != NULL)
221 goto out;
222
223 if (priv->status >= EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED)
224 /* no point to get more information */
225 goto out;
226
227 handle = tp_channel_get_handle (priv->channel, &handle_type);
228 if (handle_type == TP_HANDLE_TYPE_CONTACT && priv->contact == NULL)
229 {
230 empathy_tp_contact_factory_get_from_handle (priv->connection, handle,
231 dispatcher_operation_got_contact_cb, NULL, NULL, G_OBJECT (self));
232 }
233 else
234 {
235 g_object_ref (self);
236 tp_channel_call_when_ready (priv->channel,
237 empathy_dispatch_operation_channel_ready_cb, self);
238 }
239
240 out:
241 g_object_unref (self);
242 }
243
244 static void
245 empathy_dispatch_operation_constructed (GObject *object)
246 {
247 EmpathyDispatchOperation *self = EMPATHY_DISPATCH_OPERATION (object);
248 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
249
250 empathy_dispatch_operation_set_status (self,
251 EMPATHY_DISPATCHER_OPERATION_STATE_PREPARING);
252
253 priv->invalidated_handler =
254 g_signal_connect (priv->channel, "invalidated",
255 G_CALLBACK (empathy_dispatch_operation_invalidated), self);
256
257 g_object_ref (self);
258 tp_connection_call_when_ready (priv->connection,
259 dispatch_operation_connection_ready, object);
260 }
261
262 static void
263 empathy_dispatch_operation_class_init (
264 EmpathyDispatchOperationClass *empathy_dispatch_operation_class)
265 {
266 GObjectClass *object_class =
267 G_OBJECT_CLASS (empathy_dispatch_operation_class);
268 GParamSpec *param_spec;
269
270 g_type_class_add_private (empathy_dispatch_operation_class,
271 sizeof (EmpathyDispatchOperationPriv));
272
273 object_class->set_property = empathy_dispatch_operation_set_property;
274 object_class->get_property = empathy_dispatch_operation_get_property;
275
276 object_class->dispose = empathy_dispatch_operation_dispose;
277 object_class->finalize = empathy_dispatch_operation_finalize;
278 object_class->constructed = empathy_dispatch_operation_constructed;
279
280 signals[READY] = g_signal_new ("ready",
281 G_OBJECT_CLASS_TYPE(empathy_dispatch_operation_class),
282 G_SIGNAL_RUN_LAST,
283 0,
284 NULL, NULL,
285 g_cclosure_marshal_VOID__VOID,
286 G_TYPE_NONE, 0);
287
288 signals[CLAIMED] = g_signal_new ("claimed",
289 G_OBJECT_CLASS_TYPE(empathy_dispatch_operation_class),
290 G_SIGNAL_RUN_LAST,
291 0,
292 NULL, NULL,
293 g_cclosure_marshal_VOID__VOID,
294 G_TYPE_NONE, 0);
295
296 signals[INVALIDATED] = g_signal_new ("invalidated",
297 G_OBJECT_CLASS_TYPE(empathy_dispatch_operation_class),
298 G_SIGNAL_RUN_LAST,
299 0,
300 NULL, NULL,
301 _empathy_marshal_VOID__UINT_INT_STRING,
302 G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_INT, G_TYPE_STRING);
303
304 param_spec = g_param_spec_object ("connection",
305 "connection", "The telepathy connection",
306 TP_TYPE_CONNECTION,
307 G_PARAM_CONSTRUCT_ONLY |
308 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
309 g_object_class_install_property (object_class, PROP_CONNECTION,
310 param_spec);
311
312 param_spec = g_param_spec_object ("channel",
313 "channel", "The telepathy channel",
314 TP_TYPE_CHANNEL,
315 G_PARAM_CONSTRUCT_ONLY |
316 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
317 g_object_class_install_property (object_class, PROP_CHANNEL,
318 param_spec);
319
320 param_spec = g_param_spec_object ("channel-wrapper",
321 "channel wrapper", "The empathy specific channel wrapper",
322 G_TYPE_OBJECT,
323 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
324 g_object_class_install_property (object_class, PROP_CHANNEL_WRAPPER,
325 param_spec);
326
327 param_spec = g_param_spec_object ("contact",
328 "contact", "The empathy contact",
329 EMPATHY_TYPE_CONTACT,
330 G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
331 g_object_class_install_property (object_class, PROP_CONTACT,
332 param_spec);
333
334 param_spec = g_param_spec_boolean ("incoming",
335 "incoming", "Whether or not the channel is incoming",
336 FALSE,
337 G_PARAM_CONSTRUCT_ONLY |
338 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
339 g_object_class_install_property (object_class, PROP_INCOMING,
340 param_spec);
341
342 param_spec = g_param_spec_enum ("status",
343 "status", "Status of the dispatch operation",
344 EMPATHY_TYPE_DISPATCH_OPERATION_STATE, 0,
345 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
346 g_object_class_install_property (object_class, PROP_STATUS, param_spec);
347
348 param_spec = g_param_spec_int64 ("user-action-time",
349 "user action time", "The user action time of the operation",
350 G_MININT64, G_MAXINT64, 0,
351 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
352 g_object_class_install_property (object_class, PROP_USER_ACTION_TIME,
353 param_spec);
354 }
355
356 void
357 empathy_dispatch_operation_dispose (GObject *object)
358 {
359 EmpathyDispatchOperation *self = EMPATHY_DISPATCH_OPERATION (object);
360 EmpathyDispatchOperationPriv *priv =
361 GET_PRIV (self);
362
363 if (priv->dispose_has_run)
364 return;
365
366 priv->dispose_has_run = TRUE;
367
368 g_object_unref (priv->connection);
369
370 if (priv->ready_handler != 0)
371 g_signal_handler_disconnect (priv->channel_wrapper,
372 priv->ready_handler);
373
374 if (priv->channel_wrapper != NULL)
375 g_object_unref (priv->channel_wrapper);
376
377 g_signal_handler_disconnect (priv->channel, priv->invalidated_handler);
378 g_object_unref (priv->channel);
379
380 if (priv->contact != NULL)
381 g_object_unref (priv->contact);
382
383 if (G_OBJECT_CLASS (empathy_dispatch_operation_parent_class)->dispose)
384 G_OBJECT_CLASS (empathy_dispatch_operation_parent_class)->dispose (object);
385 }
386
387 void
388 empathy_dispatch_operation_finalize (GObject *object)
389 {
390 /* free any data held directly by the object here */
391 G_OBJECT_CLASS (empathy_dispatch_operation_parent_class)->finalize (object);
392 }
393
394 static void
395 empathy_dispatch_operation_set_status (EmpathyDispatchOperation *self,
396 EmpathyDispatchOperationState status)
397 {
398 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
399
400 g_assert (status >= priv->status);
401
402
403 if (priv->status != status)
404 {
405 DEBUG ("Dispatch operation %s status: %d -> %d",
406 empathy_dispatch_operation_get_object_path (self),
407 priv->status, status);
408
409 priv->status = status;
410 g_object_notify (G_OBJECT (self), "status");
411
412 if (status == EMPATHY_DISPATCHER_OPERATION_STATE_PENDING)
413 g_signal_emit (self, signals[READY], 0);
414 }
415 }
416
417 static void
418 empathy_dispatch_operation_channel_ready_cb (TpChannel *channel,
419 const GError *error, gpointer user_data)
420 {
421 EmpathyDispatchOperation *self = EMPATHY_DISPATCH_OPERATION (user_data);
422 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
423 GQuark channel_type;
424
425 /* The error will be handled in empathy_dispatch_operation_invalidated */
426 if (error != NULL)
427 goto out;
428
429 g_assert (channel == priv->channel);
430
431 if (priv->status >= EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED)
432 /* no point to get more information */
433 goto out;
434
435 /* If the channel wrapper is defined, we assume it's ready */
436 if (priv->channel_wrapper != NULL)
437 goto ready;
438
439 channel_type = tp_channel_get_channel_type_id (channel);
440
441 if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER)
442 {
443 EmpathyTpFile *file = empathy_tp_file_new (channel, priv->incoming);
444 priv->channel_wrapper = G_OBJECT (file);
445 }
446
447 ready:
448 empathy_dispatch_operation_set_status (self,
449 EMPATHY_DISPATCHER_OPERATION_STATE_PENDING);
450 out:
451 g_object_unref (self);
452 }
453
454 EmpathyDispatchOperation *
455 empathy_dispatch_operation_new (TpConnection *connection,
456 TpChannel *channel,
457 EmpathyContact *contact,
458 gboolean incoming,
459 gint64 user_action_time)
460 {
461 g_return_val_if_fail (connection != NULL, NULL);
462 g_return_val_if_fail (channel != NULL, NULL);
463
464 return g_object_new (EMPATHY_TYPE_DISPATCH_OPERATION,
465 "connection", connection,
466 "channel", channel,
467 "contact", contact,
468 "incoming", incoming,
469 "user-action-time", user_action_time,
470 NULL);
471 }
472
473 void
474 empathy_dispatch_operation_start (EmpathyDispatchOperation *operation)
475 {
476 EmpathyDispatchOperationPriv *priv;
477
478 g_return_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation));
479
480 priv = GET_PRIV (operation);
481
482 g_return_if_fail (
483 priv->status == EMPATHY_DISPATCHER_OPERATION_STATE_PENDING);
484
485 empathy_dispatch_operation_set_status (operation,
486 EMPATHY_DISPATCHER_OPERATION_STATE_DISPATCHING);
487 }
488
489 /* Returns whether or not the operation was successfully claimed */
490 gboolean
491 empathy_dispatch_operation_claim (EmpathyDispatchOperation *operation)
492 {
493 EmpathyDispatchOperationPriv *priv;
494
495 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), FALSE);
496
497 priv = GET_PRIV (operation);
498
499 if (priv->status == EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED)
500 return FALSE;
501
502 empathy_dispatch_operation_set_status (operation,
503 EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED);
504
505 g_signal_emit (operation, signals[CLAIMED], 0);
506
507 return TRUE;
508 }
509
510 TpConnection *
511 empathy_dispatch_operation_get_tp_connection (
512 EmpathyDispatchOperation *operation)
513 {
514 EmpathyDispatchOperationPriv *priv;
515
516 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), NULL);
517
518 priv = GET_PRIV (operation);
519
520 return priv->connection;
521 }
522
523 TpChannel *
524 empathy_dispatch_operation_get_channel (EmpathyDispatchOperation *operation)
525 {
526 EmpathyDispatchOperationPriv *priv;
527
528 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), NULL);
529
530 priv = GET_PRIV (operation);
531
532 return priv->channel;
533 }
534
535 GObject *
536 empathy_dispatch_operation_get_channel_wrapper (
537 EmpathyDispatchOperation *operation)
538 {
539 EmpathyDispatchOperationPriv *priv;
540
541 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), NULL);
542
543 priv = GET_PRIV (operation);
544
545 return priv->channel_wrapper;
546 }
547
548 const gchar *
549 empathy_dispatch_operation_get_channel_type (
550 EmpathyDispatchOperation *operation)
551 {
552 EmpathyDispatchOperationPriv *priv;
553
554 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), NULL);
555
556 priv = GET_PRIV (operation);
557
558 return tp_channel_get_channel_type (priv->channel);
559 }
560
561 GQuark
562 empathy_dispatch_operation_get_channel_type_id (
563 EmpathyDispatchOperation *operation)
564 {
565 EmpathyDispatchOperationPriv *priv;
566
567 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), 0);
568
569 priv = GET_PRIV (operation);
570
571 return tp_channel_get_channel_type_id (priv->channel);
572 }
573
574 const gchar *
575 empathy_dispatch_operation_get_object_path (
576 EmpathyDispatchOperation *operation)
577 {
578 EmpathyDispatchOperationPriv *priv;
579
580 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), NULL);
581
582 priv = GET_PRIV (operation);
583
584 return tp_proxy_get_object_path (TP_PROXY (priv->channel));
585 }
586
587 EmpathyDispatchOperationState
588 empathy_dispatch_operation_get_status (EmpathyDispatchOperation *operation)
589 {
590 EmpathyDispatchOperationPriv *priv;
591
592 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation),
593 EMPATHY_DISPATCHER_OPERATION_STATE_PREPARING);
594
595 priv = GET_PRIV (operation);
596
597 return priv->status;
598 }
599
600 gboolean
601 empathy_dispatch_operation_is_incoming (EmpathyDispatchOperation *operation)
602 {
603 EmpathyDispatchOperationPriv *priv;
604
605 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation), FALSE);
606
607 priv = GET_PRIV (operation);
608
609 return priv->incoming;
610 }
611
612 void
613 empathy_dispatch_operation_set_user_action_time (
614 EmpathyDispatchOperation *self,
615 gint64 user_action_time)
616 {
617 EmpathyDispatchOperationPriv *priv = GET_PRIV (self);
618
619 priv->user_action_time = user_action_time;
620 }
621
622 gint64
623 empathy_dispatch_operation_get_user_action_time (EmpathyDispatchOperation *self)
624 {
625 EmpathyDispatchOperationPriv *priv;
626
627 g_return_val_if_fail (EMPATHY_IS_DISPATCH_OPERATION (self), FALSE);
628
629 priv = GET_PRIV (self);
630
631 return priv->user_action_time;
632 }
+0
-126
libempathy/empathy-dispatch-operation.h less more
0 /*
1 * empathy-dispatch-operation.h - Header for EmpathyDispatchOperation
2 * Copyright (C) 2008 Collabora Ltd.
3 * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 #ifndef __EMPATHY_DISPATCH_OPERATION_H__
21 #define __EMPATHY_DISPATCH_OPERATION_H__
22
23 #include <glib-object.h>
24
25 #include <libempathy/empathy-contact.h>
26 #include <telepathy-glib/connection.h>
27 #include <telepathy-glib/channel.h>
28
29 G_BEGIN_DECLS
30
31 typedef struct _EmpathyDispatchOperation EmpathyDispatchOperation;
32 typedef struct _EmpathyDispatchOperationClass EmpathyDispatchOperationClass;
33
34 struct _EmpathyDispatchOperationClass {
35 GObjectClass parent_class;
36 };
37
38 struct _EmpathyDispatchOperation {
39 GObject parent;
40 };
41
42 typedef enum {
43 /* waiting for the channel information to be ready */
44 EMPATHY_DISPATCHER_OPERATION_STATE_PREPARING = 0,
45 /* Information gathered ready to be dispatched */
46 EMPATHY_DISPATCHER_OPERATION_STATE_PENDING,
47 /* Send to handlers for dispatching */
48 EMPATHY_DISPATCHER_OPERATION_STATE_DISPATCHING,
49 /* somebody claimed the channel */
50 EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED,
51 /* dispatch operation invalidated, underlying channel died */
52 EMPATHY_DISPATCHER_OPERATION_STATE_INVALIDATED,
53 } EmpathyDispatchOperationState;
54
55 GType empathy_dispatch_operation_get_type (void);
56
57 /* TYPE MACROS */
58 #define EMPATHY_TYPE_DISPATCH_OPERATION \
59 (empathy_dispatch_operation_get_type ())
60 #define EMPATHY_DISPATCH_OPERATION(obj) \
61 (G_TYPE_CHECK_INSTANCE_CAST((obj), EMPATHY_TYPE_DISPATCH_OPERATION, \
62 EmpathyDispatchOperation))
63 #define EMPATHY_DISPATCH_OPERATION_CLASS(klass) \
64 (G_TYPE_CHECK_CLASS_CAST((klass), EMPATHY_TYPE_DISPATCH_OPERATION, \
65 EmpathyDispatchOperationClass))
66 #define EMPATHY_IS_DISPATCH_OPERATION(obj) \
67 (G_TYPE_CHECK_INSTANCE_TYPE((obj), EMPATHY_TYPE_DISPATCH_OPERATION))
68 #define EMPATHY_IS_DISPATCH_OPERATION_CLASS(klass) \
69 (G_TYPE_CHECK_CLASS_TYPE((klass), EMPATHY_TYPE_DISPATCH_OPERATION))
70 #define EMPATHY_DISPATCH_OPERATION_GET_CLASS(obj) \
71 (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_DISPATCH_OPERATION, \
72 EmpathyDispatchOperationClass))
73
74 EmpathyDispatchOperation *empathy_dispatch_operation_new (
75 TpConnection *connection, TpChannel *channel, EmpathyContact *contact,
76 gboolean incoming,
77 gint64 user_action_time);
78
79 EmpathyDispatchOperation *empathy_dispatch_operation_new_with_wrapper (
80 TpConnection *connection, TpChannel *channel, EmpathyContact *contact,
81 gboolean incoming,
82 gint64 user_action_time,
83 GObject *channel_wrapper);
84
85 /* Start the dispatching process, goes to the APPROVING state for incoming
86 * channels and DISPATCHING for outgoing ones */
87 void empathy_dispatch_operation_start (EmpathyDispatchOperation *operation);
88
89 /* Returns whether or not the operation was successfully claimed */
90 gboolean empathy_dispatch_operation_claim (EmpathyDispatchOperation *operation);
91
92 TpChannel *empathy_dispatch_operation_get_channel (
93 EmpathyDispatchOperation *operation);
94
95 GObject *empathy_dispatch_operation_get_channel_wrapper (
96 EmpathyDispatchOperation *operation);
97
98 TpConnection *empathy_dispatch_operation_get_tp_connection (
99 EmpathyDispatchOperation *operation);
100
101 const gchar *empathy_dispatch_operation_get_channel_type (
102 EmpathyDispatchOperation *operation);
103
104 GQuark empathy_dispatch_operation_get_channel_type_id (
105 EmpathyDispatchOperation *operation);
106
107 const gchar * empathy_dispatch_operation_get_object_path (
108 EmpathyDispatchOperation *operation);
109
110 EmpathyDispatchOperationState empathy_dispatch_operation_get_status (
111 EmpathyDispatchOperation *operation);
112
113 gboolean empathy_dispatch_operation_is_incoming (
114 EmpathyDispatchOperation *operation);
115
116 void empathy_dispatch_operation_set_user_action_time (
117 EmpathyDispatchOperation *self,
118 gint64 user_action_time);
119
120 gint64 empathy_dispatch_operation_get_user_action_time (
121 EmpathyDispatchOperation *self);
122
123 G_END_DECLS
124
125 #endif /* #ifndef __EMPATHY_DISPATCH_OPERATION_H__*/
3030 #include <telepathy-glib/account-manager.h>
3131 #include <telepathy-glib/enums.h>
3232 #include <telepathy-glib/connection.h>
33 #include <telepathy-glib/channel-dispatcher.h>
34 #include <telepathy-glib/channel-request.h>
3533 #include <telepathy-glib/util.h>
3634 #include <telepathy-glib/dbus.h>
3735 #include <telepathy-glib/proxy-subclass.h>
3836 #include <telepathy-glib/gtypes.h>
3937 #include <telepathy-glib/defs.h>
40 #include <telepathy-glib/svc-client.h>
41 #include <telepathy-glib/svc-generic.h>
4238 #include <telepathy-glib/interfaces.h>
4339
4440 #include <extensions/extensions.h>
4541
4642 #include "empathy-dispatcher.h"
47 #include "empathy-handler.h"
4843 #include "empathy-utils.h"
4944 #include "empathy-tp-contact-factory.h"
5045 #include "empathy-chatroom-manager.h"
6257 /* connection to connection data mapping */
6358 GHashTable *connections;
6459 GHashTable *outstanding_classes_requests;
65 gpointer token;
66
67 /* channels which the dispatcher is listening "invalidated" */
68 GList *channels;
69 GPtrArray *array;
70
71 /* main handler */
72 EmpathyHandler *handler;
73
74 /* extra handlers */
75 GList *handlers;
7660
7761 GHashTable *request_channel_class_async_ids;
7862 /* reffed (TpAccount *) => gulong
7963 * Signal handler ID of the "status-changed" signal */
8064 GHashTable *status_changed_handlers;
81
82 TpChannelDispatcher *channel_dispatcher;
83 TpDBusDaemon *dbus;
8465 } EmpathyDispatcherPriv;
8566
86 static GList *
87 empathy_dispatcher_get_channels (EmpathyHandler *handler,
88 gpointer user_data);
89
90 static gboolean
91 empathy_dispatcher_handle_channels (EmpathyHandler *handler,
92 const gchar *account_path,
93 const gchar *connection_path,
94 const GPtrArray *channels,
95 const GPtrArray *requests_satisfied,
96 guint64 timestamp,
97 GHashTable *handler_info,
98 gpointer user_data,
99 GError **error);
100
10167 G_DEFINE_TYPE (EmpathyDispatcher, empathy_dispatcher, G_TYPE_OBJECT);
10268
103 enum
104 {
105 PROP_INTERFACES = 1,
106 PROP_HANDLER,
107 };
108
109 enum
110 {
111 OBSERVE,
112 DISPATCH,
113 LAST_SIGNAL
114 };
115
116 static guint signals[LAST_SIGNAL];
11769 static EmpathyDispatcher *dispatcher = NULL;
11870
11971 static void dispatcher_init_connection_if_needed (
12375 static GList * empathy_dispatcher_find_channel_classes
12476 (EmpathyDispatcher *dispatcher, TpConnection *connection,
12577 const gchar *channel_type, guint handle_type, GArray *fixed_properties);
126
127
128 typedef struct
129 {
130 EmpathyDispatcher *dispatcher;
131 EmpathyDispatchOperation *operation;
132 TpConnection *connection;
133 gboolean should_ensure;
134 gchar *channel_type;
135 guint handle_type;
136 guint handle;
137 EmpathyContact *contact;
138 TpProxyPendingCall *pending_call;
139
140 /* Properties to pass to the channel when requesting it */
141 GHashTable *request;
142 gint64 timestamp;
143 EmpathyDispatcherRequestCb *cb;
144 gpointer user_data;
145 gpointer *request_data;
146
147 TpChannelRequest *channel_request;
148 } DispatcherRequestData;
14978
15079 typedef struct
15180 {
15685
15786 typedef struct
15887 {
159 /* ObjectPath => DispatchData.. */
160 GHashTable *dispatched_channels;
161 /* ObjectPath -> EmpathyDispatchOperations */
162 GHashTable *dispatching_channels;
163
164 /* List of DispatcherRequestData */
165 GList *outstanding_requests;
16688 /* List of requestable channel classes */
16789 GPtrArray *requestable_channels;
16890 } ConnectionData;
178100 gpointer user_data;
179101 } FindChannelRequest;
180102
181 static void
182 empathy_dispatcher_call_create_or_ensure_channel (
183 EmpathyDispatcher *dispatcher,
184 DispatcherRequestData *request_data);
185
186 static void
187 dispatcher_request_failed (EmpathyDispatcher *dispatcher,
188 DispatcherRequestData *request_data,
189 const GError *error);
190
191 static DispatchData *
192 new_dispatch_data (TpChannel *channel,
193 GObject *channel_wrapper)
194 {
195 DispatchData *d = g_slice_new0 (DispatchData);
196 d->channel = g_object_ref (channel);
197 if (channel_wrapper != NULL)
198 d->channel_wrapper = g_object_ref (channel_wrapper);
199
200 return d;
201 }
202
203 static void
204 free_dispatch_data (DispatchData *data)
205 {
206 g_object_unref (data->channel);
207 if (data->channel_wrapper != NULL)
208 g_object_unref (data->channel_wrapper);
209
210 g_slice_free (DispatchData, data);
211 }
212
213 static DispatcherRequestData *
214 new_dispatcher_request_data (EmpathyDispatcher *self,
215 TpConnection *connection,
216 const gchar *channel_type,
217 guint handle_type,
218 guint handle,
219 GHashTable *request,
220 gint64 timestamp,
221 EmpathyContact *contact,
222 EmpathyDispatcherRequestCb *cb,
223 gpointer user_data)
224 {
225 DispatcherRequestData *result = g_slice_new0 (DispatcherRequestData);
226
227 result->dispatcher = g_object_ref (self);
228 result->connection = connection;
229
230 result->should_ensure = FALSE;
231
232 result->channel_type = g_strdup (channel_type);
233 result->handle_type = handle_type;
234 result->handle = handle;
235 result->request = request;
236 result->timestamp = timestamp;
237
238 if (contact != NULL)
239 result->contact = g_object_ref (contact);
240
241 result->cb = cb;
242 result->user_data = user_data;
243
244 return result;
245 }
246
247 static void
248 free_dispatcher_request_data (DispatcherRequestData *r)
249 {
250 g_free (r->channel_type);
251
252 if (r->dispatcher != NULL)
253 g_object_unref (r->dispatcher);
254
255 if (r->contact != NULL)
256 g_object_unref (r->contact);
257
258 if (r->request != NULL)
259 g_hash_table_unref (r->request);
260
261
262 if (r->pending_call != NULL)
263 tp_proxy_pending_call_cancel (r->pending_call);
264
265 if (r->channel_request != NULL)
266 g_object_unref (r->channel_request);
267
268 g_slice_free (DispatcherRequestData, r);
269 }
270
271103 static ConnectionData *
272104 new_connection_data (void)
273105 {
274 ConnectionData *cd = g_slice_new0 (ConnectionData);
275
276 cd->dispatched_channels = g_hash_table_new_full (g_str_hash, g_str_equal,
277 g_free, (GDestroyNotify) free_dispatch_data);
278
279 cd->dispatching_channels = g_hash_table_new_full (g_str_hash, g_str_equal,
280 g_free, g_object_unref);
281
282 return cd;
106 return g_slice_new0 (ConnectionData);
283107 }
284108
285109 static void
286110 free_connection_data (ConnectionData *cd)
287111 {
288 GList *l;
289112 guint i;
290
291 g_hash_table_destroy (cd->dispatched_channels);
292 g_hash_table_destroy (cd->dispatching_channels);
293
294 for (l = cd->outstanding_requests ; l != NULL; l = g_list_delete_link (l,l))
295 {
296 free_dispatcher_request_data (l->data);
297 }
298113
299114 if (cd->requestable_channels != NULL)
300115 {
336151 EmpathyDispatcher *self)
337152 {
338153 EmpathyDispatcherPriv *priv = GET_PRIV (self);
339 ConnectionData *connection_data;
340154
341155 DEBUG ("Error: %s", message);
342156
343 /* Terminate pending requests, if any */
344 connection_data = g_hash_table_lookup (priv->connections, connection);
345 if (connection_data != NULL)
346 {
347 GList *l;
348 GError *error = NULL;
349
350 error = g_error_new_literal (domain, code, message);
351
352 for (l = connection_data->outstanding_requests; l != NULL;
353 l = g_list_next (l))
354 {
355 DispatcherRequestData *request_data = l->data;
356
357 if (request_data->cb != NULL)
358 request_data->cb (NULL, error, request_data->user_data);
359 }
360
361 g_error_free (error);
362 }
363
364157 g_hash_table_remove (priv->connections, connection);
365158 }
366159
367160 static void
368 dispatch_operation_flush_requests (EmpathyDispatcher *self,
369 EmpathyDispatchOperation *operation,
370 GError *error,
371 ConnectionData *cd)
372 {
373 GList *l;
374
375 l = cd->outstanding_requests;
376 while (l != NULL)
377 {
378 DispatcherRequestData *d = (DispatcherRequestData *) l->data;
379 GList *lt = l;
380
381 l = g_list_next (l);
382
383 if (d->operation == operation)
384 {
385 if (d->cb != NULL)
386 {
387 if (error != NULL)
388 d->cb (NULL, error, d->user_data);
389 else
390 d->cb (operation, NULL, d->user_data);
391 }
392
393 cd->outstanding_requests = g_list_delete_link
394 (cd->outstanding_requests, lt);
395
396 free_dispatcher_request_data (d);
397 }
398 }
399 }
400
401 static void
402 dispatcher_channel_invalidated_cb (TpProxy *proxy,
403 guint domain,
404 gint code,
405 gchar *message,
406 EmpathyDispatcher *self)
407 {
408 /* Channel went away... */
161 got_connection_rcc (EmpathyDispatcher *self,
162 TpConnection *connection)
163 {
409164 EmpathyDispatcherPriv *priv = GET_PRIV (self);
410 TpConnection *connection;
165 TpCapabilities *caps;
411166 ConnectionData *cd;
412 const gchar *object_path;
413
414 connection = tp_channel_borrow_connection (TP_CHANNEL (proxy));
415
416 priv->channels = g_list_remove (priv->channels, proxy);
417
418 cd = g_hash_table_lookup (priv->connections, connection);
419 /* Connection itself invalidated? */
420 if (cd == NULL)
421 return;
422
423 object_path = tp_proxy_get_object_path (proxy);
424
425 DEBUG ("Channel %s invalidated", object_path);
426
427 g_hash_table_remove (cd->dispatched_channels, object_path);
428 g_hash_table_remove (cd->dispatching_channels, object_path);
429 }
430
431 static void
432 dispatch_operation_claimed_cb (EmpathyDispatchOperation *operation,
433 EmpathyDispatcher *self)
434 {
435 /* Our job is done, remove the dispatch operation and mark the channel as
436 * dispatched */
437 EmpathyDispatcherPriv *priv = GET_PRIV (self);
438 TpConnection *connection;
439 ConnectionData *cd;
440 const gchar *object_path;
441
442 connection = empathy_dispatch_operation_get_tp_connection (operation);
167 GList *requests, *l;
168 FindChannelRequest *request;
169 GList *retval;
170
171 caps = tp_connection_get_capabilities (connection);
172 g_assert (caps != NULL);
173
443174 cd = g_hash_table_lookup (priv->connections, connection);
444175 g_assert (cd != NULL);
445176
446 object_path = empathy_dispatch_operation_get_object_path (operation);
447
448 if (g_hash_table_lookup (cd->dispatched_channels, object_path) == NULL)
449 {
450 DispatchData *d;
451 d = new_dispatch_data (
452 empathy_dispatch_operation_get_channel (operation),
453 empathy_dispatch_operation_get_channel_wrapper (operation));
454 g_hash_table_insert (cd->dispatched_channels,
455 g_strdup (object_path), d);
456 }
457 g_hash_table_remove (cd->dispatching_channels, object_path);
458
459 DEBUG ("Channel claimed: %s", object_path);
460 }
461
462 static void
463 dispatch_operation_ready_cb (EmpathyDispatchOperation *operation,
464 EmpathyDispatcher *self)
465 {
466 EmpathyDispatcherPriv *priv = GET_PRIV (self);
467 TpConnection *connection;
468 ConnectionData *cd;
469 EmpathyDispatchOperationState status;
470
471 g_signal_connect (operation, "claimed",
472 G_CALLBACK (dispatch_operation_claimed_cb), self);
473
474 /* Signal the observers */
475 DEBUG ("Send to observers: %s",
476 empathy_dispatch_operation_get_object_path (operation));
477 g_signal_emit (self, signals[OBSERVE], 0, operation);
478
479 empathy_dispatch_operation_start (operation);
480
481 /* Signal potential requestors */
482 connection = empathy_dispatch_operation_get_tp_connection (operation);
483 cd = g_hash_table_lookup (priv->connections, connection);
484 g_assert (cd != NULL);
485
486 g_object_ref (operation);
487 g_object_ref (self);
488
489 dispatch_operation_flush_requests (self, operation, NULL, cd);
490 status = empathy_dispatch_operation_get_status (operation);
491 g_object_unref (operation);
492
493 if (status == EMPATHY_DISPATCHER_OPERATION_STATE_CLAIMED)
494 return;
495
496 g_assert (status == EMPATHY_DISPATCHER_OPERATION_STATE_DISPATCHING);
497 DEBUG ("Send of for dispatching: %s",
498 empathy_dispatch_operation_get_object_path (operation));
499 g_signal_emit (self, signals[DISPATCH], 0, operation);
500
501 g_object_unref (self);
502 }
503
504 static void
505 dispatcher_start_dispatching (EmpathyDispatcher *self,
506 EmpathyDispatchOperation *operation,
507 ConnectionData *cd)
508 {
509 const gchar *object_path =
510 empathy_dispatch_operation_get_object_path (operation);
511
512 DEBUG ("Dispatching process started for %s", object_path);
513
514 if (g_hash_table_lookup (cd->dispatching_channels, object_path) == NULL)
515 {
516 g_hash_table_insert (cd->dispatching_channels,
517 g_strdup (object_path), operation);
518
519 switch (empathy_dispatch_operation_get_status (operation))
520 {
521 case EMPATHY_DISPATCHER_OPERATION_STATE_PREPARING:
522 g_signal_connect (operation, "ready",
523 G_CALLBACK (dispatch_operation_ready_cb), self);
524 break;
525 case EMPATHY_DISPATCHER_OPERATION_STATE_PENDING:
526 dispatch_operation_ready_cb (operation, self);
527 break;
528 default:
529 g_assert_not_reached ();
530 }
531
532 }
533 else if (empathy_dispatch_operation_get_status (operation) >=
534 EMPATHY_DISPATCHER_OPERATION_STATE_PENDING)
535 {
536 /* Already dispatching and the operation is pending, thus the observers
537 * have seen it (if applicable), so we can flush the request right away.
538 */
539 dispatch_operation_flush_requests (self, operation, NULL, cd);
540 }
541 }
542
543 static void
544 dispatcher_connection_new_channel (EmpathyDispatcher *self,
545 TpConnection *connection,
546 const gchar *object_path,
547 const gchar *channel_type,
548 guint handle_type,
549 guint handle,
550 GHashTable *properties,
551 gboolean incoming,
552 const GPtrArray *requests_satisfied,
553 gint64 timestamp)
554 {
555 EmpathyDispatcherPriv *priv = GET_PRIV (self);
556 TpChannel *channel;
557 ConnectionData *cd;
558 EmpathyDispatchOperation *operation;
559 int i;
560 /* Channel types we never want to dispatch because they're either deprecated
561 * or can't sensibly be dispatch (e.g. channels that should always be
562 * requested) */
563 const char *blacklist[] = {
564 TP_IFACE_CHANNEL_TYPE_CONTACT_LIST,
565 TP_IFACE_CHANNEL_TYPE_TUBES,
566 TP_IFACE_CHANNEL_TYPE_ROOM_LIST,
567 NULL
568 };
569
570 dispatcher_init_connection_if_needed (self, connection);
571
572 cd = g_hash_table_lookup (priv->connections, connection);
573
574 for (i = 0 ; blacklist[i] != NULL; i++)
575 {
576 if (!tp_strdiff (channel_type, blacklist[i]))
577 {
578 DEBUG ("Ignoring blacklisted channel type %s on %s",
579 channel_type, object_path);
580 return;
581 }
582 }
583
584 DEBUG ("%s channel of type %s on %s", incoming ? "incoming" : "outgoing",
585 channel_type, object_path);
586
587 if (properties == NULL)
588 channel = tp_channel_new (connection, object_path, channel_type,
589 handle_type, handle, NULL);
590 else
591 channel = tp_channel_new_from_properties (connection, object_path,
592 properties, NULL);
593
594 g_signal_connect (channel, "invalidated",
595 G_CALLBACK (dispatcher_channel_invalidated_cb),
596 self);
597
598 priv->channels = g_list_prepend (priv->channels, channel);
599
600 operation = empathy_dispatch_operation_new (connection, channel, NULL,
601 incoming, timestamp);
602
603 g_object_unref (channel);
604
605 if (!incoming && requests_satisfied != NULL)
606 {
607 GList *l;
608 gboolean found = FALSE;
609
610 l = cd->outstanding_requests;
611
612 while (l != NULL)
613 {
614 DispatcherRequestData *d = (DispatcherRequestData *) l->data;
615 guint n;
616 const gchar *path;
617
618 l = g_list_next (l);
619 if (d->request == NULL)
620 continue;
621
622 if (d->operation != NULL)
623 continue;
624
625 path = tp_proxy_get_object_path (d->channel_request);
626 for (n = 0; n < requests_satisfied->len ; n++)
627 {
628 const gchar *p = g_ptr_array_index (requests_satisfied, n);
629 if (!tp_strdiff (p, path))
630 {
631 DEBUG ("Channel satified request %s"
632 "(already dispatched: %d)", p, found);
633 if (!found)
634 {
635 d->operation = operation;
636 found = TRUE;
637 continue;
638 }
639 else
640 {
641 GError err = { TP_ERRORS, TP_ERROR_NOT_YOURS,
642 "Not yours!" };
643 dispatcher_request_failed (dispatcher, d, &err);
644 }
645 }
646 }
647 }
648 }
649
650 dispatcher_start_dispatching (dispatcher, operation, cd);
651 }
652
653 static void
654 dispatcher_connection_new_channel_with_properties (
655 EmpathyDispatcher *self,
656 TpConnection *connection,
657 const gchar *object_path,
658 GHashTable *properties,
659 const GPtrArray *requests_satisfied,
660 gint64 timestamp)
661 {
662 const gchar *channel_type;
663 guint handle_type;
664 guint handle;
665 gboolean requested;
666 gboolean valid;
667
668 channel_type = tp_asv_get_string (properties,
669 TP_IFACE_CHANNEL ".ChannelType");
670 if (channel_type == NULL)
671 {
672 g_message ("%s had an invalid ChannelType property", object_path);
673 return;
674 }
675
676 handle_type = tp_asv_get_uint32 (properties,
677 TP_IFACE_CHANNEL ".TargetHandleType", &valid);
678 if (!valid)
679 {
680 g_message ("%s had an invalid TargetHandleType property", object_path);
681 return;
682 }
683
684 handle = tp_asv_get_uint32 (properties,
685 TP_IFACE_CHANNEL ".TargetHandle", &valid);
686 if (!valid)
687 {
688 g_message ("%s had an invalid TargetHandle property", object_path);
689 return;
690 }
691
692 /* We assume there is no channel dispather, so we're the only one dispatching
693 * it. Which means that a requested channel it is outgoing one */
694 requested = tp_asv_get_boolean (properties,
695 TP_IFACE_CHANNEL ".Requested", &valid);
696 if (!valid)
697 {
698 g_message ("%s had an invalid Requested property", object_path);
699 requested = FALSE;
700 }
701
702 dispatcher_connection_new_channel (self, connection,
703 object_path, channel_type, handle_type, handle, properties, !requested,
704 requests_satisfied, timestamp);
705 }
706
707 static void
708 dispatcher_connection_got_all (TpProxy *proxy,
709 GHashTable *properties,
710 const GError *error,
711 gpointer user_data,
712 GObject *object)
713 {
714 EmpathyDispatcher *self = EMPATHY_DISPATCHER (object);
715 EmpathyDispatcherPriv *priv = GET_PRIV (self);
716 GPtrArray *requestable_channels;
717
718 if (error) {
719 DEBUG ("Error: %s", error->message);
720 return;
721 }
722
723 requestable_channels = tp_asv_get_boxed (properties,
724 "RequestableChannelClasses", TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST);
725
726 if (requestable_channels == NULL)
727 DEBUG ("No RequestableChannelClasses property !?! on connection");
728 else
729 {
730 ConnectionData *cd;
731 GList *requests, *l;
732 FindChannelRequest *request;
733 GList *retval;
734
735 cd = g_hash_table_lookup (priv->connections, proxy);
736 g_assert (cd != NULL);
737
738 cd->requestable_channels = g_boxed_copy (
739 TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST, requestable_channels);
740
741 requests = g_hash_table_lookup (priv->outstanding_classes_requests,
742 proxy);
743
744 for (l = requests; l != NULL; l = l->next)
745 {
746 request = l->data;
747
748 retval = empathy_dispatcher_find_channel_classes (self,
749 TP_CONNECTION (proxy), request->channel_type,
750 request->handle_type, request->properties);
751 request->callback (retval, request->user_data);
752
753 free_find_channel_request (request);
754 g_list_free (retval);
755 }
756
757 g_list_free (requests);
758
759 g_hash_table_remove (priv->outstanding_classes_requests, proxy);
760 }
761 }
762
763 static void
764 connection_ready_cb (TpConnection *connection,
765 const GError *error,
177 cd->requestable_channels = g_boxed_copy (
178 TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST,
179 tp_capabilities_get_channel_classes (caps));
180
181 requests = g_hash_table_lookup (priv->outstanding_classes_requests,
182 connection);
183
184 for (l = requests; l != NULL; l = l->next)
185 {
186 request = l->data;
187
188 retval = empathy_dispatcher_find_channel_classes (self,
189 connection, request->channel_type,
190 request->handle_type, request->properties);
191 request->callback (retval, request->user_data);
192
193 free_find_channel_request (request);
194 g_list_free (retval);
195 }
196
197 g_list_free (requests);
198
199 g_hash_table_remove (priv->outstanding_classes_requests, connection);
200 }
201
202 static void
203 connection_prepare_cb (GObject *source,
204 GAsyncResult *result,
766205 gpointer user_data)
767206 {
768207 EmpathyDispatcher *self = EMPATHY_DISPATCHER (user_data);
769
770 if (error != NULL)
208 GError *error = NULL;
209 TpConnection *connection = (TpConnection *) source;
210
211 if (!tp_proxy_prepare_finish (source, result, &error))
771212 {
772213 DEBUG ("Error: %s", error->message);
214
215 g_error_free (error);
773216 goto out;
774217 }
775218
776 tp_cli_dbus_properties_call_get_all (connection, -1,
777 TP_IFACE_CONNECTION_INTERFACE_REQUESTS, dispatcher_connection_got_all,
778 NULL, NULL, G_OBJECT (self));
219 got_connection_rcc (self, connection);
779220
780221 out:
781222 g_object_unref (self);
786227 TpConnection *connection)
787228 {
788229 EmpathyDispatcherPriv *priv = GET_PRIV (self);
230 GQuark features[] = { TP_CONNECTION_FEATURE_CORE,
231 TP_CONNECTION_FEATURE_CAPABILITIES,
232 0 };
789233
790234 if (g_hash_table_lookup (priv->connections, connection) != NULL)
791235 return;
796240 g_signal_connect (connection, "invalidated",
797241 G_CALLBACK (dispatcher_connection_invalidated_cb), self);
798242
799 /* Ensure to keep the self object alive while the call_when_ready is
800 * running */
243 /* Ensure to keep the self object alive while preparing the connection */
801244 g_object_ref (self);
802 tp_connection_call_when_ready (connection, connection_ready_cb, self);
245
246 tp_proxy_prepare_async (connection, features, connection_prepare_cb, self);
803247 }
804248
805249 static void
847291
848292 priv = GET_PRIV (dispatcher);
849293
850 if (priv->handler == NULL)
851 priv->handler = empathy_handler_new (NULL, NULL, NULL);
852
853 empathy_handler_set_handle_channels_func (priv->handler,
854 empathy_dispatcher_handle_channels,
855 dispatcher);
856
857 empathy_handler_set_channels_func (priv->handler,
858 empathy_dispatcher_get_channels,
859 dispatcher);
860
861294 return retval;
862295 }
863296
867300 EmpathyDispatcherPriv *priv = GET_PRIV (object);
868301 GHashTableIter iter;
869302 gpointer connection;
870 GList *l;
871303
872304 if (priv->dispose_has_run)
873305 return;
874306
875307 priv->dispose_has_run = TRUE;
876308
877 for (l = priv->handlers ; l != NULL; l = g_list_next (l))
878 g_object_unref (G_OBJECT (l->data));
879
880 g_list_free (priv->handlers);
881 priv->handlers = NULL;
882
883 if (priv->handler != NULL)
884 g_object_unref (priv->handler);
885 priv->handler = NULL;
886
887309 g_hash_table_iter_init (&iter, priv->connections);
888310 while (g_hash_table_iter_next (&iter, &connection, NULL))
889311 {
894316 g_hash_table_destroy (priv->connections);
895317 priv->connections = NULL;
896318
897 if (priv->channel_dispatcher != NULL)
898 g_object_unref (priv->channel_dispatcher);
899 priv->channel_dispatcher = NULL;
900
901 if (priv->dbus != NULL)
902 g_object_unref (priv->dbus);
903 priv->dbus = NULL;
904
905319 G_OBJECT_CLASS (empathy_dispatcher_parent_class)->dispose (object);
906320 }
907321
909323 dispatcher_finalize (GObject *object)
910324 {
911325 EmpathyDispatcherPriv *priv = GET_PRIV (object);
912 GList *l;
913326 GHashTableIter iter;
914327 gpointer connection;
915328 GList *list;
922335 g_hash_table_destroy (priv->request_channel_class_async_ids);
923336 }
924337
925 for (l = priv->channels; l; l = l->next)
926 {
927 g_signal_handlers_disconnect_by_func (l->data,
928 dispatcher_channel_invalidated_cb, object);
929 }
930
931 g_list_free (priv->channels);
932
933338 g_hash_table_iter_init (&iter, priv->outstanding_classes_requests);
934339 while (g_hash_table_iter_next (&iter, &connection, (gpointer *) &list))
935340 {
950355 }
951356
952357 static void
953 dispatcher_set_property (GObject *object,
954 guint property_id,
955 const GValue *value,
956 GParamSpec *pspec)
957 {
958 EmpathyDispatcher *self = EMPATHY_DISPATCHER (object);
959 EmpathyDispatcherPriv *priv = GET_PRIV (self);
960
961 switch (property_id)
962 {
963 case PROP_HANDLER:
964 priv->handler = g_value_dup_object (value);
965 break;
966 default:
967 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
968 break;
969 }
970 }
971
972 static void
973 dispatcher_get_property (GObject *object,
974 guint property_id,
975 GValue *value,
976 GParamSpec *pspec)
977 {
978 EmpathyDispatcher *self = EMPATHY_DISPATCHER (object);
979 EmpathyDispatcherPriv *priv = GET_PRIV (self);
980
981 switch (property_id)
982 {
983 case PROP_HANDLER:
984 g_value_set_object (value, priv->handler);
985 break;
986 default:
987 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
988 break;
989 }
990 }
991
992 static void
993358 empathy_dispatcher_class_init (EmpathyDispatcherClass *klass)
994359 {
995360 GObjectClass *object_class = G_OBJECT_CLASS (klass);
996 GParamSpec *param_spec;
997361
998362 object_class->dispose = dispatcher_dispose;
999363 object_class->finalize = dispatcher_finalize;
1000364 object_class->constructor = dispatcher_constructor;
1001
1002 object_class->get_property = dispatcher_get_property;
1003 object_class->set_property = dispatcher_set_property;
1004
1005 param_spec = g_param_spec_object ("handler", "handler",
1006 "The main Telepathy Client Hander object",
1007 EMPATHY_TYPE_HANDLER,
1008 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
1009 g_object_class_install_property (object_class,
1010 PROP_HANDLER, param_spec);
1011
1012 signals[OBSERVE] =
1013 g_signal_new ("observe",
1014 G_TYPE_FROM_CLASS (klass),
1015 G_SIGNAL_RUN_LAST,
1016 0,
1017 NULL, NULL,
1018 g_cclosure_marshal_VOID__OBJECT,
1019 G_TYPE_NONE,
1020 1, EMPATHY_TYPE_DISPATCH_OPERATION);
1021
1022 signals[DISPATCH] =
1023 g_signal_new ("dispatch",
1024 G_TYPE_FROM_CLASS (klass),
1025 G_SIGNAL_RUN_LAST,
1026 0,
1027 NULL, NULL,
1028 g_cclosure_marshal_VOID__OBJECT,
1029 G_TYPE_NONE,
1030 1, EMPATHY_TYPE_DISPATCH_OPERATION);
1031
1032365
1033366 g_type_class_add_private (object_class, sizeof (EmpathyDispatcherPriv));
1034367 }
1132465 priv->outstanding_classes_requests = g_hash_table_new_full (g_direct_hash,
1133466 g_direct_equal, g_object_unref, NULL);
1134467
1135 priv->channels = NULL;
1136
1137468 tp_account_manager_prepare_async (priv->account_manager, NULL,
1138469 account_manager_prepared_cb, self);
1139470
1145476 g_direct_equal);
1146477 priv->status_changed_handlers = g_hash_table_new_full (NULL, NULL,
1147478 (GDestroyNotify) g_object_unref, NULL);
1148
1149 priv->dbus = tp_dbus_daemon_dup (NULL);
1150 priv->channel_dispatcher = tp_channel_dispatcher_new (priv->dbus);
1151 }
1152
1153 EmpathyDispatcher *
1154 empathy_dispatcher_new (const gchar *name,
1155 GPtrArray *filters,
1156 GStrv capabilities)
1157 {
1158 EmpathyHandler *handler;
1159 EmpathyDispatcher *ret;
1160
1161 g_assert (dispatcher == NULL);
1162 handler = empathy_handler_new (name, filters, capabilities);
1163
1164 ret = EMPATHY_DISPATCHER (
1165 g_object_new (EMPATHY_TYPE_DISPATCHER,
1166 "handler", handler,
1167 NULL));
1168 g_object_unref (handler);
1169
1170 return ret;
1171479 }
1172480
1173481 EmpathyDispatcher *
1176484 return EMPATHY_DISPATCHER (g_object_new (EMPATHY_TYPE_DISPATCHER, NULL));
1177485 }
1178486
1179 static void
1180 dispatcher_request_failed (EmpathyDispatcher *self,
1181 DispatcherRequestData *request_data,
1182 const GError *error)
1183 {
1184 EmpathyDispatcherPriv *priv = GET_PRIV (self);
1185 ConnectionData *conn_data;
1186
1187 conn_data = g_hash_table_lookup (priv->connections,
1188 request_data->connection);
1189 if (request_data->cb != NULL)
1190 request_data->cb (NULL, error, request_data->user_data);
1191
1192 if (conn_data != NULL)
1193 {
1194 conn_data->outstanding_requests =
1195 g_list_remove (conn_data->outstanding_requests, request_data);
1196 }
1197 /* else Connection has been invalidated */
1198
1199 free_dispatcher_request_data (request_data);
1200 }
1201
1202 static void
1203 dispatcher_request_channel (DispatcherRequestData *request_data)
1204 {
1205 /* Extend the request_data to be a valid request */
1206 g_assert (request_data->request == NULL);
1207 request_data->request = tp_asv_new (
1208 TP_IFACE_CHANNEL ".ChannelType",
1209 G_TYPE_STRING, request_data->channel_type,
1210 TP_IFACE_CHANNEL ".TargetHandleType",
1211 G_TYPE_UINT, request_data->handle_type,
1212 NULL);
1213
1214 if (request_data->handle_type != TP_HANDLE_TYPE_NONE)
1215 tp_asv_set_uint32 (request_data->request, TP_IFACE_CHANNEL ".TargetHandle",
1216 request_data->handle);
1217
1218 empathy_dispatcher_call_create_or_ensure_channel (request_data->dispatcher,
1219 request_data);
1220 }
1221
1222487 void
1223488 empathy_dispatcher_chat_with_contact (EmpathyContact *contact,
1224 gint64 timestamp,
1225 EmpathyDispatcherRequestCb *callback,
1226 gpointer user_data)
1227 {
1228 EmpathyDispatcher *self;
1229 EmpathyDispatcherPriv *priv;
1230 TpConnection *connection;
1231 ConnectionData *connection_data;
1232 DispatcherRequestData *request_data;
1233
1234 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
1235
1236 self = empathy_dispatcher_dup_singleton ();
1237 priv = GET_PRIV (self);
1238
1239 connection = empathy_contact_get_connection (contact);
1240 connection_data = g_hash_table_lookup (priv->connections, connection);
1241 if (connection_data == NULL)
1242 {
1243 /* Connection has been invalidated */
1244 if (callback != NULL)
1245 {
1246 GError error = { TP_DBUS_ERRORS, TP_DBUS_ERROR_PROXY_UNREFERENCED,
1247 "Connection has been invalidated" };
1248 callback (NULL, &error, user_data);
1249 }
1250 goto out;
1251 }
1252
1253 /* The contact handle might not be known yet */
1254 request_data = new_dispatcher_request_data (self, connection,
1255 TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_CONTACT,
1256 empathy_contact_get_handle (contact), NULL, timestamp, contact,
1257 callback, user_data);
1258 request_data->should_ensure = TRUE;
1259
1260 connection_data->outstanding_requests = g_list_prepend
1261 (connection_data->outstanding_requests, request_data);
1262
1263 dispatcher_request_channel (request_data);
1264
1265 out:
1266 g_object_unref (self);
1267 }
1268
1269 typedef struct
1270 {
1271 EmpathyDispatcher *dispatcher;
1272 EmpathyDispatcherRequestCb *callback;
1273 gpointer user_data;
1274 gint64 timestamp;
1275 } ChatWithContactIdData;
1276
1277 static void
1278 dispatcher_chat_with_contact_id_cb (TpConnection *connection,
1279 EmpathyContact *contact,
1280 const GError *error,
1281 gpointer user_data,
1282 GObject *weak_object)
1283 {
1284 ChatWithContactIdData *data = user_data;
1285
1286 if (error)
1287 {
1288 DEBUG ("Error: %s", error->message);
1289
1290 if (data->callback != NULL)
1291 {
1292 data->callback (NULL, error, data->user_data);
1293 }
1294 }
1295 else
1296 {
1297 empathy_dispatcher_chat_with_contact (contact, data->timestamp,
1298 data->callback, data->user_data);
1299 }
1300
1301 g_object_unref (data->dispatcher);
1302 g_slice_free (ChatWithContactIdData, data);
489 gint64 timestamp)
490 {
491 empathy_dispatcher_chat_with_contact_id (
492 empathy_contact_get_account (contact), empathy_contact_get_id (contact),
493 timestamp);
494 }
495
496 static void
497 ensure_text_channel_cb (GObject *source,
498 GAsyncResult *result,
499 gpointer user_data)
500 {
501 GError *error = NULL;
502
503 if (!tp_account_channel_request_ensure_channel_finish (
504 TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error))
505 {
506 DEBUG ("Failed to ensure text channel: %s", error->message);
507 g_error_free (error);
508 }
1303509 }
1304510
1305511 void
1306 empathy_dispatcher_chat_with_contact_id (TpConnection *connection,
1307 const gchar *contact_id,
1308 gint64 timestamp,
1309 EmpathyDispatcherRequestCb *callback,
1310 gpointer user_data)
1311 {
1312 EmpathyDispatcher *self;
1313 ChatWithContactIdData *data;
1314
1315 g_return_if_fail (TP_IS_CONNECTION (connection));
1316 g_return_if_fail (!EMP_STR_EMPTY (contact_id));
1317
1318 self = empathy_dispatcher_dup_singleton ();
1319 data = g_slice_new0 (ChatWithContactIdData);
1320 data->dispatcher = self;
1321 data->callback = callback;
1322 data->user_data = user_data;
1323 data->timestamp = timestamp;
1324 empathy_tp_contact_factory_get_from_id (connection, contact_id,
1325 dispatcher_chat_with_contact_id_cb, data, NULL, NULL);
1326 }
1327
1328 static void
1329 dispatcher_request_handles_cb (TpConnection *connection,
1330 const GArray *handles,
1331 const GError *error,
1332 gpointer user_data,
1333 GObject *object)
1334 {
1335 DispatcherRequestData *request_data = (DispatcherRequestData *) user_data;
1336
1337 request_data->pending_call = NULL;
1338
1339 if (error != NULL)
1340 {
1341 EmpathyDispatcher *self = request_data->dispatcher;
1342 EmpathyDispatcherPriv *priv = GET_PRIV (self);
1343 ConnectionData *cd;
1344
1345 cd = g_hash_table_lookup (priv->connections, request_data->connection);
1346
1347 if (request_data->cb)
1348 request_data->cb (NULL, error, request_data->user_data);
1349
1350 cd->outstanding_requests = g_list_remove (cd->outstanding_requests,
1351 request_data);
1352
1353 free_dispatcher_request_data (request_data);
1354 return;
1355 }
1356
1357 request_data->handle = g_array_index (handles, guint, 0);
1358 dispatcher_request_channel (request_data);
512 empathy_dispatcher_chat_with_contact_id (TpAccount *account,
513 const gchar *contact_id,
514 gint64 timestamp)
515 {
516 GHashTable *request;
517 TpAccountChannelRequest *req;
518
519 request = tp_asv_new (
520 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
521 TP_IFACE_CHANNEL_TYPE_TEXT,
522 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
523 TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, contact_id,
524 NULL);
525
526 req = tp_account_channel_request_new (account, request, timestamp);
527
528 tp_account_channel_request_ensure_channel_async (req, NULL, NULL,
529 ensure_text_channel_cb, NULL);
530
531 g_hash_table_unref (request);
532 g_object_unref (req);
1359533 }
1360534
1361535 void
1362 empathy_dispatcher_join_muc (TpConnection *connection,
1363 const gchar *roomname,
1364 gint64 timestamp)
1365 {
1366 EmpathyDispatcher *self;
1367 EmpathyDispatcherPriv *priv;
1368 DispatcherRequestData *request_data;
1369 ConnectionData *connection_data;
1370 const gchar *names[] = { roomname, NULL };
1371 TpProxyPendingCall *call;
1372
1373 g_return_if_fail (TP_IS_CONNECTION (connection));
1374 g_return_if_fail (!EMP_STR_EMPTY (roomname));
1375
1376 self = empathy_dispatcher_dup_singleton ();
1377 priv = GET_PRIV (self);
1378
1379 connection_data = g_hash_table_lookup (priv->connections, connection);
1380 g_assert (connection_data != NULL);
1381
1382 /* Don't know the room handle yet */
1383 request_data = new_dispatcher_request_data (self, connection,
1384 TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_ROOM, 0, NULL, timestamp,
1385 NULL, NULL, NULL);
1386 request_data->should_ensure = TRUE;
1387
1388 connection_data->outstanding_requests = g_list_prepend
1389 (connection_data->outstanding_requests, request_data);
1390
1391 call = tp_cli_connection_call_request_handles (
1392 connection, -1,
1393 TP_HANDLE_TYPE_ROOM, names,
1394 dispatcher_request_handles_cb, request_data, NULL, NULL);
1395
1396 if (call != NULL)
1397 request_data->pending_call = call;
1398
1399 g_object_unref (self);
1400 }
1401
1402 static void
1403 dispatcher_channel_request_failed_cb (TpChannelRequest *request,
1404 const gchar *error,
1405 const gchar *message,
1406 gpointer user_data,
1407 GObject *weak_object)
1408 {
1409 DispatcherRequestData *request_data = (DispatcherRequestData *) user_data;
1410 EmpathyDispatcher *self =
1411 EMPATHY_DISPATCHER (request_data->dispatcher);
1412 GError *err = NULL;
1413
1414 request_data->pending_call = NULL;
1415
1416 DEBUG ("Request failed: %s - %s %s",
1417 tp_proxy_get_object_path (request),
1418 error, message);
1419
1420 tp_proxy_dbus_error_to_gerror (TP_PROXY (request),
1421 error, message, &err);
1422
1423 dispatcher_request_failed (self, request_data, err);
1424
1425 g_error_free (err);
1426 }
1427
1428 static void
1429 dispatcher_channel_request_succeeded_cb (TpChannelRequest *request,
1430 gpointer user_data,
1431 GObject *weak_object)
1432 {
1433 EmpathyDispatcher *self = EMPATHY_DISPATCHER (weak_object);
1434 EmpathyDispatcherPriv *priv = GET_PRIV (dispatcher);
1435 DispatcherRequestData *request_data = (DispatcherRequestData *) user_data;
1436 ConnectionData *conn_data;
1437
1438 conn_data = g_hash_table_lookup (priv->connections,
1439 request_data->connection);
1440
1441 DEBUG ("Request succeeded: %s", tp_proxy_get_object_path (request));
1442
1443 /* When success gets called the internal request should have been satisfied,
1444 * if it's still in outstanding_requests and doesn't have an operation
1445 * assigned to it, the channel got handled by someone else.. */
1446
1447 if (g_list_find (conn_data->outstanding_requests, request_data) == NULL)
1448 return;
1449
1450 if (request_data->operation == NULL)
1451 {
1452 GError err = { TP_ERRORS, TP_ERROR_NOT_YOURS, "Not yours!" };
1453 dispatcher_request_failed (self, request_data, &err);
1454 }
1455 }
1456
1457 static void
1458 dispatcher_channel_request_proceed_cb (TpChannelRequest *request,
1459 const GError *error,
1460 gpointer user_data,
1461 GObject *weak_object)
1462 {
1463 EmpathyDispatcher *self = EMPATHY_DISPATCHER (weak_object);
1464 DispatcherRequestData *request_data = (DispatcherRequestData *) user_data;
1465
1466 request_data->pending_call = NULL;
1467
1468 if (error != NULL)
1469 dispatcher_request_failed (self, request_data, error);
1470 }
1471
1472 static void
1473 dispatcher_create_channel_cb (TpChannelDispatcher *proxy,
1474 const gchar *request_path,
1475 const GError *error,
1476 gpointer user_data,
1477 GObject *weak_object)
1478 {
1479 DispatcherRequestData *request_data = (DispatcherRequestData *) user_data;
1480 EmpathyDispatcher *self = EMPATHY_DISPATCHER (request_data->dispatcher);
1481 EmpathyDispatcherPriv *priv = GET_PRIV (dispatcher);
1482 TpChannelRequest *request;
1483 GError *err = NULL;
1484 TpProxyPendingCall *call;
1485
1486 request_data->pending_call = NULL;
1487
1488 if (error != NULL)
1489 {
1490 dispatcher_request_failed (self, request_data, error);
1491 return;
1492 }
1493
1494 request = tp_channel_request_new (priv->dbus, request_path, NULL, NULL);
1495 request_data->channel_request = request;
1496
1497 if (tp_cli_channel_request_connect_to_failed (request,
1498 dispatcher_channel_request_failed_cb, request_data,
1499 NULL, G_OBJECT (self), &err) == NULL)
1500 {
1501 dispatcher_request_failed (self, request_data, err);
1502 g_error_free (err);
1503 return;
1504 }
1505
1506 if (tp_cli_channel_request_connect_to_succeeded (request,
1507 dispatcher_channel_request_succeeded_cb, request_data,
1508 NULL, G_OBJECT (self), &err) == NULL)
1509 {
1510 dispatcher_request_failed (self, request_data, err);
1511 g_error_free (err);
1512 return;
1513 }
1514
1515 call = tp_cli_channel_request_call_proceed (request,
1516 -1, dispatcher_channel_request_proceed_cb,
1517 request_data, NULL, G_OBJECT (self));
1518
1519 if (call != NULL)
1520 request_data->pending_call = call;
1521 }
1522
1523 static void
1524 empathy_dispatcher_call_create_or_ensure_channel (
1525 EmpathyDispatcher *self,
1526 DispatcherRequestData *request_data)
1527 {
1528 EmpathyDispatcherPriv *priv = GET_PRIV (dispatcher);
1529 TpAccount *account;
1530 const gchar *handler = "";
1531 TpProxyPendingCall *call;
1532
1533 account = empathy_get_account_for_connection (request_data->connection);
1534
1535 g_assert (account != NULL);
1536
1537 if (request_data->cb)
1538 handler = empathy_handler_get_busname (priv->handler);
1539
1540 if (request_data->should_ensure)
1541 {
1542 call = tp_cli_channel_dispatcher_call_ensure_channel (
1543 priv->channel_dispatcher,
1544 -1, tp_proxy_get_object_path (TP_PROXY (account)),
1545 request_data->request, request_data->timestamp, handler,
1546 dispatcher_create_channel_cb, request_data, NULL, NULL);
1547 }
1548 else
1549 {
1550 call = tp_cli_channel_dispatcher_call_create_channel (
1551 priv->channel_dispatcher,
1552 -1, tp_proxy_get_object_path (TP_PROXY (account)),
1553 request_data->request, request_data->timestamp, handler,
1554 dispatcher_create_channel_cb, request_data, NULL,
1555 G_OBJECT (dispatcher));
1556 }
1557
1558 if (call != NULL)
1559 request_data->pending_call = call;
1560 }
1561
1562 /**
1563 * empathy_dispatcher_create_channel:
1564 * @self: the EmpathyDispatcher
1565 * @connection: the Connection to dispatch on
1566 * @request: an a{sv} map of properties for the request, i.e. using tp_asv_new()
1567 * @callback: a callback for when the channel arrives (or NULL)
1568 * @user_data: optional user data (or NULL)
1569 *
1570 * When calling this function, #EmpathyDispatcher takes ownership of your
1571 * reference to @request. DO NOT unref or destroy @request. When the request is
1572 * done, @request will be unreferenced. Take another reference if you want to
1573 * keep it around.
1574 */
1575 void
1576 empathy_dispatcher_create_channel (EmpathyDispatcher *self,
1577 TpConnection *connection,
1578 GHashTable *request,
1579 gint64 timestamp,
1580 EmpathyDispatcherRequestCb *callback,
1581 gpointer user_data)
1582 {
1583 EmpathyDispatcherPriv *priv = GET_PRIV (self);
1584 ConnectionData *connection_data;
1585 DispatcherRequestData *request_data;
1586 const gchar *channel_type;
1587 guint handle_type;
1588 guint handle;
1589 gboolean valid;
1590
1591 g_return_if_fail (EMPATHY_IS_DISPATCHER (self));
1592 g_return_if_fail (TP_IS_CONNECTION (connection));
1593 g_return_if_fail (request != NULL);
1594
1595 connection_data = g_hash_table_lookup (priv->connections, connection);
1596 g_assert (connection_data != NULL);
1597
1598 channel_type = tp_asv_get_string (request, TP_IFACE_CHANNEL ".ChannelType");
1599
1600 handle_type = tp_asv_get_uint32 (request,
1601 TP_IFACE_CHANNEL ".TargetHandleType", &valid);
1602 if (!valid)
1603 handle_type = TP_UNKNOWN_HANDLE_TYPE;
1604
1605 handle = tp_asv_get_uint32 (request, TP_IFACE_CHANNEL ".TargetHandle", NULL);
1606
1607 request_data = new_dispatcher_request_data (self, connection,
1608 channel_type, handle_type, handle, request, timestamp,
1609 NULL, callback, user_data);
1610
1611 connection_data->outstanding_requests = g_list_prepend
1612 (connection_data->outstanding_requests, request_data);
1613
1614 empathy_dispatcher_call_create_or_ensure_channel (self, request_data);
536 empathy_dispatcher_join_muc (TpAccount *account,
537 const gchar *room_name,
538 gint64 timestamp)
539 {
540 GHashTable *request;
541 TpAccountChannelRequest *req;
542
543 request = tp_asv_new (
544 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
545 TP_IFACE_CHANNEL_TYPE_TEXT,
546 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_ROOM,
547 TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, room_name,
548 NULL);
549
550 req = tp_account_channel_request_new (account, request, timestamp);
551
552 tp_account_channel_request_ensure_channel_async (req, NULL, NULL,
553 ensure_text_channel_cb, NULL);
554
555 g_hash_table_unref (request);
556 g_object_unref (req);
1615557 }
1616558
1617559 static gboolean
1940882 g_hash_table_insert (priv->request_channel_class_async_ids,
1941883 request, GUINT_TO_POINTER (source_id));
1942884 }
1943
1944 static GList *
1945 empathy_dispatcher_get_channels (EmpathyHandler *handler,
1946 gpointer user_data)
1947 {
1948 EmpathyDispatcher *self = EMPATHY_DISPATCHER (user_data);
1949 EmpathyDispatcherPriv *priv = GET_PRIV (self);
1950
1951 return priv->channels;
1952 }
1953
1954 static gboolean
1955 empathy_dispatcher_handle_channels (EmpathyHandler *handler,
1956 const gchar *account_path,
1957 const gchar *connection_path,
1958 const GPtrArray *channels,
1959 const GPtrArray *requests_satisfied,
1960 guint64 timestamp,
1961 GHashTable *handler_info,
1962 gpointer user_data,
1963 GError **error)
1964 {
1965 EmpathyDispatcher *self = EMPATHY_DISPATCHER (user_data);
1966 EmpathyDispatcherPriv *priv = GET_PRIV (self);
1967 guint i;
1968 TpAccount *account;
1969 TpConnection *connection;
1970
1971 /* FIXME: should probably find out whether the account manager is prepared
1972 * before ensuring. See bug #600111. */
1973 account = tp_account_manager_ensure_account (priv->account_manager,
1974 account_path);
1975 g_assert (account != NULL);
1976
1977 connection = tp_account_ensure_connection (account, connection_path);
1978 if (connection == NULL)
1979 {
1980 g_set_error_literal (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
1981 "Invalid connection argument");
1982 return FALSE;
1983 }
1984
1985 for (i = 0; i < channels->len ; i++)
1986 {
1987 GValueArray *arr = g_ptr_array_index (channels, i);
1988 const gchar *object_path;
1989 GHashTable *properties;
1990
1991 object_path = g_value_get_boxed (g_value_array_get_nth (arr, 0));
1992 properties = g_value_get_boxed (g_value_array_get_nth (arr, 1));
1993
1994 dispatcher_connection_new_channel_with_properties (self,
1995 connection, object_path, properties, requests_satisfied, timestamp);
1996 }
1997
1998 return TRUE;
1999 }
2000
2001
2002 EmpathyHandler *
2003 empathy_dispatcher_add_handler (EmpathyDispatcher *self,
2004 const gchar *name,
2005 GPtrArray *filters,
2006 GStrv capabilities)
2007 {
2008 EmpathyDispatcherPriv *priv = GET_PRIV (self);
2009 EmpathyHandler *handler;
2010
2011 handler = empathy_handler_new (name, filters, capabilities);
2012 priv->handlers = g_list_prepend (priv->handlers, handler);
2013
2014 /* Only set the handle_channels function, the Channel property on the main
2015 * handler will always report all dispatched channels even if they came from
2016 * a different Handler */
2017 empathy_handler_set_handle_channels_func (handler,
2018 empathy_dispatcher_handle_channels, self);
2019
2020 return handler;
2021 }
2022
2023 void
2024 empathy_dispatcher_remove_handler (EmpathyDispatcher *self,
2025 EmpathyHandler *handler)
2026 {
2027 EmpathyDispatcherPriv *priv = GET_PRIV (self);
2028 GList *h;
2029
2030 h = g_list_find (priv->handlers, handler);
2031 g_return_if_fail (h != NULL);
2032
2033 priv->handlers = g_list_delete_link (priv->handlers, h);
2034
2035 g_object_unref (handler);
2036 }
2727 #include <telepathy-glib/channel.h>
2828
2929 #include "empathy-contact.h"
30 #include "empathy-handler.h"
31 #include "empathy-dispatch-operation.h"
3230
3331 G_BEGIN_DECLS
3432
3836 #define EMPATHY_IS_DISPATCHER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_DISPATCHER))
3937 #define EMPATHY_IS_DISPATCHER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_DISPATCHER))
4038 #define EMPATHY_DISPATCHER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_DISPATCHER, EmpathyDispatcherClass))
41
42 #define EMPATHY_DISPATCHER_NON_USER_ACTION (G_GINT64_CONSTANT (0))
43 #define EMPATHY_DISPATCHER_CURRENT_TIME G_MAXINT64
4439
4540 typedef struct _EmpathyDispatcher EmpathyDispatcher;
4641 typedef struct _EmpathyDispatcherClass EmpathyDispatcherClass;
5651 GObjectClass parent_class;
5752 };
5853
59 /* Will be called when the channel is ready for dispatching. The requestor
60 * handle the channel itself by calling empathy_dispatch_operation_handles */
61 typedef void (EmpathyDispatcherRequestCb) (
62 EmpathyDispatchOperation *dispatch, const GError *error,
63 gpointer user_data);
6454 typedef void (EmpathyDispatcherFindChannelClassCb) (
6555 GList *channel_classes, gpointer user_data);
6656
6757 GType empathy_dispatcher_get_type (void) G_GNUC_CONST;
6858
69 void empathy_dispatcher_create_channel (EmpathyDispatcher *dispatcher,
70 TpConnection *connection,
71 GHashTable *request,
72 gint64 timestamp,
73 EmpathyDispatcherRequestCb *callback,
74 gpointer user_data);
59 /* Requesting 1 to 1 text channels */
60 void empathy_dispatcher_chat_with_contact_id (TpAccount *account,
61 const gchar *contact_id,
62 gint64 timestamp);
7563
76 /* Requesting 1 to 1 text channels */
77 void empathy_dispatcher_chat_with_contact_id (TpConnection *connection,
78 const gchar *contact_id,
79 gint64 timestamp,
80 EmpathyDispatcherRequestCb *callback,
81 gpointer user_data);
8264 void empathy_dispatcher_chat_with_contact (EmpathyContact *contact,
83 gint64 timestamp,
84 EmpathyDispatcherRequestCb *callback,
85 gpointer user_data);
86
87 /* Request a file channel to a specific contact */
88 void empathy_dispatcher_send_file_to_contact (EmpathyContact *contact,
89 const gchar *filename, guint64 size, guint64 date,
90 const gchar *content_type, EmpathyDispatcherRequestCb *callback,
91 gpointer user_data);
65 gint64 timestamp);
9266
9367 /* Request a muc channel */
94 void empathy_dispatcher_join_muc (TpConnection *connection,
68 void empathy_dispatcher_join_muc (TpAccount *account,
9569 const gchar *roomname,
9670 gint64 timestamp);
9771
10680 const gchar *channel_type, guint handle_type,
10781 const char *first_property_name, ...);
10882
109 /* Create the dispatcher singleton */
110 EmpathyDispatcher * empathy_dispatcher_new (const gchar *name,
111 GPtrArray *filters,
112 GStrv capabilities);
113
114 EmpathyHandler *
115 empathy_dispatcher_add_handler (EmpathyDispatcher *dispatcher,
116 const gchar *name,
117 GPtrArray *filters,
118 GStrv capabilities);
119
120 void
121 empathy_dispatcher_remove_handler (EmpathyDispatcher *dispatcher,
122 EmpathyHandler *handler);
123
12483 /* Get the dispatcher singleton */
12584 EmpathyDispatcher * empathy_dispatcher_dup_singleton (void);
12685
2121 /* empathy-ft-factory.c */
2222
2323 #include <glib.h>
24
25 #include <telepathy-glib/telepathy-glib.h>
2426
2527 #include "empathy-ft-factory.h"
2628 #include "empathy-ft-handler.h"
5557 static EmpathyFTFactory *factory_singleton = NULL;
5658 static guint signals[LAST_SIGNAL] = { 0 };
5759
60 /* private structure */
61 typedef struct {
62 TpBaseClient *handler;
63 } EmpathyFTFactoryPriv;
64
65 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyFTFactory)
66
5867 static GObject *
5968 do_constructor (GType type,
6069 guint n_props,
7988 empathy_ft_factory_class_init (EmpathyFTFactoryClass *klass)
8089 {
8190 GObjectClass *object_class = G_OBJECT_CLASS (klass);
91
92 g_type_class_add_private (klass, sizeof (EmpathyFTFactoryPriv));
8293
8394 object_class->constructor = do_constructor;
8495
126137 }
127138
128139 static void
140 ft_handler_incoming_ready_cb (EmpathyFTHandler *handler,
141 GError *error,
142 gpointer user_data)
143 {
144 EmpathyFTFactory *factory = user_data;
145
146 g_signal_emit (factory, signals[NEW_INCOMING_TRANSFER], 0, handler, error);
147 }
148
149 static void
150 handle_channels_cb (TpSimpleHandler *handler,
151 TpAccount *account,
152 TpConnection *connection,
153 GList *channels,
154 GList *requests_satisfied,
155 gint64 user_action_time,
156 TpHandleChannelsContext *context,
157 gpointer user_data)
158 {
159 EmpathyFTFactory *self = user_data;
160 GList *l;
161
162 for (l = channels; l != NULL; l = g_list_next (l))
163 {
164 TpChannel *channel = l->data;
165 EmpathyTpFile *tp_file;
166
167 if (tp_proxy_get_invalidated (channel) != NULL)
168 continue;
169
170 if (tp_channel_get_channel_type_id (channel) !=
171 TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER)
172 continue;
173
174 tp_file = empathy_tp_file_new (channel);
175
176 /* We handle only incoming FT */
177 empathy_ft_handler_new_incoming (tp_file, ft_handler_incoming_ready_cb,
178 self);
179
180 g_object_unref (tp_file);
181 }
182
183
184 tp_handle_channels_context_accept (context);
185 }
186
187 static void
129188 empathy_ft_factory_init (EmpathyFTFactory *self)
130189 {
131 /* do nothing */
190 EmpathyFTFactoryPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
191 EMPATHY_TYPE_FT_FACTORY, EmpathyFTFactoryPriv);
192 TpDBusDaemon *dbus;
193 GError *error = NULL;
194
195 self->priv = priv;
196
197 dbus = tp_dbus_daemon_dup (&error);
198 if (dbus == NULL)
199 {
200 g_warning ("Failed to get TpDBusDaemon: %s", error->message);
201 g_error_free (error);
202 return;
203 }
204
205 priv->handler = tp_simple_handler_new (dbus, FALSE, FALSE,
206 "Empathy.FileTransfer", FALSE, handle_channels_cb, self, NULL);
207
208 tp_base_client_take_handler_filter (priv->handler, tp_asv_new (
209 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
210 TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER,
211 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
212 /* Only handle *incoming* channels as outgoing FT channels has to be
213 * handled by the requester. */
214 TP_PROP_CHANNEL_REQUESTED, G_TYPE_BOOLEAN, FALSE,
215 NULL));
216
217 g_object_unref (dbus);
132218 }
133219
134220 static void
139225 EmpathyFTFactory *factory = user_data;
140226
141227 g_signal_emit (factory, signals[NEW_FT_HANDLER], 0, handler, error);
142 }
143
144 static void
145 ft_handler_incoming_ready_cb (EmpathyFTHandler *handler,
146 GError *error,
147 gpointer user_data)
148 {
149 EmpathyFTFactory *factory = user_data;
150
151 g_signal_emit (factory, signals[NEW_INCOMING_TRANSFER], 0, handler, error);
152228 }
153229
154230 /* public methods */
190266 }
191267
192268 /**
193 * empathy_ft_factory_claim_channel:
194 * @factory: an #EmpathyFTFactory
195 * @operation: the #EmpathyDispatchOperation wrapping the channel
196 *
197 * Let the @factory claim the channel, starting the creation of a new
198 * incoming #EmpathyFTHandler.
199 */
200 void
201 empathy_ft_factory_claim_channel (EmpathyFTFactory *factory,
202 EmpathyDispatchOperation *operation)
203 {
204 EmpathyTpFile *tp_file;
205
206 g_return_if_fail (EMPATHY_IS_FT_FACTORY (factory));
207 g_return_if_fail (EMPATHY_IS_DISPATCH_OPERATION (operation));
208
209 /* own a reference to the EmpathyTpFile */
210 tp_file = EMPATHY_TP_FILE
211 ((empathy_dispatch_operation_get_channel_wrapper (operation)));
212
213 empathy_ft_handler_new_incoming (tp_file, ft_handler_incoming_ready_cb,
214 factory);
215
216 empathy_dispatch_operation_claim (operation);
217 }
218
219 /**
220269 * empathy_ft_factory_set_destination_for_incoming_handler:
221270 * @factory: an #EmpathyFTFactory
222271 * @handler: the #EmpathyFTHandler to set the destination of
239288
240289 g_signal_emit (factory, signals[NEW_FT_HANDLER], 0, handler, NULL);
241290 }
291
292 gboolean
293 empathy_ft_factory_register (EmpathyFTFactory *self,
294 GError **error)
295 {
296 EmpathyFTFactoryPriv *priv = GET_PRIV (self);
297
298 return tp_base_client_register (priv->handler, error);
299 }
2828
2929 #include "empathy-contact.h"
3030 #include "empathy-ft-handler.h"
31 #include "empathy-dispatch-operation.h"
3231
3332 G_BEGIN_DECLS
3433
6362 void empathy_ft_factory_new_transfer_outgoing (EmpathyFTFactory *factory,
6463 EmpathyContact *contact,
6564 GFile *source);
66 void empathy_ft_factory_claim_channel (EmpathyFTFactory *factory,
67 EmpathyDispatchOperation *operation);
6865 void empathy_ft_factory_set_destination_for_incoming_handler (
6966 EmpathyFTFactory *factory,
7067 EmpathyFTHandler *handler,
7168 GFile *destination);
7269
70 gboolean empathy_ft_factory_register (EmpathyFTFactory *self,
71 GError **error);
72
7373 G_END_DECLS
7474
7575 #endif /* __EMPATHY_FT_FACTORY_H__ */
2222
2323 #include <glib.h>
2424 #include <glib/gi18n.h>
25 #include <telepathy-glib/account-channel-request.h>
2526 #include <telepathy-glib/util.h>
2627 #include <telepathy-glib/dbus.h>
2728 #include <telepathy-glib/interfaces.h>
583584 case TP_FILE_HASH_TYPE_SHA256:
584585 retval = G_CHECKSUM_SHA256;
585586 break;
587 case TP_FILE_HASH_TYPE_NONE:
586588 default:
587589 g_assert_not_reached ();
588590 break;
709711 }
710712
711713 static void
712 ft_handler_create_channel_cb (EmpathyDispatchOperation *operation,
713 const GError *error,
714 ft_handler_create_channel_cb (GObject *source,
715 GAsyncResult *result,
714716 gpointer user_data)
715717 {
716718 EmpathyFTHandler *handler = user_data;
717719 EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
718 GError *my_error = (GError *) error;
720 GError *error = NULL;
721 TpChannel *channel = NULL;
719722
720723 DEBUG ("Dispatcher create channel CB");
721724
722 if (my_error == NULL)
723 {
724 g_cancellable_set_error_if_cancelled (priv->cancellable, &my_error);
725 }
726
727 if (my_error != NULL)
728 {
729 emit_error_signal (handler, my_error);
730
731 if (my_error != error)
732 g_clear_error (&my_error);
733
734 return;
735 }
736
737 priv->tpfile = g_object_ref
738 (empathy_dispatch_operation_get_channel_wrapper (operation));
725 channel = tp_account_channel_request_create_and_handle_channel_finish (
726 TP_ACCOUNT_CHANNEL_REQUEST (source), result, NULL, &error);
727
728 if (channel == NULL)
729 DEBUG ("Failed to request FT channel: %s", error->message);
730 else
731 g_cancellable_set_error_if_cancelled (priv->cancellable, &error);
732
733 if (error != NULL)
734 {
735 emit_error_signal (handler, error);
736
737 g_error_free (error);
738 goto out;
739 }
740
741 priv->tpfile = empathy_tp_file_new (channel);
739742
740743 empathy_tp_file_offer (priv->tpfile, priv->gfile, priv->cancellable,
741744 ft_transfer_progress_callback, handler,
742745 ft_transfer_operation_callback, handler);
743746
744 empathy_dispatch_operation_claim (operation);
747 out:
748 tp_clear_object (&channel);
745749 }
746750
747751 static void
748752 ft_handler_push_to_dispatcher (EmpathyFTHandler *handler)
749753 {
750 TpConnection *connection;
754 TpAccount *account;
751755 EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
756 TpAccountChannelRequest *req;
752757
753758 DEBUG ("Pushing request to the dispatcher");
754759
755 connection = empathy_contact_get_connection (priv->contact);
756
757 /* I want to own a reference to the request, and destroy it later */
758 empathy_dispatcher_create_channel (priv->dispatcher, connection,
759 g_hash_table_ref (priv->request), EMPATHY_DISPATCHER_NON_USER_ACTION,
760 account = empathy_contact_get_account (priv->contact);
761
762 req = tp_account_channel_request_new (account, priv->request,
763 TP_USER_ACTION_TIME_NOT_USER_ACTION);
764
765 tp_account_channel_request_create_and_handle_channel_async (req, NULL,
760766 ft_handler_create_channel_cb, handler);
767
768 g_object_unref (req);
761769 }
762770
763771 static void
8888
8989 #define EMPATHY_PREFS_ACCOUNTS_SCHEMA EMPATHY_PREFS_SCHEMA ".accounts"
9090
91 #define EMPATHY_PREFS_LOGGER_SCHEMA "org.freedesktop.Telepathy.Logger"
92 #define EMPATHY_PREFS_LOGGER_ENABLED "enabled"
93
9194 G_END_DECLS
9295
9396 #endif /* __EMPATHY_GSETTINGS_H__ */
+0
-416
libempathy/empathy-handler.c less more
0 /*
1 * Copyright (C) 2007-2009 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Xavier Claessens <xclaesse@gmail.com>
18 * Sjoerd Simons <sjoerd.simons@collabora.co.uk>
19 * Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
20 */
21
22 #include <config.h>
23
24 #include <telepathy-glib/dbus.h>
25 #include <telepathy-glib/proxy-subclass.h>
26 #include <telepathy-glib/gtypes.h>
27 #include <telepathy-glib/defs.h>
28 #include <telepathy-glib/svc-client.h>
29 #include <telepathy-glib/svc-generic.h>
30 #include <telepathy-glib/interfaces.h>
31
32 #include "empathy-handler.h"
33 #include "empathy-utils.h"
34
35 #define DEBUG_FLAG EMPATHY_DEBUG_DISPATCHER
36 #include <libempathy/empathy-debug.h>
37
38 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyHandler)
39 typedef struct
40 {
41 EmpathyHandlerHandleChannelsFunc *handle_channels;
42 gpointer handle_channels_user_data;
43
44 EmpathyHandlerChannelsFunc *channels;
45 gpointer channels_user_data;
46
47 gchar *name;
48 gchar *busname;
49
50 GPtrArray *filters;
51 GStrv *capabilities;
52
53 gboolean dispose_run;
54 } EmpathyHandlerPriv;
55
56 static void empathy_handler_client_handler_iface_init (gpointer g_iface,
57 gpointer g_iface_data);
58
59 G_DEFINE_TYPE_WITH_CODE (EmpathyHandler,
60 empathy_handler,
61 G_TYPE_OBJECT,
62 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
63 tp_dbus_properties_mixin_iface_init);
64 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CLIENT, NULL);
65 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CLIENT_HANDLER,
66 empathy_handler_client_handler_iface_init);
67 );
68
69 static const gchar *empathy_handler_interfaces[] = {
70 TP_IFACE_CLIENT_HANDLER,
71 NULL
72 };
73
74 enum
75 {
76 PROP_INTERFACES = 1,
77 PROP_CHANNEL_FILTER,
78 PROP_CHANNELS,
79 PROP_CAPABILITIES,
80 PROP_NAME,
81 };
82
83 static GObject *
84 handler_constructor (GType type,
85 guint n_construct_params,
86 GObjectConstructParam *construct_params)
87 {
88 GObject *obj =
89 G_OBJECT_CLASS (empathy_handler_parent_class)->constructor
90 (type, n_construct_params, construct_params);
91 EmpathyHandler *handler = EMPATHY_HANDLER (obj);
92 EmpathyHandlerPriv *priv = GET_PRIV (handler);
93 TpDBusDaemon *dbus;
94 gchar *object_path;
95
96 priv = GET_PRIV (handler);
97
98 priv->busname = g_strdup_printf (TP_CLIENT_BUS_NAME_BASE"%s", priv->name);
99 object_path = g_strdup_printf (TP_CLIENT_OBJECT_PATH_BASE"%s",
100 priv->name);
101
102 dbus = tp_dbus_daemon_dup (NULL);
103
104 DEBUG ("Registering at %s, %s", priv->busname, object_path);
105 g_assert (tp_dbus_daemon_request_name (dbus,
106 priv->busname, TRUE, NULL));
107 dbus_g_connection_register_g_object (tp_proxy_get_dbus_connection (dbus),
108 object_path, obj);
109
110
111 g_free (object_path);
112 g_object_unref (dbus);
113
114 return G_OBJECT (handler);
115 }
116
117 static void
118 handler_dispose (GObject *object)
119 {
120 EmpathyHandlerPriv *priv = GET_PRIV (object);
121 TpDBusDaemon *dbus;
122
123 if (priv->dispose_run)
124 return;
125
126 priv->dispose_run = TRUE;
127
128 dbus = tp_dbus_daemon_dup (NULL);
129
130 tp_dbus_daemon_release_name (dbus, priv->busname, NULL);
131
132 g_object_unref (dbus);
133
134 if (G_OBJECT_CLASS (empathy_handler_parent_class)->dispose != NULL)
135 G_OBJECT_CLASS (empathy_handler_parent_class)->dispose (object);
136 }
137
138 static void
139 handler_finalize (GObject *object)
140 {
141 EmpathyHandlerPriv *priv = GET_PRIV (object);
142
143 if (priv->filters != NULL)
144 g_boxed_free (TP_ARRAY_TYPE_CHANNEL_CLASS_LIST, priv->filters);
145
146 if (priv->capabilities != NULL)
147 g_boxed_free (G_TYPE_STRV, priv->capabilities);
148
149 g_free (priv->name);
150 g_free (priv->busname);
151
152 if (G_OBJECT_CLASS (empathy_handler_parent_class)->finalize != NULL)
153 G_OBJECT_CLASS (empathy_handler_parent_class)->finalize (object);
154 }
155
156 static void
157 handler_set_property (GObject *object,
158 guint property_id,
159 const GValue *value,
160 GParamSpec *pspec)
161 {
162 EmpathyHandler *handler = EMPATHY_HANDLER (object);
163 EmpathyHandlerPriv *priv = GET_PRIV (handler);
164
165 switch (property_id)
166 {
167 case PROP_CHANNEL_FILTER:
168 priv->filters = g_value_dup_boxed (value);
169 if (priv->filters == NULL)
170 priv->filters = g_ptr_array_new ();
171 break;
172 case PROP_CAPABILITIES:
173 priv->capabilities = g_value_dup_boxed (value);
174 break;
175 case PROP_NAME:
176 priv->name = g_value_dup_string (value);
177 if (EMP_STR_EMPTY (priv->name))
178 {
179 TpDBusDaemon *bus;
180
181 bus = tp_dbus_daemon_dup (NULL);
182 priv->name = g_strdup_printf ("badger_%s_%p",
183 tp_dbus_daemon_get_unique_name (bus), object);
184 g_strdelimit (priv->name, ":.", '_');
185 g_object_unref (bus);
186 }
187 break;
188 default:
189 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
190 break;
191 }
192 }
193
194 static void
195 handler_get_property (GObject *object,
196 guint property_id,
197 GValue *value,
198 GParamSpec *pspec)
199 {
200 EmpathyHandler *self = EMPATHY_HANDLER (object);
201 EmpathyHandlerPriv *priv = GET_PRIV (self);
202
203 switch (property_id)
204 {
205 case PROP_INTERFACES:
206 g_value_set_boxed (value, empathy_handler_interfaces);
207 break;
208 case PROP_CHANNEL_FILTER:
209 g_value_set_boxed (value, priv->filters);
210 break;
211 case PROP_CAPABILITIES:
212 g_value_set_boxed (value, priv->capabilities);
213 break;
214 case PROP_NAME:
215 g_value_set_string (value, priv->name);
216 break;
217 case PROP_CHANNELS:
218 {
219 GList *l, *channels = NULL;
220 GPtrArray *array = g_ptr_array_new ();
221
222 if (priv->channels != NULL)
223 channels = priv->channels (self, priv->channels_user_data);
224
225 for (l = channels ; l != NULL; l = g_list_next (l))
226 {
227 TpProxy *channel = TP_PROXY (l->data);
228 g_ptr_array_add (array,
229 (gpointer) tp_proxy_get_object_path (channel));
230 }
231 g_value_set_boxed (value, array);
232 g_ptr_array_free (array, TRUE);
233 break;
234 }
235 default:
236 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
237 break;
238 }
239 }
240
241 static void
242 empathy_handler_class_init (EmpathyHandlerClass *klass)
243 {
244 GObjectClass *object_class = G_OBJECT_CLASS (klass);
245 GParamSpec *param_spec;
246
247 static TpDBusPropertiesMixinPropImpl client_props[] = {
248 { "Interfaces", "interfaces", NULL },
249 { NULL }
250 };
251 static TpDBusPropertiesMixinPropImpl client_handler_props[] = {
252 { "HandlerChannelFilter", "channel-filter", NULL },
253 { "HandledChannels", "channels", NULL },
254 { "Capabilities", "capabilities", NULL },
255 { NULL }
256 };
257 static TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
258 { TP_IFACE_CLIENT,
259 tp_dbus_properties_mixin_getter_gobject_properties,
260 NULL,
261 client_props
262 },
263 { TP_IFACE_CLIENT_HANDLER,
264 tp_dbus_properties_mixin_getter_gobject_properties,
265 NULL,
266 client_handler_props
267 },
268 { NULL }
269 };
270
271 object_class->finalize = handler_finalize;
272 object_class->dispose = handler_dispose;
273 object_class->constructor = handler_constructor;
274
275 object_class->get_property = handler_get_property;
276 object_class->set_property = handler_set_property;
277
278 param_spec = g_param_spec_boxed ("interfaces", "interfaces",
279 "Available D-Bus interfaces",
280 G_TYPE_STRV,
281 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
282 g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
283
284 param_spec = g_param_spec_boxed ("channel-filter", "channel-filter",
285 "Filter for channels this handles",
286 TP_ARRAY_TYPE_CHANNEL_CLASS_LIST,
287 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
288 g_object_class_install_property (object_class,
289 PROP_CHANNEL_FILTER, param_spec);
290
291 param_spec = g_param_spec_boxed ("capabilities", "capabilities",
292 "Filter for channels this handles",
293 G_TYPE_STRV,
294 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
295 g_object_class_install_property (object_class,
296 PROP_CAPABILITIES, param_spec);
297
298 param_spec = g_param_spec_boxed ("channels", "channels",
299 "List of channels we're handling",
300 EMPATHY_ARRAY_TYPE_OBJECT,
301 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
302 g_object_class_install_property (object_class,
303 PROP_CHANNELS, param_spec);
304
305 param_spec = g_param_spec_string ("name", "name",
306 "The local name of the handler",
307 NULL,
308 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
309 g_object_class_install_property (object_class,
310 PROP_NAME, param_spec);
311
312 g_type_class_add_private (object_class, sizeof (EmpathyHandlerPriv));
313
314 klass->dbus_props_class.interfaces = prop_interfaces;
315 tp_dbus_properties_mixin_class_init (object_class,
316 G_STRUCT_OFFSET (EmpathyHandlerClass, dbus_props_class));
317 }
318
319 static void
320 empathy_handler_init (EmpathyHandler *handler)
321 {
322 EmpathyHandlerPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (handler,
323 EMPATHY_TYPE_HANDLER, EmpathyHandlerPriv);
324
325 handler->priv = priv;
326 }
327
328 EmpathyHandler *
329 empathy_handler_new (const gchar *name,
330 GPtrArray *filters,
331 GStrv capabilities)
332 {
333 return EMPATHY_HANDLER (
334 g_object_new (EMPATHY_TYPE_HANDLER,
335 "name", name,
336 "channel-filter", filters,
337 "capabilities", capabilities,
338 NULL));
339 }
340
341 static void
342 empathy_handler_handle_channels (TpSvcClientHandler *self,
343 const gchar *account_path,
344 const gchar *connection_path,
345 const GPtrArray *channels,
346 const GPtrArray *requests_satisfied,
347 guint64 timestamp,
348 GHashTable *handler_info,
349 DBusGMethodInvocation *context)
350 {
351 EmpathyHandler *handler = EMPATHY_HANDLER (self);
352 EmpathyHandlerPriv *priv = GET_PRIV (handler);
353 GError *error = NULL;
354
355 if (!priv->handle_channels)
356 {
357 error = g_error_new_literal (TP_ERRORS,
358 TP_ERROR_NOT_AVAILABLE,
359 "No handler function setup");
360 goto error;
361 }
362
363 if (!priv->handle_channels (handler, account_path, connection_path,
364 channels, requests_satisfied, timestamp, handler_info,
365 priv->handle_channels_user_data, &error))
366 goto error;
367
368 tp_svc_client_handler_return_from_handle_channels (context);
369 return;
370
371 error:
372 dbus_g_method_return_error (context, error);
373 g_error_free (error);
374 }
375
376 const gchar *
377 empathy_handler_get_busname (EmpathyHandler *handler)
378 {
379 EmpathyHandlerPriv *priv = GET_PRIV (handler);
380
381 return priv->busname;
382 }
383
384 static void
385 empathy_handler_client_handler_iface_init (gpointer g_iface,
386 gpointer g_iface_data)
387 {
388 TpSvcClientHandlerClass *klass = (TpSvcClientHandlerClass *) g_iface;
389
390 tp_svc_client_handler_implement_handle_channels (klass,
391 empathy_handler_handle_channels);
392 }
393
394 void
395 empathy_handler_set_handle_channels_func (EmpathyHandler *handler,
396 EmpathyHandlerHandleChannelsFunc *func,
397 gpointer user_data)
398 {
399 EmpathyHandlerPriv *priv = GET_PRIV (handler);
400
401 priv->handle_channels = func;
402 priv->handle_channels_user_data = user_data;
403 }
404
405 void
406 empathy_handler_set_channels_func (EmpathyHandler *handler,
407 EmpathyHandlerChannelsFunc *func,
408 gpointer user_data)
409 {
410 EmpathyHandlerPriv *priv = GET_PRIV (handler);
411
412 priv->channels = func;
413 priv->channels_user_data = user_data;
414 }
415
+0
-91
libempathy/empathy-handler.h less more
0 /*
1 * Copyright (C) 2007-2009 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
18 */
19
20 #ifndef __EMPATHY_HANDLER_H__
21 #define __EMPATHY_HANDLER_H__
22
23 #include <glib.h>
24
25 #include <telepathy-glib/channel.h>
26 #include <telepathy-glib/dbus-properties-mixin.h>
27
28 G_BEGIN_DECLS
29
30 #define EMPATHY_TYPE_HANDLER (empathy_handler_get_type ())
31 #define EMPATHY_HANDLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
32 EMPATHY_TYPE_HANDLER, EmpathyHandler))
33 #define EMPATHY_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
34 EMPATHY_TYPE_HANDLER, EmpathyHandlerClass))
35 #define EMPATHY_IS_HANDLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
36 EMPATHY_TYPE_HANDLER))
37 #define EMPATHY_IS_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
38 EMPATHY_TYPE_HANDLER))
39 #define EMPATHY_HANDLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \
40 EMPATHY_TYPE_HANDLER, EmpathyHandlerClass))
41
42 GType empathy_handler_get_type (void) G_GNUC_CONST;
43
44 typedef struct _EmpathyHandler EmpathyHandler;
45 typedef struct _EmpathyHandlerClass EmpathyHandlerClass;
46
47 struct _EmpathyHandler
48 {
49 GObject parent;
50 gpointer priv;
51 };
52
53 struct _EmpathyHandlerClass
54 {
55 GObjectClass parent_class;
56 TpDBusPropertiesMixinClass dbus_props_class;
57 };
58
59
60 EmpathyHandler * empathy_handler_new (const gchar *name,
61 GPtrArray *filters,
62 GStrv capabilities);
63
64 const gchar *empathy_handler_get_busname (EmpathyHandler *handler);
65
66 typedef gboolean (EmpathyHandlerHandleChannelsFunc) (EmpathyHandler *handler,
67 const gchar *account_path,
68 const gchar *connection_path,
69 const GPtrArray *channels,
70 const GPtrArray *requests_satisfied,
71 guint64 timestamp,
72 GHashTable *handler_info,
73 gpointer user_data,
74 GError **error);
75
76 void empathy_handler_set_handle_channels_func (EmpathyHandler *handler,
77 EmpathyHandlerHandleChannelsFunc *func,
78 gpointer user_data);
79
80 typedef GList * (EmpathyHandlerChannelsFunc) (
81 EmpathyHandler *handler,
82 gpointer user_data);
83
84 void empathy_handler_set_channels_func (EmpathyHandler *handler,
85 EmpathyHandlerChannelsFunc func,
86 gpointer user_data);
87
88 G_END_DECLS
89
90 #endif /* __EMPATHY_HANDLER_H__ */
4343
4444 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndividualManager)
4545
46 /* This class doesn't store or ref any of the individuals, since they're already
47 * stored and referenced in the aggregator.
46 /* This class only stores and refs Individuals who contain an EmpathyContact.
4847 *
4948 * This class merely forwards along signals from the aggregator and individuals
5049 * and wraps aggregator functions for other client code. */
5251 {
5352 FolksIndividualAggregator *aggregator;
5453 EmpathyContactManager *contact_manager;
54 GHashTable *individuals; /* Individual.id -> Individual */
5555 } EmpathyIndividualManagerPriv;
5656
5757 enum
8888 FOLKS_FAVOURITE (individual));
8989 g_signal_emit (self, signals[FAVOURITES_CHANGED], 0, individual,
9090 is_favourite);
91 }
92
93 static void
94 add_individual (EmpathyIndividualManager *self, FolksIndividual *individual)
95 {
96 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
97
98 g_hash_table_insert (priv->individuals,
99 (gpointer) folks_individual_get_id (individual),
100 g_object_ref (individual));
101
102 g_signal_connect (individual, "group-changed",
103 G_CALLBACK (individual_group_changed_cb), self);
104 g_signal_connect (individual, "notify::is-favourite",
105 G_CALLBACK (individual_notify_is_favourite_cb), self);
106 }
107
108 static void
109 remove_individual (EmpathyIndividualManager *self, FolksIndividual *individual)
110 {
111 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
112
113 g_signal_handlers_disconnect_by_func (individual,
114 individual_group_changed_cb, self);
115 g_signal_handlers_disconnect_by_func (individual,
116 individual_notify_is_favourite_cb, self);
117
118 g_hash_table_remove (priv->individuals, folks_individual_get_id (individual));
119 }
120
121 /* This is emitted for *all* individuals in the individual aggregator (not
122 * just the ones we keep a reference to), to allow for the case where a new
123 * individual doesn't contain an EmpathyContact, but later has a persona added
124 * which does. */
125 static void
126 individual_notify_personas_cb (FolksIndividual *individual,
127 GParamSpec *pspec,
128 EmpathyIndividualManager *self)
129 {
130 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
131
132 const gchar *id = folks_individual_get_id (individual);
133 gboolean has_contact = empathy_folks_individual_contains_contact (individual);
134 gboolean had_contact = (g_hash_table_lookup (priv->individuals,
135 id) != NULL) ? TRUE : FALSE;
136
137 if (had_contact == TRUE && has_contact == FALSE)
138 {
139 GList *removed = NULL;
140
141 /* The Individual has lost its EmpathyContact */
142 removed = g_list_prepend (removed, individual);
143 g_signal_emit (self, signals[MEMBERS_CHANGED], 0, NULL, NULL, removed,
144 TP_CHANNEL_GROUP_CHANGE_REASON_NONE /* FIXME */);
145 g_list_free (removed);
146
147 remove_individual (self, individual);
148 }
149 else if (had_contact == FALSE && has_contact == TRUE)
150 {
151 GList *added = NULL;
152
153 /* The Individual has gained its first EmpathyContact */
154 add_individual (self, individual);
155
156 added = g_list_prepend (added, individual);
157 g_signal_emit (self, signals[MEMBERS_CHANGED], 0, NULL, added, NULL,
158 TP_CHANNEL_GROUP_CHANGE_REASON_NONE /* FIXME */);
159 g_list_free (added);
160 }
91161 }
92162
93163 static void
99169 guint reason,
100170 EmpathyIndividualManager *self)
101171 {
102 GList *l;
103
172 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
173 GList *l, *added_filtered = NULL, *removed_filtered = NULL;
174
175 /* Filter the individuals for ones which contain EmpathyContacts */
104176 for (l = added; l; l = l->next)
105177 {
106 g_signal_connect (l->data, "group-changed",
107 G_CALLBACK (individual_group_changed_cb), self);
108 g_signal_connect (l->data, "notify::is-favourite",
109 G_CALLBACK (individual_notify_is_favourite_cb), self);
178 FolksIndividual *ind = FOLKS_INDIVIDUAL (l->data);
179
180 g_signal_connect (ind, "notify::personas",
181 G_CALLBACK (individual_notify_personas_cb), self);
182
183 if (empathy_folks_individual_contains_contact (ind) == TRUE)
184 {
185 add_individual (self, ind);
186 added_filtered = g_list_prepend (added_filtered, ind);
187 }
110188 }
111189
112190 for (l = removed; l; l = l->next)
113191 {
114 g_signal_handlers_disconnect_by_func (l->data,
115 individual_group_changed_cb, self);
116 g_signal_handlers_disconnect_by_func (l->data,
117 individual_notify_is_favourite_cb, self);
118 }
192 FolksIndividual *ind = FOLKS_INDIVIDUAL (l->data);
193
194 g_signal_handlers_disconnect_by_func (ind,
195 individual_notify_personas_cb, self);
196
197 if (g_hash_table_lookup (priv->individuals,
198 folks_individual_get_id (ind)) != NULL)
199 {
200 removed_filtered = g_list_prepend (removed_filtered, ind);
201 remove_individual (self, ind);
202 }
203 }
204
205 /* Bail if we have no individuals left */
206 if (added_filtered == NULL && removed_filtered == NULL)
207 return;
208
209 added_filtered = g_list_reverse (added_filtered);
210 removed_filtered = g_list_reverse (removed_filtered);
119211
120212 g_signal_emit (self, signals[MEMBERS_CHANGED], 0, message,
121 added, removed,
213 added_filtered, removed_filtered,
122214 tp_chanel_group_change_reason_from_folks_groups_change_reason (reason),
123215 TRUE);
216
217 g_list_free (added_filtered);
218 g_list_free (removed_filtered);
124219 }
125220
126221 static void
128223 {
129224 EmpathyIndividualManagerPriv *priv = GET_PRIV (object);
130225
226 g_hash_table_destroy (priv->individuals);
131227 tp_clear_object (&priv->contact_manager);
132228 tp_clear_object (&priv->aggregator);
133229
223319
224320 self->priv = priv;
225321 priv->contact_manager = empathy_contact_manager_dup_singleton ();
322 priv->individuals = g_hash_table_new_full (g_str_hash, g_str_equal,
323 NULL, g_object_unref);
226324
227325 priv->aggregator = folks_individual_aggregator_new ();
228326 g_signal_connect (priv->aggregator, "individuals-changed",
240338 empathy_individual_manager_get_members (EmpathyIndividualManager *self)
241339 {
242340 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
243 GHashTable *individuals;
244341
245342 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (self), NULL);
246343
247 individuals = folks_individual_aggregator_get_individuals (priv->aggregator);
248 return individuals ? g_hash_table_get_values (individuals) : NULL;
344 return g_hash_table_get_values (priv->individuals);
249345 }
250346
251347 FolksIndividual *
253349 const gchar *id)
254350 {
255351 EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
256 GHashTable *individuals;
257352
258353 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (self), NULL);
259354
260 individuals = folks_individual_aggregator_get_individuals (priv->aggregator);
261 if (individuals != NULL)
262 return g_hash_table_lookup (individuals, id);
263
264 return NULL;
355 return g_hash_table_lookup (priv->individuals, id);
265356 }
266357
267358 static void
400491 const gchar *group)
401492 {
402493 EmpathyIndividualManagerPriv *priv;
403 GHashTable *individuals;
404494
405495 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (manager));
406496 g_return_if_fail (group != NULL);
410500 DEBUG ("removing group %s", group);
411501
412502 /* Remove every individual from the group */
413 individuals = folks_individual_aggregator_get_individuals (priv->aggregator);
414 g_hash_table_foreach (individuals, (GHFunc) remove_group_cb,
503 g_hash_table_foreach (priv->individuals, (GHFunc) remove_group_cb,
415504 (gpointer) group);
416505 }
417506
444533
445534 return flags;
446535 }
536
537 static void
538 link_personas_cb (FolksIndividualAggregator *aggregator,
539 GAsyncResult *async_result,
540 gpointer user_data)
541 {
542 GError *error = NULL;
543
544 folks_individual_aggregator_link_personas_finish (aggregator, async_result,
545 &error);
546
547 if (error != NULL)
548 {
549 g_warning ("Failed to link personas: %s", error->message);
550 g_clear_error (&error);
551 }
552 }
553
554 void
555 empathy_individual_manager_link_personas (EmpathyIndividualManager *self,
556 GList *personas)
557 {
558 EmpathyIndividualManagerPriv *priv;
559
560 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (self));
561 g_return_if_fail (personas != NULL);
562
563 priv = GET_PRIV (self);
564
565 DEBUG ("Linking %u personas", g_list_length (personas));
566
567 folks_individual_aggregator_link_personas (priv->aggregator, personas,
568 (GAsyncReadyCallback) link_personas_cb, NULL);
569 }
8686 EmpathyIndividualManager *manager,
8787 TpConnection *connection);
8888
89 void empathy_individual_manager_link_personas (EmpathyIndividualManager *self,
90 GList *personas);
91
8992 G_END_DECLS
9093 #endif /* __EMPATHY_INDIVIDUAL_MANAGER_H__ */
1212 VOID:STRING,UINT
1313 VOID:UINT64,UINT64
1414 VOID:UINT64,UINT64,UINT,DOUBLE
15 VOID:UINT,INT,STRING
1615 VOID:UINT,STRING
1716 VOID:UINT,UINT
602602 return "notice";
603603 case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY:
604604 return "auto-reply";
605 case TP_CHANNEL_TEXT_MESSAGE_TYPE_DELIVERY_REPORT:
606 return "delivery-report";
607 case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
605608 default:
606609 return "normal";
607610 }
430430 case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
431431 case TP_CONNECTION_PRESENCE_TYPE_BUSY:
432432 return TRUE;
433 }
434 return FALSE;
435 }
433
434 default:
435 return FALSE;
436 }
437 }
2929
3030 G_BEGIN_DECLS
3131
32 #define EMPATHY_TIME_FORMAT_DISPLAY_SHORT "%H:%M"
33 #define EMPATHY_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y"
34 #define EMPATHY_TIME_DATE_FORMAT_DISPLAY_SHORT "%c"
32 /*
33 * Translators: use your locale preferred time format.
34 * The fields follow the strftime standard:
35 * look at the manual if you need help (man strftime)
36 */
37 #define EMPATHY_TIME_FORMAT_DISPLAY_SHORT _("%H:%M")
38 #define EMPATHY_DATE_FORMAT_DISPLAY_SHORT _("%a %d %b %Y")
39 #define EMPATHY_TIME_DATE_FORMAT_DISPLAY_SHORT _("%a %d %b %Y, %H:%M")
3540
3641 time_t empathy_time_get_current (void);
3742 time_t empathy_time_get_local_time (struct tm *tm);
3838 typedef struct
3939 {
4040 gboolean dispose_has_run;
41 TpAccount *account;
4142 TpChannel *channel;
4243 EmpathyContact *contact;
4344 gboolean is_incoming;
5960 enum
6061 {
6162 PROP_0,
63 PROP_ACCOUNT,
6264 PROP_CHANNEL,
6365 PROP_CONTACT,
6466 PROP_STATUS,
443445 if (priv->contact != NULL)
444446 g_object_unref (priv->contact);
445447
448 tp_clear_object (&priv->account);
449
446450 if (G_OBJECT_CLASS (empathy_tp_call_parent_class)->dispose)
447451 G_OBJECT_CLASS (empathy_tp_call_parent_class)->dispose (object);
448452 }
470474
471475 switch (prop_id)
472476 {
477 case PROP_ACCOUNT:
478 priv->account = g_value_dup_object (value);
479 break;
473480 case PROP_CHANNEL:
474481 priv->channel = g_value_dup_object (value);
475482 break;
489496
490497 switch (prop_id)
491498 {
499 case PROP_ACCOUNT:
500 g_value_set_object (value, priv->channel);
501 break;
492502 case PROP_CHANNEL:
493503 g_value_set_object (value, priv->channel);
494504 break;
523533
524534 g_type_class_add_private (klass, sizeof (EmpathyTpCallPriv));
525535
536 g_object_class_install_property (object_class, PROP_ACCOUNT,
537 g_param_spec_object ("account", "TpAccount", "TpAccount",
538 TP_TYPE_ACCOUNT,
539 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
540 G_PARAM_STATIC_STRINGS));
541
526542 g_object_class_install_property (object_class, PROP_CHANNEL,
527543 g_param_spec_object ("channel", "channel", "channel",
528544 TP_TYPE_CHANNEL,
529545 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
530546 G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
547
531548 g_object_class_install_property (object_class, PROP_CONTACT,
532549 g_param_spec_object ("contact", "Call contact", "Call contact",
533550 EMPATHY_TYPE_CONTACT,
534551 G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
552
535553 g_object_class_install_property (object_class, PROP_STATUS,
536554 g_param_spec_uint ("status", "Call status",
537555 "Call status", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_NICK |
538556 G_PARAM_STATIC_BLURB));
557
539558 g_object_class_install_property (object_class, PROP_AUDIO_STREAM,
540559 g_param_spec_pointer ("audio-stream", "Audio stream data",
541560 "Audio stream data",
542561 G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
562
543563 g_object_class_install_property (object_class, PROP_VIDEO_STREAM,
544564 g_param_spec_pointer ("video-stream", "Video stream data",
545565 "Video stream data",
580600 }
581601
582602 EmpathyTpCall *
583 empathy_tp_call_new (TpChannel *channel)
584 {
603 empathy_tp_call_new (TpAccount *account,
604 TpChannel *channel)
605 {
606 g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL);
585607 g_return_val_if_fail (TP_IS_CHANNEL (channel), NULL);
586608
587609 return g_object_new (EMPATHY_TYPE_TP_CALL,
610 "account", account,
588611 "channel", channel,
589612 NULL);
590613 }
752775 empathy_tp_call_get_connection_manager (EmpathyTpCall *self)
753776 {
754777 EmpathyTpCallPriv *priv = GET_PRIV (self);
755 TpConnection *conn;
756 TpAccount *account;
757
758 if (priv->channel == NULL)
759 return NULL;
760
761 conn = tp_channel_borrow_connection (priv->channel);
762 if (conn == NULL)
763 return NULL;
764
765 account = empathy_get_account_for_connection (conn);
766 if (account == NULL)
767 return NULL;
768
769 return tp_account_get_connection_manager (account);
778
779 return tp_account_get_connection_manager (priv->account);
770780 }
771781
772782 gboolean
839849
840850 return priv->status;
841851 }
852
853 TpAccount *
854 empathy_tp_call_get_account (EmpathyTpCall *self)
855 {
856 EmpathyTpCallPriv *priv = GET_PRIV (self);
857
858 return priv->account;
859 }
7272 } EmpathyTpCallStream;
7373
7474 GType empathy_tp_call_get_type (void) G_GNUC_CONST;
75 EmpathyTpCall *empathy_tp_call_new (TpChannel *channel);
75 EmpathyTpCall *empathy_tp_call_new (TpAccount *account,
76 TpChannel *channel);
7677 void empathy_tp_call_close (EmpathyTpCall *call);
7778
7879 void empathy_tp_call_accept_incoming_call (EmpathyTpCall *call);
9293
9394 EmpathyTpCallStatus empathy_tp_call_get_status (EmpathyTpCall *self);
9495
96 TpAccount * empathy_tp_call_get_account (EmpathyTpCall *self);
97
9598 G_END_DECLS
9699
97100 #endif /* __EMPATHY_TP_CALL_H__ */
4040 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyTpChat)
4141 typedef struct {
4242 gboolean dispose_has_run;
43 TpAccount *account;
4344 TpConnection *connection;
4445 EmpathyContact *user;
4546 EmpathyContact *remote_contact;
6465
6566 enum {
6667 PROP_0,
68 PROP_ACCOUNT,
6769 PROP_CHANNEL,
6870 PROP_REMOTE_CONTACT,
6971 PROP_PASSWORD_NEEDED,
110112 }
111113
112114 static void
115 create_conference_cb (GObject *source,
116 GAsyncResult *result,
117 gpointer user_data)
118 {
119 GError *error = NULL;
120
121 if (!tp_account_channel_request_create_channel_finish (
122 TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error)) {
123 DEBUG ("Failed to create conference channel: %s", error->message);
124 g_error_free (error);
125 }
126 }
127
128 static void
113129 tp_chat_add (EmpathyContactList *list,
114130 EmpathyContact *contact,
115131 const gchar *message)
128144 tp_cli_channel_interface_group_call_add_members (priv->channel,
129145 -1, &handles, NULL, NULL, NULL, NULL, NULL);
130146 } else if (priv->can_upgrade_to_muc) {
131 EmpathyDispatcher *dispatcher;
147 TpAccountChannelRequest *req;
132148 GHashTable *props;
133149 const char *object_path;
134150 GPtrArray channels = { (gpointer *) &object_path, 1 };
135151 const char *invitees[2] = { NULL, };
136
137 dispatcher = empathy_dispatcher_dup_singleton ();
138152
139153 invitees[0] = empathy_contact_get_id (contact);
140154 object_path = tp_proxy_get_object_path (priv->channel);
151165 /* FIXME: InvitationMessage ? */
152166 NULL);
153167
168 req = tp_account_channel_request_new (priv->account, props,
169 TP_USER_ACTION_TIME_NOT_USER_ACTION);
170
154171 /* Although this is a MUC, it's anonymous, so CreateChannel is
155 * valid.
156 * props now belongs to EmpathyDispatcher, don't free it */
157 empathy_dispatcher_create_channel (dispatcher, priv->connection,
158 props, EMPATHY_DISPATCHER_NON_USER_ACTION, NULL, NULL);
159
160 g_object_unref (dispatcher);
172 * valid. */
173 tp_account_channel_request_create_channel_async (req, NULL, NULL,
174 create_conference_cb, NULL);
175
176 g_object_unref (req);
177 g_hash_table_unref (props);
161178 } else {
162179 g_warning ("Cannot add to this channel");
163180 }
760777 return;
761778
762779 priv->dispose_has_run = TRUE;
780
781 tp_clear_object (&priv->account);
763782
764783 if (priv->connection != NULL)
765784 g_object_unref (priv->connection);
12441263
12451264 priv = GET_PRIV (chat);
12461265
1247 priv->connection = g_object_ref (tp_channel_borrow_connection (priv->channel));
1266 priv->connection = g_object_ref (tp_account_get_connection (priv->account));
12481267 tp_g_signal_connect_object (priv->channel, "invalidated",
12491268 G_CALLBACK (tp_chat_invalidated_cb),
12501269 chat, 0);
13521371 EmpathyTpChatPriv *priv = GET_PRIV (object);
13531372
13541373 switch (param_id) {
1374 case PROP_ACCOUNT:
1375 g_value_set_object (value, priv->account);
1376 break;
13551377 case PROP_CHANNEL:
13561378 g_value_set_object (value, priv->channel);
13571379 break;
13791401 EmpathyTpChatPriv *priv = GET_PRIV (object);
13801402
13811403 switch (param_id) {
1404 case PROP_ACCOUNT:
1405 priv->account = g_value_dup_object (value);
1406 break;
13821407 case PROP_CHANNEL:
13831408 priv->channel = g_value_dup_object (value);
13841409 break;
13981423 object_class->constructor = tp_chat_constructor;
13991424 object_class->get_property = tp_chat_get_property;
14001425 object_class->set_property = tp_chat_set_property;
1426
1427 g_object_class_install_property (object_class,
1428 PROP_ACCOUNT,
1429 g_param_spec_object ("account",
1430 "TpAccount",
1431 "the account associated with the chat",
1432 TP_TYPE_ACCOUNT,
1433 G_PARAM_READWRITE |
1434 G_PARAM_CONSTRUCT_ONLY |
1435 G_PARAM_STATIC_STRINGS));
14011436
14021437 g_object_class_install_property (object_class,
14031438 PROP_CHANNEL,
15061541 }
15071542
15081543 EmpathyTpChat *
1509 empathy_tp_chat_new (TpChannel *channel)
1510 {
1544 empathy_tp_chat_new (TpAccount *account,
1545 TpChannel *channel)
1546 {
1547 g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL);
1548 g_return_val_if_fail (TP_IS_CHANNEL (channel), NULL);
1549
15111550 return g_object_new (EMPATHY_TYPE_TP_CHAT,
1551 "account", account,
15121552 "channel", channel,
15131553 NULL);
15141554 }
15631603 return priv->channel;
15641604 }
15651605
1606 TpAccount *
1607 empathy_tp_chat_get_account (EmpathyTpChat *chat)
1608 {
1609 EmpathyTpChatPriv *priv = GET_PRIV (chat);
1610
1611 g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), NULL);
1612
1613 return priv->account;
1614 }
1615
15661616 TpConnection *
15671617 empathy_tp_chat_get_connection (EmpathyTpChat *chat)
15681618 {
15721622
15731623 return tp_channel_borrow_connection (priv->channel);
15741624 }
1575
15761625 gboolean
15771626 empathy_tp_chat_is_ready (EmpathyTpChat *chat)
15781627 {
5959 } EmpathyTpChatProperty;
6060
6161 GType empathy_tp_chat_get_type (void) G_GNUC_CONST;
62 EmpathyTpChat *empathy_tp_chat_new (TpChannel *channel);
62 EmpathyTpChat *empathy_tp_chat_new (TpAccount *account,
63 TpChannel *channel);
6364 const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat);
6465 EmpathyContact *empathy_tp_chat_get_remote_contact (EmpathyTpChat *chat);
6566 TpChannel * empathy_tp_chat_get_channel (EmpathyTpChat *chat);
67 TpAccount * empathy_tp_chat_get_account (EmpathyTpChat *chat);
6668 TpConnection * empathy_tp_chat_get_connection (EmpathyTpChat *chat);
6769 gboolean empathy_tp_chat_is_ready (EmpathyTpChat *chat);
6870 void empathy_tp_chat_send (EmpathyTpChat *chat,
6666
6767 typedef struct {
6868 TpChannel *channel;
69 gboolean ready;
7069
7170 GInputStream *in_stream;
7271 GOutputStream *out_stream;
9392 EmpathyTpFileOperationCallback op_callback;
9493 gpointer op_user_data;
9594
95 gboolean is_closing;
9696 gboolean is_closed;
9797
9898 gboolean dispose_run;
241241 gpointer user_data)
242242 {
243243 EmpathyTpFile *tp_file;
244 EmpathyTpFilePriv *priv;
244245 GError *error = NULL;
245246
246247 tp_file = user_data;
248 priv = GET_PRIV (tp_file);
247249
248250 g_output_stream_splice_finish (G_OUTPUT_STREAM (source), res, &error);
249251
250252 DEBUG ("Splice stream ready cb, error %p", error);
251253
252 if (error != NULL)
254 if (error != NULL && !priv->is_closing)
253255 {
254256 ft_operation_close_with_error (tp_file, error);
255257 g_clear_error (&error);
591593
592594 in_stream = g_file_read_finish (G_FILE (source), res, &error);
593595
594 if (error != NULL)
596 if (error != NULL && !priv->is_closing)
595597 {
596598 ft_operation_close_with_error (tp_file, error);
597599 g_clear_error (&error);
674676 DEBUG ("Closing channel, should cancel %s", cancel ?
675677 "True" : "False");
676678
679 priv->is_closing = TRUE;
680
677681 tp_cli_channel_call_close (priv->channel, -1,
678682 channel_closed_cb, GINT_TO_POINTER (cancel), NULL, G_OBJECT (tp_file));
679683 }
771775 case PROP_CHANNEL:
772776 priv->channel = g_object_ref (g_value_get_object (value));
773777 break;
774 case PROP_INCOMING:
775 priv->incoming = g_value_get_boolean (value);
776 break;
777778 default:
778779 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
779780 break;
785786 {
786787 EmpathyTpFile *tp_file;
787788 EmpathyTpFilePriv *priv;
789 GHashTable *props;
788790
789791 tp_file = EMPATHY_TP_FILE (object);
790792 priv = GET_PRIV (tp_file);
791793
792794 g_signal_connect (priv->channel, "invalidated",
793795 G_CALLBACK (tp_file_invalidated_cb), tp_file);
796
797 props = tp_channel_borrow_immutable_properties (priv->channel);
798 priv->incoming = !tp_asv_get_boolean (props, TP_PROP_CHANNEL_REQUESTED, NULL);
794799
795800 tp_cli_channel_type_file_transfer_connect_to_file_transfer_state_changed (
796801 priv->channel, tp_file_state_changed_cb, NULL, NULL, object, NULL);
849854 "direction of transfer",
850855 "The direction of the file being transferred",
851856 FALSE,
852 G_PARAM_READWRITE |
853 G_PARAM_CONSTRUCT_ONLY));
857 G_PARAM_READABLE));
854858
855859 g_type_class_add_private (object_class, sizeof (EmpathyTpFilePriv));
856860 }
862866 * @channel: a #TpChannel
863867 * @incoming: whether the file transfer is incoming or not
864868 *
865 * Creates a new #EmpathyTpFile wrapping @channel, with the direction
866 * specified by @incoming. The returned #EmpathyTpFile should be unrefed
869 * Creates a new #EmpathyTpFile wrapping @channel.
870 * The returned #EmpathyTpFile should be unrefed
867871 * with g_object_unref() when finished with.
868872 *
869873 * Return value: a new #EmpathyTpFile
870874 */
871875 EmpathyTpFile *
872 empathy_tp_file_new (TpChannel *channel,
873 gboolean incoming)
876 empathy_tp_file_new (TpChannel *channel)
874877 {
875878 EmpathyTpFile *tp_file;
876879
877880 g_return_val_if_fail (TP_IS_CHANNEL (channel), NULL);
878881
879882 tp_file = g_object_new (EMPATHY_TYPE_TP_FILE,
880 "channel", channel, "incoming", incoming,
883 "channel", channel,
881884 NULL);
882885
883886 return tp_file;
9494
9595 /* public methods */
9696
97 EmpathyTpFile * empathy_tp_file_new (TpChannel *channel,
98 gboolean incoming);
97 EmpathyTpFile * empathy_tp_file_new (TpChannel *channel);
9998
10099 void empathy_tp_file_accept (EmpathyTpFile *tp_file,
101100 guint64 offset,
4444 #include "empathy-contact-manager.h"
4545 #include "empathy-individual-manager.h"
4646 #include "empathy-dispatcher.h"
47 #include "empathy-dispatch-operation.h"
4847 #include "empathy-idle.h"
4948 #include "empathy-tp-call.h"
5049 #include "empathy-tp-contact-factory.h"
5655
5756 /* Translation between presence types and string */
5857 static struct {
59 gchar *name;
58 const gchar *name;
6059 TpConnectionPresenceType type;
6160 } presence_types[] = {
6261 { "available", TP_CONNECTION_PRESENCE_TYPE_AVAILABLE },
253252 return _("Unknown");
254253 case TP_CONNECTION_PRESENCE_TYPE_UNSET:
255254 case TP_CONNECTION_PRESENCE_TYPE_ERROR:
255 default:
256256 return NULL;
257257 }
258258
283283 return TP_CONNECTION_PRESENCE_TYPE_UNSET;
284284 }
285285
286 const gchar *
286 static const gchar *
287287 empathy_status_reason_get_default_message (TpConnectionStatusReason reason)
288288 {
289289 switch (reason) {
320320 }
321321 }
322322
323 static GHashTable *
324 create_errors_to_message_hash (void)
325 {
326 GHashTable *errors;
327
328 errors = g_hash_table_new (g_str_hash, g_str_equal);
329 g_hash_table_insert (errors, TP_ERROR_STR_NETWORK_ERROR, _("Network error"));
330 g_hash_table_insert (errors, TP_ERROR_STR_AUTHENTICATION_FAILED,
331 _("Authentication failed"));
332 g_hash_table_insert (errors, TP_ERROR_STR_ENCRYPTION_ERROR,
333 _("Encryption error"));
334 g_hash_table_insert (errors, TP_ERROR_STR_CERT_NOT_PROVIDED,
335 _("Certificate not provided"));
336 g_hash_table_insert (errors, TP_ERROR_STR_CERT_UNTRUSTED,
337 _("Certificate untrusted"));
338 g_hash_table_insert (errors, TP_ERROR_STR_CERT_EXPIRED,
339 _("Certificate expired"));
340 g_hash_table_insert (errors, TP_ERROR_STR_CERT_NOT_ACTIVATED,
341 _("Certificate not activated"));
342 g_hash_table_insert (errors, TP_ERROR_STR_CERT_HOSTNAME_MISMATCH,
343 _("Certificate hostname mismatch"));
344 g_hash_table_insert (errors, TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH,
345 _("Certificate fingerprint mismatch"));
346 g_hash_table_insert (errors, TP_ERROR_STR_CERT_SELF_SIGNED,
347 _("Certificate self-signed"));
348 g_hash_table_insert (errors, TP_ERROR_STR_CANCELLED,
349 _("Status is set to offline"));
350 g_hash_table_insert (errors, TP_ERROR_STR_ENCRYPTION_NOT_AVAILABLE,
351 _("Encryption is not available"));
352 g_hash_table_insert (errors, TP_ERROR_STR_CERT_INVALID,
353 _("Certificate is invalid"));
354 g_hash_table_insert (errors, TP_ERROR_STR_CONNECTION_REFUSED,
355 _("Connection has been refused"));
356 g_hash_table_insert (errors, TP_ERROR_STR_CONNECTION_FAILED,
357 _("Connection can't be established"));
358 g_hash_table_insert (errors, TP_ERROR_STR_CONNECTION_LOST,
359 _("Connection has been lost"));
360 g_hash_table_insert (errors, TP_ERROR_STR_ALREADY_CONNECTED,
361 _("This resource is already connected to the server"));
362 g_hash_table_insert (errors, TP_ERROR_STR_CONNECTION_REPLACED,
363 _("Connection has been replaced by a new connection using the "
364 "same resource"));
365 g_hash_table_insert (errors, TP_ERROR_STR_REGISTRATION_EXISTS,
366 _("The account already exists on the server"));
367 g_hash_table_insert (errors, TP_ERROR_STR_SERVICE_BUSY,
368 _("Server is currently too busy to handle the connection"));
369 g_hash_table_insert (errors, TP_ERROR_STR_CERT_REVOKED,
370 _("Certificate has been revoked"));
371 g_hash_table_insert (errors, TP_ERROR_STR_CERT_INSECURE,
372 _("Certificate uses an insecure cipher algorithm or is "
373 "cryptographically weak"));
374 g_hash_table_insert (errors, TP_ERROR_STR_CERT_LIMIT_EXCEEDED,
375 _("The length of the server certificate, or the depth of the "
376 "server certificate chain exceed the limits imposed by the "
377 "crypto library"));
378
379 return errors;
380 }
381
382 static const gchar *
383 empathy_dbus_error_name_get_default_message (const gchar *error)
384 {
385 static GHashTable *errors_to_message = NULL;
386
387 if (error == NULL)
388 return NULL;
389
390 if (G_UNLIKELY (errors_to_message == NULL)) {
391 errors_to_message = create_errors_to_message_hash ();
392 }
393
394 return g_hash_table_lookup (errors_to_message, error);
395 }
396
397 const gchar *
398 empathy_account_get_error_message (TpAccount *account)
399 {
400 const gchar *dbus_error;
401 const gchar *message;
402 TpConnectionStatusReason reason;
403
404 dbus_error = tp_account_get_detailed_error (account, NULL);
405 message = empathy_dbus_error_name_get_default_message (dbus_error);
406 if (message != NULL)
407 return message;
408
409 DEBUG ("Don't understand error '%s'; fallback to the status reason (%u)",
410 dbus_error, reason);
411
412 tp_account_get_connection_status (account, &reason);
413
414 return empathy_status_reason_get_default_message (reason);
415 }
416
323417 gchar *
324418 empathy_file_lookup (const gchar *filename, const gchar *subdir)
325419 {
557651 g_free (message);
558652 break;
559653
654 case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE:
655 case TP_CONNECTION_PRESENCE_TYPE_AWAY:
656 case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
657 case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
658 case TP_CONNECTION_PRESENCE_TYPE_BUSY:
659 case TP_CONNECTION_PRESENCE_TYPE_ERROR:
560660 default:
561661 /* do nothing if the presence is not offline */
562662 break;
614714
615715 tp_contact = tpf_persona_get_contact (persona);
616716 contact = empathy_contact_dup_from_tp_contact (tp_contact);
717 empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
617718 }
618719 }
619720
7474 gboolean empathy_check_available_state (void);
7575 gint empathy_uint_compare (gconstpointer a,
7676 gconstpointer b);
77 const gchar * empathy_status_reason_get_default_message (TpConnectionStatusReason reason);
77
78 const gchar * empathy_account_get_error_message (TpAccount *account);
7879
7980 gchar *empathy_protocol_icon_name (const gchar *protocol);
8081 const gchar *empathy_protocol_name_to_display_name (const gchar *proto_name);
22 <network name="Debian Servers" id="debian_servers">
33 <servers>
44 <server ssl="FALSE" port="6667" address="irc.debian.org"/>
5 </servers>
6 </network>
7 <network name="Ubuntu Servers" id="ubuntu_servers">
8 <servers>
9 <server ssl="FALSE" port="8001" address="irc.ubuntu.com"/>
105 </servers>
116 </network>
127 <network name="2600net" id="a2600net">
4646 empathy-contact-list-store.c \
4747 empathy-contact-list-view.c \
4848 empathy-contact-menu.c \
49 empathy-linking-dialog.c \
4950 empathy-live-search.c \
5051 empathy-contact-selector.c \
5152 empathy-contact-selector-dialog.c \
5253 empathy-contact-widget.c \
5354 empathy-geometry.c \
5455 empathy-individual-dialogs.c \
56 empathy-individual-information-dialog.c \
57 empathy-individual-linker.c \
5558 empathy-individual-menu.c \
5659 empathy-individual-store.c \
5760 empathy-individual-view.c \
61 empathy-individual-widget.c \
5862 empathy-irc-network-dialog.c \
5963 empathy-kludge-label.c \
6064 empathy-log-window.c \
6165 empathy-new-message-dialog.c \
6266 empathy-new-call-dialog.c \
6367 empathy-notify-manager.c \
68 empathy-persona-store.c \
69 empathy-persona-view.c \
6470 empathy-presence-chooser.c \
6571 empathy-protocol-chooser.c \
6672 empathy-search-bar.c \
96102 empathy-contact-list-store.h \
97103 empathy-contact-list-view.h \
98104 empathy-contact-menu.h \
105 empathy-linking-dialog.h \
99106 empathy-live-search.h \
100107 empathy-contact-selector.h \
101108 empathy-contact-selector-dialog.h \
103110 empathy-geometry.h \
104111 empathy-images.h \
105112 empathy-individual-dialogs.h \
113 empathy-individual-information-dialog.h \
114 empathy-individual-linker.h \
106115 empathy-individual-menu.h \
107116 empathy-individual-store.h \
108117 empathy-individual-view.h \
118 empathy-individual-widget.h \
109119 empathy-irc-network-dialog.h \
110120 empathy-kludge-label.h \
111121 empathy-log-window.h \
112122 empathy-new-message-dialog.h \
113123 empathy-new-call-dialog.h \
114124 empathy-notify-manager.h \
125 empathy-persona-store.h \
126 empathy-persona-view.h \
115127 empathy-presence-chooser.h \
116128 empathy-protocol-chooser.h \
117129 empathy-search-bar.h \
9595 empathy-chat-text-view.c empathy-chat-view.c empathy-chat.c \
9696 empathy-contact-dialogs.c empathy-contact-list-store.c \
9797 empathy-contact-list-view.c empathy-contact-menu.c \
98 empathy-live-search.c empathy-contact-selector.c \
99 empathy-contact-selector-dialog.c empathy-contact-widget.c \
100 empathy-geometry.c empathy-individual-dialogs.c \
101 empathy-individual-menu.c empathy-individual-store.c \
102 empathy-individual-view.c empathy-irc-network-dialog.c \
98 empathy-linking-dialog.c empathy-live-search.c \
99 empathy-contact-selector.c empathy-contact-selector-dialog.c \
100 empathy-contact-widget.c empathy-geometry.c \
101 empathy-individual-dialogs.c \
102 empathy-individual-information-dialog.c \
103 empathy-individual-linker.c empathy-individual-menu.c \
104 empathy-individual-store.c empathy-individual-view.c \
105 empathy-individual-widget.c empathy-irc-network-dialog.c \
103106 empathy-kludge-label.c empathy-log-window.c \
104107 empathy-new-message-dialog.c empathy-new-call-dialog.c \
105 empathy-notify-manager.c empathy-presence-chooser.c \
108 empathy-notify-manager.c empathy-persona-store.c \
109 empathy-persona-view.c empathy-presence-chooser.c \
106110 empathy-protocol-chooser.c empathy-search-bar.c \
107111 empathy-share-my-desktop.c empathy-smiley-manager.c \
108112 empathy-sound.c empathy-spell.c empathy-status-preset-dialog.c \
119123 empathy-chat-text-view.h empathy-chat-view.h empathy-chat.h \
120124 empathy-contact-dialogs.h empathy-contact-list-store.h \
121125 empathy-contact-list-view.h empathy-contact-menu.h \
122 empathy-live-search.h empathy-contact-selector.h \
123 empathy-contact-selector-dialog.h empathy-contact-widget.h \
124 empathy-geometry.h empathy-images.h \
125 empathy-individual-dialogs.h empathy-individual-menu.h \
126 empathy-linking-dialog.h empathy-live-search.h \
127 empathy-contact-selector.h empathy-contact-selector-dialog.h \
128 empathy-contact-widget.h empathy-geometry.h empathy-images.h \
129 empathy-individual-dialogs.h \
130 empathy-individual-information-dialog.h \
131 empathy-individual-linker.h empathy-individual-menu.h \
126132 empathy-individual-store.h empathy-individual-view.h \
127 empathy-irc-network-dialog.h empathy-kludge-label.h \
128 empathy-log-window.h empathy-new-message-dialog.h \
129 empathy-new-call-dialog.h empathy-notify-manager.h \
130 empathy-presence-chooser.h empathy-protocol-chooser.h \
131 empathy-search-bar.h empathy-share-my-desktop.h \
132 empathy-smiley-manager.h empathy-sound.h empathy-spell.h \
133 empathy-status-preset-dialog.h empathy-string-parser.h \
134 empathy-theme-boxes.h empathy-theme-irc.h \
135 empathy-theme-manager.h empathy-ui-utils.h empathy-video-src.h \
136 empathy-video-widget.h empathy-location-manager.h \
137 empathy-plist.h empathy-theme-adium.h \
138 totem-subtitle-encoding.c totem-subtitle-encoding.h
133 empathy-individual-widget.h empathy-irc-network-dialog.h \
134 empathy-kludge-label.h empathy-log-window.h \
135 empathy-new-message-dialog.h empathy-new-call-dialog.h \
136 empathy-notify-manager.h empathy-persona-store.h \
137 empathy-persona-view.h empathy-presence-chooser.h \
138 empathy-protocol-chooser.h empathy-search-bar.h \
139 empathy-share-my-desktop.h empathy-smiley-manager.h \
140 empathy-sound.h empathy-spell.h empathy-status-preset-dialog.h \
141 empathy-string-parser.h empathy-theme-boxes.h \
142 empathy-theme-irc.h empathy-theme-manager.h empathy-ui-utils.h \
143 empathy-video-src.h empathy-video-widget.h \
144 empathy-location-manager.h empathy-plist.h \
145 empathy-theme-adium.h totem-subtitle-encoding.c \
146 totem-subtitle-encoding.h
139147 @HAVE_GEOCLUE_TRUE@am__objects_1 = empathy-location-manager.lo
140148 @HAVE_WEBKIT_TRUE@am__objects_2 = empathy-plist.lo \
141149 @HAVE_WEBKIT_TRUE@ empathy-theme-adium.lo
149157 empathy-chat-view.lo empathy-chat.lo \
150158 empathy-contact-dialogs.lo empathy-contact-list-store.lo \
151159 empathy-contact-list-view.lo empathy-contact-menu.lo \
152 empathy-live-search.lo empathy-contact-selector.lo \
153 empathy-contact-selector-dialog.lo empathy-contact-widget.lo \
154 empathy-geometry.lo empathy-individual-dialogs.lo \
155 empathy-individual-menu.lo empathy-individual-store.lo \
156 empathy-individual-view.lo empathy-irc-network-dialog.lo \
160 empathy-linking-dialog.lo empathy-live-search.lo \
161 empathy-contact-selector.lo empathy-contact-selector-dialog.lo \
162 empathy-contact-widget.lo empathy-geometry.lo \
163 empathy-individual-dialogs.lo \
164 empathy-individual-information-dialog.lo \
165 empathy-individual-linker.lo empathy-individual-menu.lo \
166 empathy-individual-store.lo empathy-individual-view.lo \
167 empathy-individual-widget.lo empathy-irc-network-dialog.lo \
157168 empathy-kludge-label.lo empathy-log-window.lo \
158169 empathy-new-message-dialog.lo empathy-new-call-dialog.lo \
159 empathy-notify-manager.lo empathy-presence-chooser.lo \
170 empathy-notify-manager.lo empathy-persona-store.lo \
171 empathy-persona-view.lo empathy-presence-chooser.lo \
160172 empathy-protocol-chooser.lo empathy-search-bar.lo \
161173 empathy-share-my-desktop.lo empathy-smiley-manager.lo \
162174 empathy-sound.lo empathy-spell.lo \
468480 empathy-chat-text-view.c empathy-chat-view.c empathy-chat.c \
469481 empathy-contact-dialogs.c empathy-contact-list-store.c \
470482 empathy-contact-list-view.c empathy-contact-menu.c \
471 empathy-live-search.c empathy-contact-selector.c \
472 empathy-contact-selector-dialog.c empathy-contact-widget.c \
473 empathy-geometry.c empathy-individual-dialogs.c \
474 empathy-individual-menu.c empathy-individual-store.c \
475 empathy-individual-view.c empathy-irc-network-dialog.c \
483 empathy-linking-dialog.c empathy-live-search.c \
484 empathy-contact-selector.c empathy-contact-selector-dialog.c \
485 empathy-contact-widget.c empathy-geometry.c \
486 empathy-individual-dialogs.c \
487 empathy-individual-information-dialog.c \
488 empathy-individual-linker.c empathy-individual-menu.c \
489 empathy-individual-store.c empathy-individual-view.c \
490 empathy-individual-widget.c empathy-irc-network-dialog.c \
476491 empathy-kludge-label.c empathy-log-window.c \
477492 empathy-new-message-dialog.c empathy-new-call-dialog.c \
478 empathy-notify-manager.c empathy-presence-chooser.c \
493 empathy-notify-manager.c empathy-persona-store.c \
494 empathy-persona-view.c empathy-presence-chooser.c \
479495 empathy-protocol-chooser.c empathy-search-bar.c \
480496 empathy-share-my-desktop.c empathy-smiley-manager.c \
481497 empathy-sound.c empathy-spell.c empathy-status-preset-dialog.c \
492508 empathy-chat-text-view.h empathy-chat-view.h empathy-chat.h \
493509 empathy-contact-dialogs.h empathy-contact-list-store.h \
494510 empathy-contact-list-view.h empathy-contact-menu.h \
495 empathy-live-search.h empathy-contact-selector.h \
496 empathy-contact-selector-dialog.h empathy-contact-widget.h \
497 empathy-geometry.h empathy-images.h \
498 empathy-individual-dialogs.h empathy-individual-menu.h \
511 empathy-linking-dialog.h empathy-live-search.h \
512 empathy-contact-selector.h empathy-contact-selector-dialog.h \
513 empathy-contact-widget.h empathy-geometry.h empathy-images.h \
514 empathy-individual-dialogs.h \
515 empathy-individual-information-dialog.h \
516 empathy-individual-linker.h empathy-individual-menu.h \
499517 empathy-individual-store.h empathy-individual-view.h \
500 empathy-irc-network-dialog.h empathy-kludge-label.h \
501 empathy-log-window.h empathy-new-message-dialog.h \
502 empathy-new-call-dialog.h empathy-notify-manager.h \
503 empathy-presence-chooser.h empathy-protocol-chooser.h \
504 empathy-search-bar.h empathy-share-my-desktop.h \
505 empathy-smiley-manager.h empathy-sound.h empathy-spell.h \
506 empathy-status-preset-dialog.h empathy-string-parser.h \
507 empathy-theme-boxes.h empathy-theme-irc.h \
508 empathy-theme-manager.h empathy-ui-utils.h empathy-video-src.h \
509 empathy-video-widget.h $(am__append_2) $(am__append_5)
518 empathy-individual-widget.h empathy-irc-network-dialog.h \
519 empathy-kludge-label.h empathy-log-window.h \
520 empathy-new-message-dialog.h empathy-new-call-dialog.h \
521 empathy-notify-manager.h empathy-persona-store.h \
522 empathy-persona-view.h empathy-presence-chooser.h \
523 empathy-protocol-chooser.h empathy-search-bar.h \
524 empathy-share-my-desktop.h empathy-smiley-manager.h \
525 empathy-sound.h empathy-spell.h empathy-status-preset-dialog.h \
526 empathy-string-parser.h empathy-theme-boxes.h \
527 empathy-theme-irc.h empathy-theme-manager.h empathy-ui-utils.h \
528 empathy-video-src.h empathy-video-widget.h $(am__append_2) \
529 $(am__append_5)
510530 libempathy_gtk_la_SOURCES = \
511531 $(libempathy_gtk_handwritten_source) \
512532 $(libempathy_gtk_headers) \
636656 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-gtk-enum-types.Plo@am__quote@
637657 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-gtk-marshal.Plo@am__quote@
638658 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-dialogs.Plo@am__quote@
659 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-information-dialog.Plo@am__quote@
660 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-linker.Plo@am__quote@
639661 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-menu.Plo@am__quote@
640662 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-store.Plo@am__quote@
641663 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-view.Plo@am__quote@
664 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-individual-widget.Plo@am__quote@
642665 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-irc-network-dialog.Plo@am__quote@
643666 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-kludge-label.Plo@am__quote@
667 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-linking-dialog.Plo@am__quote@
644668 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-live-search.Plo@am__quote@
645669 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-location-manager.Plo@am__quote@
646670 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-log-window.Plo@am__quote@
647671 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-new-call-dialog.Plo@am__quote@
648672 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-new-message-dialog.Plo@am__quote@
649673 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-notify-manager.Plo@am__quote@
674 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-persona-store.Plo@am__quote@
675 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-persona-view.Plo@am__quote@
650676 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-plist.Plo@am__quote@
651677 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-presence-chooser.Plo@am__quote@
652678 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-protocol-chooser.Plo@am__quote@
3939 #include <libempathy/empathy-debug.h>
4040
4141 #define IRC_NETWORKS_FILENAME "irc-networks.xml"
42 #define DEFAULT_IRC_NETWORK "irc.gimp.org"
4243
4344 typedef struct {
4445 EmpathyAccountWidget *self;
413414 }
414415 }
415416
417 if (network == NULL)
418 {
419 network = empathy_irc_network_manager_find_network_by_address (
420 settings->network_manager, DEFAULT_IRC_NETWORK);
421 }
416422
417423 fill_networks_model (settings, network);
424 update_server_params (settings);
418425 }
419426
420427 void
599599 case 't': minint = 0; maxint = G_MAXUINT64; break;
600600 case 'd': minint = G_MININT32; maxint = G_MAXINT32;
601601 step = 0.1; break;
602 default: g_assert_not_reached ();
602603 }
603604
604605 str = g_strdup_printf (_("%s:"), param_name_formatted);
10241024 * Return value: a new #EmpathyAvatarChooser
10251025 */
10261026 GtkWidget *
1027 empathy_avatar_chooser_new ()
1027 empathy_avatar_chooser_new (void)
10281028 {
10291029 return g_object_new (EMPATHY_TYPE_AVATAR_CHOOSER, NULL);
10301030 }
131131
132132 priv = GET_PRIV (data);
133133
134 switch (xevent->type) {
135 case PropertyNotify:
134 if (xevent->type == PropertyNotify) {
136135 atom = gdk_x11_get_xatom_by_name ("_NET_CURRENT_DESKTOP");
137136 if (xevent->xproperty.atom == atom) {
138137 if (priv->popup) {
140139 priv->popup = NULL;
141140 }
142141 }
143 break;
144142 }
145143
146144 return GDK_FILTER_CONTINUE;
227227 }
228228
229229 static void
230 reconnected_connection_ready_cb (TpConnection *connection,
231 const GError *error,
232 gpointer user_data)
233 {
234 EmpathyChat *chat = user_data;
235 EmpathyChatPriv *priv = GET_PRIV (chat);
236
237 if (error != NULL) {
238 DEBUG ("connection is not ready: %s", error->message);
239 goto out;
240 }
230 account_reconnected (EmpathyChat *chat,
231 TpAccount *account)
232 {
233 EmpathyChatPriv *priv = GET_PRIV (chat);
241234
242235 DEBUG ("Account reconnected, request a new Text channel");
243236
247240 switch (priv->handle_type) {
248241 case TP_HANDLE_TYPE_CONTACT:
249242 empathy_dispatcher_chat_with_contact_id (
250 connection, priv->id, EMPATHY_DISPATCHER_NON_USER_ACTION,
251 NULL, NULL);
243 account, priv->id, TP_USER_ACTION_TIME_NOT_USER_ACTION);
252244 break;
253245 case TP_HANDLE_TYPE_ROOM:
254 empathy_dispatcher_join_muc (connection,
255 priv->id, EMPATHY_DISPATCHER_NON_USER_ACTION);
246 empathy_dispatcher_join_muc (account, priv->id,
247 TP_USER_ACTION_TIME_NOT_USER_ACTION);
256248 break;
249 case TP_HANDLE_TYPE_NONE:
250 case TP_HANDLE_TYPE_LIST:
251 case TP_HANDLE_TYPE_GROUP:
257252 default:
258253 g_assert_not_reached ();
259254 break;
260255 }
261256
262 out:
263257 g_object_unref (chat);
264258 }
265259
286280 return;
287281
288282 g_object_ref (chat);
289 tp_connection_call_when_ready (connection, reconnected_connection_ready_cb,
290 chat);
283
284 account_reconnected (chat, account);
291285 }
292286
293287 static void
715709 TpConnection *connection;
716710
717711 connection = empathy_tp_chat_get_connection (priv->tp_chat);
718 empathy_dispatcher_join_muc (connection, rooms[i],
719 gtk_get_current_event_time ());
712 empathy_dispatcher_join_muc (priv->account, rooms[i],
713 gtk_get_current_event_time ());
720714 }
721715 i++;
722716 }
11651159 case TP_CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED:
11661160 error = _("not implemented");
11671161 break;
1162 case TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN:
11681163 default:
11691164 error = _("unknown");
11701165 break;
30163011
30173012 priv->tp_chat = g_object_ref (tp_chat);
30183013 connection = empathy_tp_chat_get_connection (priv->tp_chat);
3019 priv->account = g_object_ref (empathy_get_account_for_connection (connection));
3014 priv->account = g_object_ref (empathy_tp_chat_get_account (priv->tp_chat));
30203015
30213016 g_signal_connect (tp_chat, "destroy",
30223017 G_CALLBACK (chat_destroy_cb),
711711 EMPATHY_CONTACT_LIST_STORE_COL_NAME,
712712 GTK_SORT_ASCENDING);
713713 break;
714
715 default:
716 g_assert_not_reached ();
714717 }
715718
716719 g_object_notify (G_OBJECT (store), "sort-criterium");
762762 g_object_unref (contact);
763763 str = g_strconcat (account_id, ":", contact_id, NULL);
764764
765 switch (info) {
766 case DND_DRAG_TYPE_CONTACT_ID:
765 if (info == DND_DRAG_TYPE_CONTACT_ID) {
767766 gtk_selection_data_set (selection, drag_atoms_source[info], 8,
768767 (guchar *) str, strlen (str) + 1);
769 break;
770768 }
771769
772770 g_free (str);
893891 if (contact) {
894892 DEBUG ("Starting a chat");
895893 empathy_dispatcher_chat_with_contact (contact,
896 gtk_get_current_event_time (), NULL, NULL);
894 gtk_get_current_event_time ());
897895 g_object_unref (contact);
898896 }
899897 }
215215 empathy_contact_chat_menu_item_activated (GtkMenuItem *item,
216216 EmpathyContact *contact)
217217 {
218 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time (),
219 NULL, NULL);
218 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time ());
220219 }
221220
222221 GtkWidget *
246245 {
247246
248247 empathy_call_factory_new_call_with_streams (contact, TRUE, FALSE,
249 gtk_get_current_event_time (), NULL, NULL);
248 gtk_get_current_event_time (), NULL);
250249 }
251250
252251 GtkWidget *
276275 EmpathyContact *contact)
277276 {
278277 empathy_call_factory_new_call_with_streams (contact, TRUE, TRUE,
279 gtk_get_current_event_time (), NULL, NULL);
278 gtk_get_current_event_time (), NULL);
280279 }
281280
282281 GtkWidget *
491491 const gchar *
492492 empathy_contact_selector_dialog_get_selected (
493493 EmpathyContactSelectorDialog *self,
494 TpConnection **connection)
494 TpConnection **connection,
495 TpAccount **account)
495496 {
496497 EmpathyContactSelectorDialogPriv *priv;
497498 const char *id;
500501
501502 priv = GET_PRIV (self);
502503
503 if (connection)
504 if (connection != NULL)
504505 {
505506 if (priv->show_account_chooser)
506507 *connection = empathy_account_chooser_get_connection (
509510 *connection = NULL;
510511 }
511512
513 if (account != NULL)
514 {
515 if (priv->show_account_chooser)
516 *account = empathy_account_chooser_get_account (
517 EMPATHY_ACCOUNT_CHOOSER (priv->account_chooser));
518 else
519 *account = NULL;
520 }
521
522
512523 id = gtk_entry_get_text (GTK_ENTRY (priv->entry_id));
513524 return id;
514525 }
5454 GType empathy_contact_selector_dialog_get_type (void);
5555 const gchar *empathy_contact_selector_dialog_get_selected (
5656 EmpathyContactSelectorDialog *self,
57 TpConnection **connection);
57 TpConnection **connection,
58 TpAccount **account);
5859 void empathy_contact_selector_dialog_set_show_account_chooser (
5960 EmpathyContactSelectorDialog *self,
6061 gboolean show_account_chooser);
2626 #include <gtk/gtk.h>
2727 #include <glib/gi18n-lib.h>
2828
29 #if HAVE_LIBCHAMPLAIN
29 #ifdef HAVE_LIBCHAMPLAIN
3030 #include <champlain/champlain.h>
3131 #include <champlain-gtk/champlain-gtk.h>
3232 #endif
106106 GtkWidget *subvbox_location;
107107 GtkWidget *table_location;
108108 GtkWidget *label_location;
109 #if HAVE_LIBCHAMPLAIN
109 #ifdef HAVE_LIBCHAMPLAIN
110110 GtkWidget *viewport_map;
111111 GtkWidget *map_view_embed;
112112 ChamplainView *map_view;
10321032 row++;
10331033 }
10341034
1035 #if HAVE_LIBCHAMPLAIN
1035 #ifdef HAVE_LIBCHAMPLAIN
10361036 if (has_position &&
10371037 !(information->flags & EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP))
10381038 {
10541054 return;
10551055 }
10561056
1057 #if HAVE_LIBCHAMPLAIN
1057 #ifdef HAVE_LIBCHAMPLAIN
10581058 if (display_map)
10591059 {
10601060 ClutterActor *marker;
18671867 "vbox_location", &information->vbox_location,
18681868 "subvbox_location", &information->subvbox_location,
18691869 "label_location", &information->label_location,
1870 #if HAVE_LIBCHAMPLAIN
1870 #ifdef HAVE_LIBCHAMPLAIN
18711871 "viewport_map", &information->viewport_map,
18721872 #endif
18731873 "vbox_groups", &information->vbox_groups,
0 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
1 /*
2 * Copyright (C) 2007-2010 Collabora Ltd.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 *
18 * Authors: Xavier Claessens <xclaesse@gmail.com>
19 * Philip Withnall <philip.withnall@collabora.co.uk>
20 * Travis Reitter <travis.reitter@collabora.co.uk>
21 */
22
23 #include <config.h>
24
25 #include <string.h>
26 #include <stdlib.h>
27
28 #include <gtk/gtk.h>
29 #include <glib/gi18n-lib.h>
30
31 #include <telepathy-glib/util.h>
32 #include <folks/folks.h>
33 #include <folks/folks-telepathy.h>
34
35 #include <libempathy/empathy-individual-manager.h>
36 #include <libempathy/empathy-utils.h>
37
38 #include "empathy-individual-information-dialog.h"
39 #include "empathy-contact-widget.h"
40 #include "empathy-ui-utils.h"
41
42 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndividualInformationDialog)
43 typedef struct {
44 FolksIndividual *individual;
45 } EmpathyIndividualInformationDialogPriv;
46
47 enum {
48 PROP_0,
49 PROP_INDIVIDUAL,
50 };
51
52 /* Info dialogs currently open.
53 * Each dialog contains a referenced pointer to its Individual */
54 static GList *information_dialogs = NULL;
55
56 G_DEFINE_TYPE (EmpathyIndividualInformationDialog,
57 empathy_individual_information_dialog, GTK_TYPE_DIALOG);
58
59 static void
60 individual_dialogs_response_cb (GtkDialog *dialog,
61 gint response,
62 GList **dialogs)
63 {
64 *dialogs = g_list_remove (*dialogs, dialog);
65 gtk_widget_destroy (GTK_WIDGET (dialog));
66 }
67
68 static gint
69 individual_dialogs_find (GObject *object,
70 FolksIndividual *individual)
71 {
72 EmpathyIndividualInformationDialogPriv *priv = GET_PRIV (object);
73
74 return individual != priv->individual;
75 }
76
77 void
78 empathy_individual_information_dialog_show (FolksIndividual *individual,
79 GtkWindow *parent)
80 {
81 GtkWidget *dialog;
82 GList *l;
83
84 g_return_if_fail (FOLKS_IS_INDIVIDUAL (individual));
85 g_return_if_fail (parent == NULL || GTK_IS_WINDOW (parent));
86
87 l = g_list_find_custom (information_dialogs, individual,
88 (GCompareFunc) individual_dialogs_find);
89
90 if (l != NULL)
91 {
92 gtk_window_present (GTK_WINDOW (l->data));
93 return;
94 }
95
96 /* Create dialog */
97 dialog = g_object_new (EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG,
98 "individual", individual,
99 NULL);
100
101 information_dialogs = g_list_prepend (information_dialogs, dialog);
102 gtk_widget_show (dialog);
103 }
104
105 static void
106 individual_information_dialog_set_individual (
107 EmpathyIndividualInformationDialog *dialog,
108 FolksIndividual *individual)
109 {
110 EmpathyIndividualInformationDialogPriv *priv;
111 GList *personas, *l;
112
113 g_return_if_fail (EMPATHY_INDIVIDUAL_INFORMATION_DIALOG (dialog));
114 g_return_if_fail (FOLKS_IS_INDIVIDUAL (individual));
115
116 priv = GET_PRIV (dialog);
117
118 gtk_window_set_title (GTK_WINDOW (dialog),
119 folks_individual_get_alias (individual));
120
121 personas = folks_individual_get_personas (individual);
122
123 for (l = personas; l != NULL; l = l->next)
124 {
125 GtkWidget *contact_widget;
126 TpContact *tp_contact;
127 EmpathyContact *contact;
128 TpfPersona *persona = l->data;
129
130 if (!TPF_IS_PERSONA (persona))
131 continue;
132
133 tp_contact = tpf_persona_get_contact (persona);
134 contact = empathy_contact_dup_from_tp_contact (tp_contact);
135
136 /* Contact info widget */
137 contact_widget = empathy_contact_widget_new (contact,
138 EMPATHY_CONTACT_WIDGET_SHOW_LOCATION |
139 EMPATHY_CONTACT_WIDGET_SHOW_DETAILS);
140 gtk_container_set_border_width (GTK_CONTAINER (contact_widget), 8);
141 gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (
142 GTK_DIALOG (dialog))), contact_widget, TRUE, TRUE, 0);
143 gtk_widget_show (contact_widget);
144
145 g_object_unref (contact);
146 }
147
148 priv->individual = g_object_ref (individual);
149 }
150
151 static void
152 individual_information_dialog_get_property (GObject *object,
153 guint param_id,
154 GValue *value,
155 GParamSpec *pspec)
156 {
157 EmpathyIndividualInformationDialogPriv *priv = GET_PRIV (object);
158
159 switch (param_id) {
160 case PROP_INDIVIDUAL:
161 g_value_set_object (value, priv->individual);
162 break;
163 default:
164 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
165 break;
166 };
167 }
168
169 static void
170 individual_information_dialog_set_property (GObject *object,
171 guint param_id,
172 const GValue *value,
173 GParamSpec *pspec)
174 {
175 EmpathyIndividualInformationDialog *dialog =
176 EMPATHY_INDIVIDUAL_INFORMATION_DIALOG (object);
177
178 switch (param_id) {
179 case PROP_INDIVIDUAL:
180 individual_information_dialog_set_individual (dialog,
181 FOLKS_INDIVIDUAL (g_value_get_object (value)));
182 break;
183 default:
184 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
185 break;
186 };
187 }
188
189 static void
190 individual_information_dialog_constructed (GObject *object)
191 {
192 GtkDialog *dialog = GTK_DIALOG (object);
193 GtkWidget *button;
194
195 gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
196 gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
197
198 /* Close button */
199 button = gtk_button_new_with_label (GTK_STOCK_CLOSE);
200 gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
201 gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button,
202 GTK_RESPONSE_CLOSE);
203 gtk_widget_set_can_default (button, TRUE);
204 gtk_window_set_default (GTK_WINDOW (dialog), button);
205 gtk_widget_show (button);
206
207 g_signal_connect (dialog, "response",
208 G_CALLBACK (individual_dialogs_response_cb), &information_dialogs);
209 }
210
211 static void
212 individual_information_dialog_finalize (GObject *object)
213 {
214 EmpathyIndividualInformationDialog *dialog;
215 EmpathyIndividualInformationDialogPriv *priv;
216
217 dialog = EMPATHY_INDIVIDUAL_INFORMATION_DIALOG (object);
218 priv = GET_PRIV (dialog);
219
220 g_object_unref (priv->individual);
221
222 G_OBJECT_CLASS (
223 empathy_individual_information_dialog_parent_class)->finalize (object);
224 }
225
226 static void
227 empathy_individual_information_dialog_class_init (
228 EmpathyIndividualInformationDialogClass *klass)
229 {
230 GObjectClass *object_class = G_OBJECT_CLASS (klass);
231
232 object_class->finalize = individual_information_dialog_finalize;
233 object_class->get_property = individual_information_dialog_get_property;
234 object_class->set_property = individual_information_dialog_set_property;
235 object_class->constructed = individual_information_dialog_constructed;
236
237 g_object_class_install_property (object_class,
238 PROP_INDIVIDUAL,
239 g_param_spec_object ("individual",
240 "Folks Individual",
241 "Folks Individual to base the dialog upon",
242 FOLKS_TYPE_INDIVIDUAL,
243 G_PARAM_CONSTRUCT |
244 G_PARAM_READWRITE |
245 G_PARAM_STATIC_STRINGS));
246
247 g_type_class_add_private (object_class,
248 sizeof (EmpathyIndividualInformationDialogPriv));
249 }
250
251 static void
252 empathy_individual_information_dialog_init (
253 EmpathyIndividualInformationDialog *dialog)
254 {
255 EmpathyIndividualInformationDialogPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (
256 dialog, EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG,
257 EmpathyIndividualInformationDialogPriv);
258
259 dialog->priv = priv;
260 priv->individual = NULL;
261 }
0 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
1 /*
2 * Copyright (C) 2010 Collabora Ltd.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 *
18 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
19 * Travis Reitter <travis.reitter@collabora.co.uk>
20 */
21
22 #ifndef __EMPATHY_INDIVIDUAL_INFORMATION_DIALOG_H__
23 #define __EMPATHY_INDIVIDUAL_INFORMATION_DIALOG_H__
24
25 #include <gtk/gtk.h>
26
27 #include <folks/folks.h>
28
29 G_BEGIN_DECLS
30
31 #define EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG (empathy_individual_information_dialog_get_type ())
32 #define EMPATHY_INDIVIDUAL_INFORMATION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG, EmpathyIndividualInformationDialog))
33 #define EMPATHY_INDIVIDUAL_INFORMATION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG, EmpathyIndividualInformationDialogClass))
34 #define EMPATHY_IS_INDIVIDUAL_INFORMATION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG))
35 #define EMPATHY_IS_INDIVIDUAL_INFORMATION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG))
36 #define EMPATHY_INDIVIDUAL_INFORMATION_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDIVIDUAL_INFORMATION_DIALOG, EmpathyIndividualInformationDialogClass))
37
38 typedef struct _EmpathyIndividualInformationDialog EmpathyIndividualInformationDialog;
39 typedef struct _EmpathyIndividualInformationDialogClass EmpathyIndividualInformationDialogClass;
40
41 struct _EmpathyIndividualInformationDialog {
42 GtkDialog parent;
43
44 /*<private>*/
45 gpointer priv;
46 };
47
48 struct _EmpathyIndividualInformationDialogClass {
49 GtkDialogClass parent_class;
50 };
51
52 GType empathy_individual_information_dialog_get_type (void) G_GNUC_CONST;
53
54 void empathy_individual_information_dialog_show (FolksIndividual *individual,
55 GtkWindow *parent);
56
57 G_END_DECLS
58
59 #endif /* __EMPATHY_INDIVIDUAL_INFORMATION_DIALOG_H__ */
0 /*
1 * Copyright (C) 2010 Collabora Ltd.
2 *
3 * This program is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU General Public License as
5 * published by the Free Software Foundation; either version 2 of the
6 * License, or (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public
14 * License along with this program; if not, write to the
15 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
16 * Boston, MA 02110-1301 USA
17 *
18 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
19 */
20
21 #include "config.h"
22
23 #include <string.h>
24
25 #include <glib/gi18n-lib.h>
26 #include <gtk/gtk.h>
27
28 #include <telepathy-glib/util.h>
29
30 #include <folks/folks.h>
31
32 #include <libempathy/empathy-individual-manager.h>
33 #include <libempathy/empathy-utils.h>
34
35 #include "empathy-individual-linker.h"
36 #include "empathy-individual-store.h"
37 #include "empathy-individual-view.h"
38 #include "empathy-individual-widget.h"
39 #include "empathy-persona-store.h"
40 #include "empathy-persona-view.h"
41
42 /**
43 * SECTION:empathy-individual-linker
44 * @title:EmpathyIndividualLinker
45 * @short_description: A widget used to link together #FolksIndividual<!-- -->s
46 * @include: libempathy-gtk/empathy-individual-linker.h
47 *
48 * #EmpathyIndividualLinker is a widget which allows selection of several
49 * #FolksIndividual<!-- -->s to link together to form a single new individual.
50 * The widget provides a preview of the linked individual.
51 */
52
53 /**
54 * EmpathyIndividualLinker:
55 * @parent: parent object
56 *
57 * Widget which extends #GtkBin to provide a list of #FolksIndividual<!-- -->s
58 * to link together.
59 */
60
61 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndividualLinker)
62
63 typedef struct {
64 EmpathyIndividualStore *individual_store; /* owned */
65 EmpathyIndividualView *individual_view; /* child widget */
66 GtkWidget *preview_widget; /* child widget */
67 EmpathyPersonaStore *persona_store; /* owned */
68
69 FolksIndividual *start_individual; /* owned, allow-none */
70 FolksIndividual *new_individual; /* owned, allow-none */
71
72 /* Stores the Individuals whose Personas have been added to the
73 * new_individual */
74 /* unowned Individual (borrowed from EmpathyIndividualStore) -> bool */
75 GHashTable *changed_individuals;
76 } EmpathyIndividualLinkerPriv;
77
78 enum {
79 PROP_START_INDIVIDUAL = 1,
80 };
81
82 G_DEFINE_TYPE (EmpathyIndividualLinker, empathy_individual_linker,
83 GTK_TYPE_BIN);
84
85 static void
86 contact_toggle_cell_data_func (GtkTreeViewColumn *tree_column,
87 GtkCellRenderer *cell,
88 GtkTreeModel *tree_model,
89 GtkTreeIter *iter,
90 EmpathyIndividualLinker *self)
91 {
92 EmpathyIndividualLinkerPriv *priv;
93 FolksIndividual *individual;
94 gboolean is_group, individual_added;
95
96 priv = GET_PRIV (self);
97
98 gtk_tree_model_get (tree_model, iter,
99 EMPATHY_INDIVIDUAL_STORE_COL_IS_GROUP, &is_group,
100 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
101 -1);
102
103 individual_added = GPOINTER_TO_UINT (g_hash_table_lookup (
104 priv->changed_individuals, individual));
105
106 /* We don't want to show checkboxes next to the group rows.
107 * All checkboxes should be sensitive except the checkbox for the start
108 * individual, which should be permanently active and insensitive */
109 g_object_set (cell,
110 "visible", !is_group,
111 "sensitive", individual != priv->start_individual,
112 "active", individual_added || individual == priv->start_individual,
113 NULL);
114
115 tp_clear_object (&individual);
116 }
117
118 static void
119 link_individual (EmpathyIndividualLinker *self,
120 FolksIndividual *individual)
121 {
122 EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
123 GList *new_persona_list;
124
125 /* Add the individual to the link */
126 g_hash_table_insert (priv->changed_individuals, individual,
127 GUINT_TO_POINTER (TRUE));
128
129 /* Add personas which are in @individual to priv->new_individual, appending
130 * them to the list of personas.
131 * This is rather slow. */
132 new_persona_list = g_list_copy (folks_individual_get_personas (
133 priv->new_individual));
134 new_persona_list = g_list_concat (new_persona_list,
135 g_list_copy (folks_individual_get_personas (individual)));
136 folks_individual_set_personas (priv->new_individual, new_persona_list);
137 g_list_free (new_persona_list);
138 }
139
140 static void
141 unlink_individual (EmpathyIndividualLinker *self,
142 FolksIndividual *individual)
143 {
144 EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
145 GList *new_persona_list, *old_persona_list, *removing_personas, *l;
146
147 /* Remove the individual from the link */
148 g_hash_table_remove (priv->changed_individuals, individual);
149
150 /* Remove personas which are in @individual from priv->new_individual.
151 * This is rather slow. */
152 old_persona_list = folks_individual_get_personas (priv->new_individual);
153 removing_personas = folks_individual_get_personas (individual);
154 new_persona_list = NULL;
155
156 for (l = old_persona_list; l != NULL; l = l->next)
157 {
158 GList *removing = g_list_find (removing_personas, l->data);
159
160 if (removing == NULL)
161 new_persona_list = g_list_prepend (new_persona_list, l->data);
162 }
163
164 new_persona_list = g_list_reverse (new_persona_list);
165 folks_individual_set_personas (priv->new_individual, new_persona_list);
166 g_list_free (new_persona_list);
167 }
168
169 static void
170 toggle_individual_row (EmpathyIndividualLinker *self,
171 GtkTreePath *path)
172 {
173 EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
174 FolksIndividual *individual;
175 GtkTreeIter iter;
176 GtkTreeModel *tree_model;
177 gboolean individual_added;
178
179 tree_model = GTK_TREE_MODEL (priv->individual_store);
180
181 gtk_tree_model_get_iter (tree_model, &iter, path);
182 gtk_tree_model_get (tree_model, &iter,
183 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
184 -1);
185
186 individual_added = GPOINTER_TO_UINT (g_hash_table_lookup (
187 priv->changed_individuals, individual));
188
189 /* Toggle the Individual's linked status */
190 if (individual_added)
191 unlink_individual (self, individual);
192 else
193 link_individual (self, individual);
194
195 g_object_unref (individual);
196 }
197
198 static void
199 row_toggled_cb (GtkCellRendererToggle *cell_renderer,
200 const gchar *path,
201 EmpathyIndividualLinker *self)
202 {
203 GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
204 toggle_individual_row (self, tree_path);
205 gtk_tree_path_free (tree_path);
206 }
207
208 static void
209 search_bar_activate_cb (EmpathyLiveSearch *search_bar,
210 EmpathyIndividualLinker *self)
211 {
212 EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
213 GtkTreeSelection *selection;
214 GList *rows, *l;
215
216 /* Toggle the status of the selected individuals */
217 selection = gtk_tree_view_get_selection (
218 GTK_TREE_VIEW (priv->individual_view));
219 rows = gtk_tree_selection_get_selected_rows (selection, NULL);
220
221 for (l = rows; l != NULL; l = l->next)
222 {
223 GtkTreePath *path = (GtkTreePath *) l->data;
224 toggle_individual_row (self, path);
225 gtk_tree_path_free (path);
226 }
227
228 g_list_free (rows);
229 }
230
231 static void
232 set_up (EmpathyIndividualLinker *self)
233 {
234 EmpathyIndividualLinkerPriv *priv;
235 EmpathyIndividualManager *individual_manager;
236 GtkCellRenderer *cell_renderer;
237 GtkPaned *paned;
238 GtkWidget *label, *scrolled_window, *search_bar;
239 GtkBox *vbox;
240 EmpathyPersonaView *persona_view;
241
242 priv = GET_PRIV (self);
243
244 /* Layout panes */
245 paned = GTK_PANED (gtk_hpaned_new ());
246
247 /* Left column heading */
248 vbox = GTK_BOX (gtk_vbox_new (FALSE, 6));
249 label = gtk_label_new (_("Select contacts to link"));
250 gtk_box_pack_start (vbox, label, FALSE, TRUE, 0);
251 gtk_widget_show (label);
252
253 /* Individual selector */
254 individual_manager = empathy_individual_manager_dup_singleton ();
255 priv->individual_store = empathy_individual_store_new (individual_manager);
256 g_object_unref (individual_manager);
257
258 empathy_individual_store_set_show_protocols (priv->individual_store, FALSE);
259
260 priv->individual_view = empathy_individual_view_new (priv->individual_store,
261 EMPATHY_INDIVIDUAL_VIEW_FEATURE_NONE, EMPATHY_INDIVIDUAL_FEATURE_NONE);
262 empathy_individual_view_set_show_offline (priv->individual_view, TRUE);
263
264 /* Add a checkbox column to the selector */
265 cell_renderer = gtk_cell_renderer_toggle_new ();
266 g_signal_connect (cell_renderer, "toggled", (GCallback) row_toggled_cb, self);
267 gtk_tree_view_insert_column_with_data_func (
268 GTK_TREE_VIEW (priv->individual_view), 0, NULL, cell_renderer,
269 (GtkTreeCellDataFunc) contact_toggle_cell_data_func, self, NULL);
270
271 scrolled_window = gtk_scrolled_window_new (NULL, NULL);
272 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
273 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
274 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
275 GTK_SHADOW_IN);
276 gtk_container_add (GTK_CONTAINER (scrolled_window),
277 GTK_WIDGET (priv->individual_view));
278 gtk_widget_show (GTK_WIDGET (priv->individual_view));
279
280 gtk_box_pack_start (vbox, scrolled_window, TRUE, TRUE, 0);
281 gtk_widget_show (scrolled_window);
282
283 /* Live search */
284 search_bar = empathy_live_search_new (GTK_WIDGET (priv->individual_view));
285 empathy_individual_view_set_live_search (priv->individual_view,
286 EMPATHY_LIVE_SEARCH (search_bar));
287 g_signal_connect (search_bar, "activate", (GCallback) search_bar_activate_cb,
288 self);
289
290 gtk_box_pack_end (vbox, search_bar, FALSE, TRUE, 0);
291
292 gtk_paned_pack1 (paned, GTK_WIDGET (vbox), TRUE, FALSE);
293 gtk_widget_show (GTK_WIDGET (vbox));
294
295 /* Right column heading */
296 vbox = GTK_BOX (gtk_vbox_new (FALSE, 6));
297 label = gtk_label_new (_("New contact preview"));
298 gtk_box_pack_start (vbox, label, FALSE, TRUE, 0);
299 gtk_widget_show (label);
300
301 /* New individual preview */
302 priv->preview_widget = empathy_individual_widget_new (priv->new_individual,
303 EMPATHY_CONTACT_WIDGET_SHOW_DETAILS);
304 gtk_box_pack_start (vbox, priv->preview_widget, FALSE, TRUE, 0);
305 gtk_widget_show (priv->preview_widget);
306
307 /* Persona list */
308 scrolled_window = gtk_scrolled_window_new (NULL, NULL);
309 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
310 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
311 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
312 GTK_SHADOW_IN);
313
314 priv->persona_store = empathy_persona_store_new (priv->new_individual);
315 empathy_persona_store_set_show_protocols (priv->persona_store, TRUE);
316 persona_view = empathy_persona_view_new (priv->persona_store);
317 empathy_persona_view_set_show_offline (persona_view, TRUE);
318
319 gtk_container_add (GTK_CONTAINER (scrolled_window),
320 GTK_WIDGET (persona_view));
321 gtk_widget_show (GTK_WIDGET (persona_view));
322
323 gtk_box_pack_start (vbox, scrolled_window, TRUE, TRUE, 0);
324 gtk_widget_show (scrolled_window);
325
326 gtk_paned_pack2 (paned, GTK_WIDGET (vbox), TRUE, FALSE);
327 gtk_widget_show (GTK_WIDGET (vbox));
328
329 /* Add the panes to the bin */
330 gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (paned));
331 gtk_widget_show (GTK_WIDGET (paned));
332 }
333
334 static void
335 empathy_individual_linker_init (EmpathyIndividualLinker *self)
336 {
337 EmpathyIndividualLinkerPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
338 EMPATHY_TYPE_INDIVIDUAL_LINKER, EmpathyIndividualLinkerPriv);
339
340 self->priv = priv;
341
342 priv->changed_individuals = g_hash_table_new (NULL, NULL);
343
344 set_up (self);
345 }
346
347 static void
348 get_property (GObject *object,
349 guint param_id,
350 GValue *value,
351 GParamSpec *pspec)
352 {
353 EmpathyIndividualLinkerPriv *priv;
354
355 priv = GET_PRIV (object);
356
357 switch (param_id)
358 {
359 case PROP_START_INDIVIDUAL:
360 g_value_set_object (value, priv->start_individual);
361 break;
362 default:
363 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
364 break;
365 }
366 }
367
368 static void
369 set_property (GObject *object,
370 guint param_id,
371 const GValue *value,
372 GParamSpec *pspec)
373 {
374 EmpathyIndividualLinkerPriv *priv;
375
376 priv = GET_PRIV (object);
377
378 switch (param_id)
379 {
380 case PROP_START_INDIVIDUAL:
381 empathy_individual_linker_set_start_individual (
382 EMPATHY_INDIVIDUAL_LINKER (object), g_value_get_object (value));
383 break;
384 default:
385 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
386 break;
387 }
388 }
389
390 static void
391 dispose (GObject *object)
392 {
393 EmpathyIndividualLinkerPriv *priv = GET_PRIV (object);
394
395 tp_clear_object (&priv->individual_store);
396 tp_clear_object (&priv->persona_store);
397 tp_clear_object (&priv->start_individual);
398 tp_clear_object (&priv->new_individual);
399
400 G_OBJECT_CLASS (empathy_individual_linker_parent_class)->dispose (object);
401 }
402
403 static void
404 finalize (GObject *object)
405 {
406 EmpathyIndividualLinkerPriv *priv = GET_PRIV (object);
407
408 g_hash_table_destroy (priv->changed_individuals);
409
410 G_OBJECT_CLASS (empathy_individual_linker_parent_class)->finalize (object);
411 }
412
413 static void
414 size_request (GtkWidget *widget,
415 GtkRequisition *requisition)
416 {
417 GtkBin *bin = GTK_BIN (widget);
418 GtkWidget *child;
419
420 requisition->width =
421 gtk_container_get_border_width (GTK_CONTAINER (widget)) * 2;
422 requisition->height =
423 gtk_container_get_border_width (GTK_CONTAINER (widget)) * 2;
424
425 child = gtk_bin_get_child (bin);
426
427 if (child && gtk_widget_get_visible (child))
428 {
429 GtkRequisition child_requisition;
430
431 gtk_widget_size_request (child, &child_requisition);
432
433 requisition->width += child_requisition.width;
434 requisition->height += child_requisition.height;
435 }
436 }
437
438 static void
439 size_allocate (GtkWidget *widget,
440 GtkAllocation *allocation)
441 {
442 GtkBin *bin = GTK_BIN (widget);
443 GtkAllocation child_allocation;
444 GtkWidget *child;
445
446 gtk_widget_set_allocation (widget, allocation);
447
448 child = gtk_bin_get_child (bin);
449
450 if (child && gtk_widget_get_visible (child))
451 {
452 child_allocation.x = allocation->x +
453 gtk_container_get_border_width (GTK_CONTAINER (widget));
454 child_allocation.y = allocation->y +
455 gtk_container_get_border_width (GTK_CONTAINER (widget));
456 child_allocation.width = MAX (allocation->width -
457 gtk_container_get_border_width (GTK_CONTAINER (widget)) * 2, 0);
458 child_allocation.height = MAX (allocation->height -
459 gtk_container_get_border_width (GTK_CONTAINER (widget)) * 2, 0);
460
461 gtk_widget_size_allocate (child, &child_allocation);
462 }
463 }
464
465 static void
466 empathy_individual_linker_class_init (EmpathyIndividualLinkerClass *klass)
467 {
468 GObjectClass *object_class = G_OBJECT_CLASS (klass);
469 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
470
471 object_class->get_property = get_property;
472 object_class->set_property = set_property;
473 object_class->dispose = dispose;
474 object_class->finalize = finalize;
475
476 widget_class->size_request = size_request;
477 widget_class->size_allocate = size_allocate;
478
479 /**
480 * EmpathyIndividualLinker:start-individual:
481 *
482 * The #FolksIndividual to link other individuals to. This individual is
483 * selected by default in the list of individuals, and cannot be unselected.
484 * This ensures that empathy_individual_linker_get_linked_personas() will
485 * always return at least one persona to link.
486 */
487 g_object_class_install_property (object_class, PROP_START_INDIVIDUAL,
488 g_param_spec_object ("start-individual",
489 "Start Individual",
490 "The #FolksIndividual to link other individuals to.",
491 FOLKS_TYPE_INDIVIDUAL,
492 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
493
494 g_type_class_add_private (object_class, sizeof (EmpathyIndividualLinkerPriv));
495 }
496
497 /**
498 * empathy_individual_linker_new:
499 * @start_individual: (allow-none): the #FolksIndividual to link to, or %NULL
500 *
501 * Creates a new #EmpathyIndividualLinker.
502 *
503 * Return value: a new #EmpathyIndividualLinker
504 */
505 GtkWidget *
506 empathy_individual_linker_new (FolksIndividual *start_individual)
507 {
508 g_return_val_if_fail (start_individual == NULL ||
509 FOLKS_IS_INDIVIDUAL (start_individual), NULL);
510
511 return g_object_new (EMPATHY_TYPE_INDIVIDUAL_LINKER,
512 "start-individual", start_individual,
513 NULL);
514 }
515
516 /**
517 * empathy_individual_linker_get_start_individual:
518 * @self: an #EmpathyIndividualLinker
519 *
520 * Get the value of #EmpathyIndividualLinker:start-individual.
521 *
522 * Return value: (transfer none): the start individual for linking, or %NULL
523 */
524 FolksIndividual *
525 empathy_individual_linker_get_start_individual (EmpathyIndividualLinker *self)
526 {
527 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self), NULL);
528
529 return GET_PRIV (self)->start_individual;
530 }
531
532 /**
533 * empathy_individual_linker_set_start_individual:
534 * @self: an #EmpathyIndividualLinker
535 * @individual: (allow-none): the start individual, or %NULL
536 *
537 * Set the value of #EmpathyIndividualLinker:start-individual to @individual.
538 */
539 void
540 empathy_individual_linker_set_start_individual (EmpathyIndividualLinker *self,
541 FolksIndividual *individual)
542 {
543 EmpathyIndividualLinkerPriv *priv;
544
545 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self));
546 g_return_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual));
547
548 priv = GET_PRIV (self);
549
550 tp_clear_object (&priv->start_individual);
551 tp_clear_object (&priv->new_individual);
552 g_hash_table_remove_all (priv->changed_individuals);
553
554 if (individual != NULL)
555 {
556 priv->start_individual = g_object_ref (individual);
557 priv->new_individual = folks_individual_new (
558 folks_individual_get_personas (individual));
559 gtk_tree_view_set_model (GTK_TREE_VIEW (priv->individual_view),
560 GTK_TREE_MODEL (priv->individual_store));
561 }
562 else
563 {
564 priv->start_individual = NULL;
565 priv->new_individual = NULL;
566
567 /* We only display Individuals in the individual view if we have a
568 * new_individual to link them into */
569 gtk_tree_view_set_model (GTK_TREE_VIEW (priv->individual_view), NULL);
570 }
571
572 empathy_individual_widget_set_individual (
573 EMPATHY_INDIVIDUAL_WIDGET (priv->preview_widget), priv->new_individual);
574 empathy_persona_store_set_individual (priv->persona_store,
575 priv->new_individual);
576
577 g_object_notify (G_OBJECT (self), "start-individual");
578 }
579
580 /**
581 * empathy_individual_linker_get_linked_personas:
582 * @self: an #EmpathyIndividualLinker
583 *
584 * Return a list of the #FolksPersona<!-- -->s which comprise the linked
585 * individual currently displayed in the widget.
586 *
587 * The return value is guaranteed to contain at least one element.
588 *
589 * Return value: (transfer none) (element-type Folks.Persona): a list of
590 * #FolksPersona<!-- -->s to link together
591 */
592 GList *
593 empathy_individual_linker_get_linked_personas (EmpathyIndividualLinker *self)
594 {
595 EmpathyIndividualLinkerPriv *priv;
596 GList *personas;
597
598 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self), NULL);
599
600 priv = GET_PRIV (self);
601
602 if (priv->new_individual == NULL)
603 return NULL;
604
605 personas = folks_individual_get_personas (priv->new_individual);
606 g_assert (personas != NULL);
607 return personas;
608 }
0 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
1 /*
2 * Copyright (C) 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 *
19 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
20 */
21
22 #ifndef __EMPATHY_INDIVIDUAL_LINKER_H__
23 #define __EMPATHY_INDIVIDUAL_LINKER_H__
24
25 #include <gtk/gtk.h>
26
27 #include <folks/folks.h>
28
29 G_BEGIN_DECLS
30
31 #define EMPATHY_TYPE_INDIVIDUAL_LINKER (empathy_individual_linker_get_type ())
32 #define EMPATHY_INDIVIDUAL_LINKER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
33 EMPATHY_TYPE_INDIVIDUAL_LINKER, EmpathyIndividualLinker))
34 #define EMPATHY_INDIVIDUAL_LINKER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \
35 EMPATHY_TYPE_INDIVIDUAL_LINKER, EmpathyIndividualLinkerClass))
36 #define EMPATHY_IS_INDIVIDUAL_LINKER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
37 EMPATHY_TYPE_INDIVIDUAL_LINKER))
38 #define EMPATHY_IS_INDIVIDUAL_LINKER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
39 EMPATHY_TYPE_INDIVIDUAL_LINKER))
40 #define EMPATHY_INDIVIDUAL_LINKER_GET_CLASS(o) ( \
41 G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDIVIDUAL_LINKER, \
42 EmpathyIndividualLinkerClass))
43
44 typedef struct {
45 GtkBin parent;
46
47 /*<private>*/
48 gpointer priv;
49 } EmpathyIndividualLinker;
50
51 typedef struct {
52 GtkBinClass parent_class;
53 } EmpathyIndividualLinkerClass;
54
55 GType empathy_individual_linker_get_type (void) G_GNUC_CONST;
56 GtkWidget * empathy_individual_linker_new (FolksIndividual *start_individual);
57
58 FolksIndividual * empathy_individual_linker_get_start_individual (
59 EmpathyIndividualLinker *self);
60 void empathy_individual_linker_set_start_individual (
61 EmpathyIndividualLinker *self,
62 FolksIndividual *individual);
63
64 GList * empathy_individual_linker_get_linked_personas (
65 EmpathyIndividualLinker *self);
66
67 G_END_DECLS
68
69 #endif /* __EMPATHY_INDIVIDUAL_LINKER_H__ */
2727 #include <gtk/gtk.h>
2828 #include <telepathy-glib/util.h>
2929 #include <telepathy-logger/log-manager.h>
30 #include <folks/folks.h>
31 #include <folks/folks-telepathy.h>
3032
3133 #include <libempathy/empathy-call-factory.h>
3234 #include <libempathy/empathy-dispatcher.h>
4042 #include "empathy-log-window.h"
4143 #include "empathy-contact-dialogs.h"
4244 #include "empathy-individual-dialogs.h"
45 #include "empathy-individual-information-dialog.h"
4346 #include "empathy-ui-utils.h"
4447 #include "empathy-share-my-desktop.h"
48 #include "empathy-linking-dialog.h"
49
50 static void
51 individual_menu_add_personas (GtkMenuShell *menu,
52 FolksIndividual *individual,
53 EmpathyIndividualFeatureFlags features)
54 {
55 GtkWidget *item;
56 GList *personas, *l;
57 guint persona_count = 0;
58
59 g_return_if_fail (GTK_IS_MENU (menu));
60 g_return_if_fail (FOLKS_IS_INDIVIDUAL (individual));
61 g_return_if_fail (empathy_folks_individual_contains_contact (individual));
62
63 personas = folks_individual_get_personas (individual);
64
65 /* Make sure we've got enough valid entries for these menu items to add
66 * functionality */
67 for (l = personas; l != NULL; l = l->next)
68 {
69 if (!TPF_IS_PERSONA (l->data))
70 continue;
71
72 persona_count++;
73 }
74
75 /* return early if these entries would add nothing beyond the "quick" items */
76 if (persona_count <= 1)
77 return;
78
79 /* add a separator before the list of personas */
80 item = gtk_separator_menu_item_new ();
81 gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
82 gtk_widget_show (item);
83
84 personas = folks_individual_get_personas (individual);
85 for (l = personas; l != NULL; l = l->next)
86 {
87 GtkWidget *image;
88 GtkWidget *contact_item;
89 GtkWidget *contact_submenu;
90 TpContact *tp_contact;
91 EmpathyContact *contact;
92 TpfPersona *persona = l->data;
93 gchar *label;
94 FolksPersonaStore *store;
95 const gchar *account;
96 GtkWidget *action;
97
98 if (!TPF_IS_PERSONA (persona))
99 continue;
100
101 tp_contact = tpf_persona_get_contact (persona);
102 contact = empathy_contact_dup_from_tp_contact (tp_contact);
103
104 store = folks_persona_get_store (FOLKS_PERSONA (persona));
105 account = folks_persona_store_get_display_name (store);
106 label = g_strdup_printf (_("%s (%s)"),
107 folks_persona_get_display_id (FOLKS_PERSONA (persona)), account);
108
109 contact_item = gtk_image_menu_item_new_with_label (label);
110 contact_submenu = gtk_menu_new ();
111 gtk_menu_item_set_submenu (GTK_MENU_ITEM (contact_item), contact_submenu);
112 image = gtk_image_new_from_icon_name (
113 empathy_icon_name_for_contact (contact), GTK_ICON_SIZE_MENU);
114 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (contact_item), image);
115 gtk_widget_show (image);
116
117 /* Chat */
118 if (features & EMPATHY_INDIVIDUAL_FEATURE_CHAT)
119 {
120 action = empathy_individual_chat_menu_item_new (NULL, contact);
121 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
122 gtk_widget_show (action);
123 }
124
125 if (features & EMPATHY_INDIVIDUAL_FEATURE_CALL)
126 {
127 /* Audio Call */
128 action = empathy_individual_audio_call_menu_item_new (NULL, contact);
129 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
130 gtk_widget_show (action);
131
132 /* Video Call */
133 action = empathy_individual_video_call_menu_item_new (NULL, contact);
134 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
135 gtk_widget_show (action);
136 }
137
138 /* Log */
139 if (features & EMPATHY_INDIVIDUAL_FEATURE_LOG)
140 {
141 action = empathy_individual_log_menu_item_new (NULL, contact);
142 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
143 gtk_widget_show (action);
144 }
145
146 /* Invite */
147 action = empathy_individual_invite_menu_item_new (NULL, contact);
148 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
149 gtk_widget_show (action);
150
151 /* File transfer */
152 action = empathy_individual_file_transfer_menu_item_new (NULL, contact);
153 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
154 gtk_widget_show (action);
155
156 /* Share my desktop */
157 action = empathy_individual_share_my_desktop_menu_item_new (NULL,
158 contact);
159 gtk_menu_shell_append (GTK_MENU_SHELL (contact_submenu), action);
160 gtk_widget_show (action);
161
162 gtk_menu_shell_append (GTK_MENU_SHELL (menu), contact_item);
163 gtk_widget_show (contact_item);
164
165 g_free (label);
166 g_object_unref (contact);
167 }
168 }
45169
46170 GtkWidget *
47171 empathy_individual_menu_new (FolksIndividual *individual,
70194 /* Chat */
71195 if (features & EMPATHY_INDIVIDUAL_FEATURE_CHAT)
72196 {
73 item = empathy_individual_chat_menu_item_new (individual);
197 item = empathy_individual_chat_menu_item_new (individual, NULL);
74198 if (item != NULL)
75199 {
76200 gtk_menu_shell_append (shell, item);
81205 if (features & EMPATHY_INDIVIDUAL_FEATURE_CALL)
82206 {
83207 /* Audio Call */
84 item = empathy_individual_audio_call_menu_item_new (individual);
208 item = empathy_individual_audio_call_menu_item_new (individual, NULL);
85209 gtk_menu_shell_append (shell, item);
86210 gtk_widget_show (item);
87211
88212 /* Video Call */
89 item = empathy_individual_video_call_menu_item_new (individual);
213 item = empathy_individual_video_call_menu_item_new (individual, NULL);
90214 gtk_menu_shell_append (shell, item);
91215 gtk_widget_show (item);
92216 }
94218 /* Log */
95219 if (features & EMPATHY_INDIVIDUAL_FEATURE_LOG)
96220 {
97 item = empathy_individual_log_menu_item_new (individual);
221 item = empathy_individual_log_menu_item_new (individual, NULL);
98222 gtk_menu_shell_append (shell, item);
99223 gtk_widget_show (item);
100224 }
101225
102226 /* Invite */
103 item = empathy_individual_invite_menu_item_new (individual);
227 item = empathy_individual_invite_menu_item_new (individual, NULL);
104228 gtk_menu_shell_append (shell, item);
105229 gtk_widget_show (item);
106230
107231 /* File transfer */
108 item = empathy_individual_file_transfer_menu_item_new (individual);
232 item = empathy_individual_file_transfer_menu_item_new (individual, NULL);
109233 gtk_menu_shell_append (shell, item);
110234 gtk_widget_show (item);
111235
112236 /* Share my desktop */
113237 /* FIXME we should add the "Share my desktop" menu item if Vino is
114238 a registered handler in MC5 */
115 item = empathy_individual_share_my_desktop_menu_item_new (individual);
239 item = empathy_individual_share_my_desktop_menu_item_new (individual, NULL);
116240 gtk_menu_shell_append (shell, item);
117241 gtk_widget_show (item);
242
243 /* Menu items to target specific contacts */
244 individual_menu_add_personas (GTK_MENU_SHELL (menu), individual, features);
118245
119246 /* Separator */
120247 if (features & (EMPATHY_INDIVIDUAL_FEATURE_EDIT |
121248 EMPATHY_INDIVIDUAL_FEATURE_INFO |
122 EMPATHY_INDIVIDUAL_FEATURE_FAVOURITE))
249 EMPATHY_INDIVIDUAL_FEATURE_FAVOURITE |
250 EMPATHY_INDIVIDUAL_FEATURE_LINK))
123251 {
124252 item = gtk_separator_menu_item_new ();
125253 gtk_menu_shell_append (shell, item);
130258 if (features & EMPATHY_INDIVIDUAL_FEATURE_EDIT)
131259 {
132260 item = empathy_individual_edit_menu_item_new (individual);
261 gtk_menu_shell_append (shell, item);
262 gtk_widget_show (item);
263 }
264
265 /* Link */
266 if (features & EMPATHY_INDIVIDUAL_FEATURE_LINK)
267 {
268 item = empathy_individual_link_menu_item_new (individual);
133269 gtk_menu_shell_append (shell, item);
134270 gtk_widget_show (item);
135271 }
234370 return item;
235371 }
236372
373 typedef gboolean (*SensitivityPredicate) (EmpathyContact *contact);
374
375 /* Like menu_item_set_first_contact(), but always operates upon the given
376 * contact */
377 static gboolean
378 menu_item_set_contact (GtkWidget *item,
379 EmpathyContact *contact,
380 GCallback activate_callback,
381 SensitivityPredicate sensitivity_predicate)
382 {
383 gboolean contact_valid = TRUE;
384
385 if (sensitivity_predicate != NULL)
386 {
387 contact_valid = sensitivity_predicate (contact);
388 gtk_widget_set_sensitive (item, sensitivity_predicate (contact));
389 }
390
391 g_signal_connect (item, "activate", G_CALLBACK (activate_callback),
392 contact);
393
394 return contact_valid;
395 }
396
397 /**
398 * Set the given menu @item to call @activate_callback upon the first valid
399 * TpContact associated with @individual whenever @item is activated.
400 *
401 * @sensitivity_predicate is an optional function to determine whether the menu
402 * item should be insensitive (if the function returns @FALSE). Otherwise, the
403 * menu item's sensitivity will not change.
404 */
405 static GtkWidget *
406 menu_item_set_first_contact (GtkWidget *item,
407 FolksIndividual *individual,
408 GCallback activate_callback,
409 SensitivityPredicate sensitivity_predicate)
410 {
411 GList *personas, *l;
412
413 personas = folks_individual_get_personas (individual);
414 for (l = personas; l != NULL; l = l->next)
415 {
416 TpContact *tp_contact;
417 EmpathyContact *contact;
418 TpfPersona *persona = l->data;
419 gboolean contact_valid = TRUE;
420
421 if (!TPF_IS_PERSONA (persona))
422 continue;
423
424 tp_contact = tpf_persona_get_contact (persona);
425 contact = empathy_contact_dup_from_tp_contact (tp_contact);
426
427 contact_valid = menu_item_set_contact (item, contact,
428 G_CALLBACK (activate_callback), sensitivity_predicate);
429
430 g_object_unref (contact);
431
432 /* stop after the first valid match */
433 if (contact_valid)
434 break;
435 }
436
437 return item;
438 }
439
237440 static void
238441 empathy_individual_chat_menu_item_activated (GtkMenuItem *item,
239 FolksIndividual *individual)
240 {
241 EmpathyContact *contact;
242
243 contact = empathy_contact_dup_from_folks_individual (individual);
244
245 g_return_if_fail (contact != NULL);
246
247 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time (),
248 NULL, NULL);
249
250 g_object_unref (contact);
251 }
252
253 GtkWidget *
254 empathy_individual_chat_menu_item_new (FolksIndividual *individual)
442 EmpathyContact *contact)
443 {
444 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
445
446 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time ());
447 }
448
449 GtkWidget *
450 empathy_individual_chat_menu_item_new (FolksIndividual *individual,
451 EmpathyContact *contact)
255452 {
256453 GtkWidget *item;
257454 GtkWidget *image;
258455
259 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
260 g_return_val_if_fail (empathy_folks_individual_contains_contact (individual),
456 g_return_val_if_fail ((FOLKS_IS_INDIVIDUAL (individual) &&
457 empathy_folks_individual_contains_contact (individual)) ||
458 EMPATHY_IS_CONTACT (contact),
261459 NULL);
262460
263461 item = gtk_image_menu_item_new_with_mnemonic (_("_Chat"));
266464 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
267465 gtk_widget_show (image);
268466
269 g_signal_connect (item, "activate",
270 G_CALLBACK (empathy_individual_chat_menu_item_activated), individual);
467 if (contact != NULL)
468 {
469 menu_item_set_contact (item, contact,
470 G_CALLBACK (empathy_individual_chat_menu_item_activated), NULL);
471 }
472 else
473 {
474 menu_item_set_first_contact (item, individual,
475 G_CALLBACK (empathy_individual_chat_menu_item_activated), NULL);
476 }
271477
272478 return item;
273479 }
274480
275481 static void
276482 empathy_individual_audio_call_menu_item_activated (GtkMenuItem *item,
277 FolksIndividual *individual)
278 {
279 EmpathyContact *contact;
280 EmpathyCallFactory *factory;
281
282 contact = empathy_contact_dup_from_folks_individual (individual);
283
483 EmpathyContact *contact)
484 {
284485 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
285486
286 factory = empathy_call_factory_get ();
287487 empathy_call_factory_new_call_with_streams (contact, TRUE, FALSE,
288 gtk_get_current_event_time (), NULL, NULL);
289 g_object_unref (contact);
290 }
291
292 GtkWidget *
293 empathy_individual_audio_call_menu_item_new (FolksIndividual *individual)
488 gtk_get_current_event_time (), NULL);
489 }
490
491 GtkWidget *
492 empathy_individual_audio_call_menu_item_new (FolksIndividual *individual,
493 EmpathyContact *contact)
294494 {
295495 GtkWidget *item;
296496 GtkWidget *image;
297 EmpathyContact *contact;
298
299 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
300
301 contact = empathy_contact_dup_from_folks_individual (individual);
302
303 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
497
498 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
499 EMPATHY_IS_CONTACT (contact),
500 NULL);
304501
305502 item = gtk_image_menu_item_new_with_mnemonic (C_("menu item", "_Audio Call"));
306503 image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_VOIP, GTK_ICON_SIZE_MENU);
307504 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
308 gtk_widget_set_sensitive (item, empathy_contact_can_voip_audio (contact));
309505 gtk_widget_show (image);
310506
311 g_signal_connect (item, "activate",
312 G_CALLBACK (empathy_individual_audio_call_menu_item_activated),
313 individual);
314
315 g_object_unref (contact);
507 if (contact != NULL)
508 {
509 menu_item_set_contact (item, contact,
510 G_CALLBACK (empathy_individual_audio_call_menu_item_activated),
511 empathy_contact_can_voip_audio);
512 }
513 else
514 {
515 menu_item_set_first_contact (item, individual,
516 G_CALLBACK (empathy_individual_audio_call_menu_item_activated),
517 empathy_contact_can_voip_audio);
518 }
316519
317520 return item;
318521 }
319522
320523 static void
321524 empathy_individual_video_call_menu_item_activated (GtkMenuItem *item,
322 FolksIndividual *individual)
323 {
324 EmpathyContact *contact;
325 EmpathyCallFactory *factory;
326
327 contact = empathy_contact_dup_from_folks_individual (individual);
328
525 EmpathyContact *contact)
526 {
329527 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
330528
331 factory = empathy_call_factory_get ();
332529 empathy_call_factory_new_call_with_streams (contact, TRUE, TRUE,
333 gtk_get_current_event_time (), NULL, NULL);
334 g_object_unref (contact);
335 }
336
337 GtkWidget *
338 empathy_individual_video_call_menu_item_new (FolksIndividual *individual)
530 gtk_get_current_event_time (), NULL);
531 }
532
533 GtkWidget *
534 empathy_individual_video_call_menu_item_new (FolksIndividual *individual,
535 EmpathyContact *contact)
339536 {
340537 GtkWidget *item;
341538 GtkWidget *image;
342 EmpathyContact *contact;
343
344 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
345
346 contact = empathy_contact_dup_from_folks_individual (individual);
347
348 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
539
540 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
541 EMPATHY_IS_CONTACT (contact),
542 NULL);
349543
350544 item = gtk_image_menu_item_new_with_mnemonic (C_("menu item", "_Video Call"));
351545 image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_VIDEO_CALL,
352546 GTK_ICON_SIZE_MENU);
353547 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
354 gtk_widget_set_sensitive (item, empathy_contact_can_voip_video (contact));
355548 gtk_widget_show (image);
356549
357 g_signal_connect (item, "activate",
358 G_CALLBACK (empathy_individual_video_call_menu_item_activated),
359 individual);
360
361 g_object_unref (contact);
362
363 return item;
364 }
365
366 static void
367 individual_log_menu_item_activate_cb (FolksIndividual *individual)
368 {
369 EmpathyContact *contact;
370
371 contact = empathy_contact_dup_from_folks_individual (individual);
372
550 if (contact != NULL)
551 {
552 menu_item_set_contact (item, contact,
553 G_CALLBACK (empathy_individual_video_call_menu_item_activated),
554 empathy_contact_can_voip_video);
555 }
556 else
557 {
558 menu_item_set_first_contact (item, individual,
559 G_CALLBACK (empathy_individual_video_call_menu_item_activated),
560 empathy_contact_can_voip_video);
561 }
562
563 return item;
564 }
565
566 static void
567 empathy_individual_log_menu_item_activated (GtkMenuItem *item,
568 EmpathyContact *contact)
569 {
373570 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
374571
375572 empathy_log_window_show (empathy_contact_get_account (contact),
376573 empathy_contact_get_id (contact), FALSE, NULL);
377
378 g_object_unref (contact);
379 }
380
381 GtkWidget *
382 empathy_individual_log_menu_item_new (FolksIndividual *individual)
574 }
575
576 static gboolean
577 contact_has_log (EmpathyContact *contact)
383578 {
384579 TplLogManager *manager;
385580 gboolean have_log;
386 GtkWidget *item;
387 GtkWidget *image;
388 EmpathyContact *contact;
389
390 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
391
392 contact = empathy_contact_dup_from_folks_individual (individual);
393
394 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
395581
396582 manager = tpl_log_manager_dup_singleton ();
397583 have_log = tpl_log_manager_exists (manager,
399585 FALSE);
400586 g_object_unref (manager);
401587
588 return have_log;
589 }
590
591 GtkWidget *
592 empathy_individual_log_menu_item_new (FolksIndividual *individual,
593 EmpathyContact *contact)
594 {
595 GtkWidget *item;
596 GtkWidget *image;
597
598 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
599 EMPATHY_IS_CONTACT (contact),
600 NULL);
601
402602 item = gtk_image_menu_item_new_with_mnemonic (_("_Previous Conversations"));
403603 image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_LOG, GTK_ICON_SIZE_MENU);
404604 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
405 gtk_widget_set_sensitive (item, have_log);
406605 gtk_widget_show (image);
407606
408 g_signal_connect_swapped (item, "activate",
409 G_CALLBACK (individual_log_menu_item_activate_cb), individual);
410
411 g_object_unref (contact);
412
413 return item;
414 }
415
416 static void
417 individual_file_transfer_menu_item_activate_cb (FolksIndividual *individual)
418 {
419 EmpathyContact *contact;
420
421 contact = empathy_contact_dup_from_folks_individual (individual);
422
607 if (contact != NULL)
608 {
609 menu_item_set_contact (item, contact,
610 G_CALLBACK (empathy_individual_log_menu_item_activated),
611 contact_has_log);
612 }
613 else
614 {
615 menu_item_set_first_contact (item, individual,
616 G_CALLBACK (empathy_individual_log_menu_item_activated),
617 contact_has_log);
618 }
619
620 return item;
621 }
622
623 static void
624 empathy_individual_file_transfer_menu_item_activated (GtkMenuItem *item,
625 EmpathyContact *contact)
626 {
423627 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
424628
425629 empathy_send_file_with_file_chooser (contact);
426
427 g_object_unref (contact);
428 }
429
430 GtkWidget *
431 empathy_individual_file_transfer_menu_item_new (FolksIndividual *individual)
630 }
631
632 GtkWidget *
633 empathy_individual_file_transfer_menu_item_new (FolksIndividual *individual,
634 EmpathyContact *contact)
432635 {
433636 GtkWidget *item;
434637 GtkWidget *image;
435 EmpathyContact *contact;
436
437 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
438
439 contact = empathy_contact_dup_from_folks_individual (individual);
440
441 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
638
639 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
640 EMPATHY_IS_CONTACT (contact),
641 NULL);
442642
443643 item = gtk_image_menu_item_new_with_mnemonic (_("Send File"));
444644 image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_DOCUMENT_SEND,
445 GTK_ICON_SIZE_MENU);
446 gtk_widget_set_sensitive (item, empathy_contact_can_send_files (contact));
645 GTK_ICON_SIZE_MENU);
447646 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
448647 gtk_widget_show (image);
449648
450 g_signal_connect_swapped (item, "activate",
451 G_CALLBACK (individual_file_transfer_menu_item_activate_cb), individual);
452
453 g_object_unref (contact);
454
455 return item;
456 }
457
458 static void
459 individual_share_my_desktop_menu_item_activate_cb (FolksIndividual *individual)
460 {
461 EmpathyContact *contact;
462
463 contact = empathy_contact_dup_from_folks_individual (individual);
464
649 if (contact != NULL)
650 {
651 menu_item_set_contact (item, contact,
652 G_CALLBACK (empathy_individual_file_transfer_menu_item_activated),
653 empathy_contact_can_send_files);
654 }
655 else
656 {
657 menu_item_set_first_contact (item, individual,
658 G_CALLBACK (empathy_individual_file_transfer_menu_item_activated),
659 empathy_contact_can_send_files);
660 }
661
662 return item;
663 }
664
665 static void
666 empathy_individual_share_my_desktop_menu_item_activated (GtkMenuItem *item,
667 EmpathyContact *contact)
668 {
465669 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
466670
467671 empathy_share_my_desktop_share_with_contact (contact);
468
469 g_object_unref (contact);
470 }
471
472 GtkWidget *
473 empathy_individual_share_my_desktop_menu_item_new (FolksIndividual *individual)
672 }
673
674 GtkWidget *
675 empathy_individual_share_my_desktop_menu_item_new (FolksIndividual *individual,
676 EmpathyContact *contact)
474677 {
475678 GtkWidget *item;
476679 GtkWidget *image;
477 EmpathyContact *contact;
478
479 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
480
481 contact = empathy_contact_dup_from_folks_individual (individual);
482
483 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
680
681 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
682 EMPATHY_IS_CONTACT (contact),
683 NULL);
484684
485685 item = gtk_image_menu_item_new_with_mnemonic (_("Share My Desktop"));
486686 image = gtk_image_new_from_icon_name (GTK_STOCK_NETWORK, GTK_ICON_SIZE_MENU);
487 gtk_widget_set_sensitive (item,
488 empathy_contact_can_use_rfb_stream_tube (contact));
489687 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
490688 gtk_widget_show (image);
491689
492 g_signal_connect_swapped (item, "activate",
493 G_CALLBACK (individual_share_my_desktop_menu_item_activate_cb),
494 individual);
495
496 g_object_unref (contact);
690 if (contact != NULL)
691 {
692 menu_item_set_contact (item, contact,
693 G_CALLBACK (empathy_individual_share_my_desktop_menu_item_activated),
694 empathy_contact_can_use_rfb_stream_tube);
695 }
696 else
697 {
698 menu_item_set_first_contact (item, individual,
699 G_CALLBACK (empathy_individual_share_my_desktop_menu_item_activated),
700 empathy_contact_can_use_rfb_stream_tube);
701 }
497702
498703 return item;
499704 }
525730 static void
526731 individual_info_menu_item_activate_cb (FolksIndividual *individual)
527732 {
528 EmpathyContact *contact;
529
530 contact = empathy_contact_dup_from_folks_individual (individual);
531 empathy_contact_information_dialog_show (contact, NULL);
532
533 tp_clear_object (&contact);
733 empathy_individual_information_dialog_show (individual, NULL);
534734 }
535735
536736 GtkWidget *
614814 return item;
615815 }
616816
817 static void
818 individual_link_menu_item_activate_cb (FolksIndividual *individual)
819 {
820 empathy_linking_dialog_show (individual, NULL);
821 }
822
823 GtkWidget *
824 empathy_individual_link_menu_item_new (FolksIndividual *individual)
825 {
826 GtkWidget *item;
827 /*GtkWidget *image;*/
828
829 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
830
831 item = gtk_image_menu_item_new_with_mnemonic (
832 C_("Link individual (contextual menu)", "_Link…"));
833 /* TODO */
834 /*image = gtk_image_new_from_icon_name (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
835 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
836 gtk_widget_show (image);*/
837
838 g_signal_connect_swapped (item, "activate",
839 G_CALLBACK (individual_link_menu_item_activate_cb), individual);
840
841 return item;
842 }
843
617844 typedef struct
618845 {
619846 FolksIndividual *individual;
847 EmpathyContact *contact;
620848 EmpathyChatroom *chatroom;
621849 } RoomSubMenuData;
622850
623851 static RoomSubMenuData *
624852 room_sub_menu_data_new (FolksIndividual *individual,
625 EmpathyChatroom *chatroom)
853 EmpathyContact *contact,
854 EmpathyChatroom *chatroom)
626855 {
627856 RoomSubMenuData *data;
628857
629 data = g_slice_new (RoomSubMenuData);
630 data->individual = g_object_ref (individual);
858 data = g_slice_new0 (RoomSubMenuData);
859 if (individual != NULL)
860 data->individual = g_object_ref (individual);
861 if (contact != NULL)
862 data->contact = g_object_ref (contact);
631863 data->chatroom = g_object_ref (chatroom);
864
632865 return data;
633866 }
634867
635868 static void
636869 room_sub_menu_data_free (RoomSubMenuData *data)
637870 {
638 g_object_unref (data->individual);
871 tp_clear_object (&data->individual);
872 tp_clear_object (&data->contact);
639873 g_object_unref (data->chatroom);
640874 g_slice_free (RoomSubMenuData, data);
641875 }
645879 RoomSubMenuData *data)
646880 {
647881 EmpathyTpChat *chat;
648 EmpathyContact *contact;
882 EmpathyChatroomManager *mgr;
883 EmpathyContact *contact = NULL;
884 GList *personas, *l;
649885
650886 chat = empathy_chatroom_get_tp_chat (data->chatroom);
651887 if (chat == NULL)
654890 return;
655891 }
656892
657 contact = empathy_contact_dup_from_folks_individual (data->individual);
893 mgr = empathy_chatroom_manager_dup_singleton (NULL);
894
895 if (data->contact != NULL)
896 contact = g_object_ref (data->contact);
897 else
898 {
899 /* find the first of this Individual's contacts who can join this room */
900 personas = folks_individual_get_personas (data->individual);
901 for (l = personas; l != NULL && contact == NULL; l = g_list_next (l))
902 {
903 TpfPersona *persona = l->data;
904 TpContact *tp_contact;
905 GList *rooms;
906
907 if (!TPF_IS_PERSONA (persona))
908 continue;
909
910 tp_contact = tpf_persona_get_contact (persona);
911 contact = empathy_contact_dup_from_tp_contact (tp_contact);
912
913 rooms = empathy_chatroom_manager_get_chatrooms (mgr,
914 empathy_contact_get_account (contact));
915
916 if (g_list_find (rooms, data->chatroom) == NULL)
917 tp_clear_object (&contact);
918
919 /* if contact != NULL here, we've found our match */
920
921 g_list_free (rooms);
922 }
923 }
924
925 g_object_unref (mgr);
926
927 if (contact == NULL)
928 {
929 /* contact disappeared. Ignoring */
930 goto out;
931 }
658932
659933 g_return_if_fail (EMPATHY_IS_CONTACT (contact));
660934
662936 empathy_contact_list_add (EMPATHY_CONTACT_LIST (chat),
663937 contact, _("Inviting you to this room"));
664938
939 out:
665940 g_object_unref (contact);
666941 }
667942
668943 static GtkWidget *
669944 create_room_sub_menu (FolksIndividual *individual,
945 EmpathyContact *contact,
670946 EmpathyChatroom *chatroom)
671947 {
672948 GtkWidget *item;
673949 RoomSubMenuData *data;
674950
675951 item = gtk_menu_item_new_with_label (empathy_chatroom_get_name (chatroom));
676 data = room_sub_menu_data_new (individual, chatroom);
952 data = room_sub_menu_data_new (individual, contact, chatroom);
677953 g_signal_connect_data (item, "activate",
678954 G_CALLBACK (room_sub_menu_activate_cb), data,
679955 (GClosureNotify) room_sub_menu_data_free, 0);
682958 }
683959
684960 GtkWidget *
685 empathy_individual_invite_menu_item_new (FolksIndividual *individual)
961 empathy_individual_invite_menu_item_new (FolksIndividual *individual,
962 EmpathyContact *contact)
686963 {
687964 GtkWidget *item;
688965 GtkWidget *image;
689966 GtkWidget *room_item;
690967 EmpathyChatroomManager *mgr;
691 GList *rooms, *l;
968 GList *personas;
969 GList *rooms = NULL;
970 GList *names = NULL;
971 GList *l;
692972 GtkWidget *submenu = NULL;
693 EmpathyContact *contact;
694
695 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
696
697 contact = empathy_contact_dup_from_folks_individual (individual);
698
699 g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
973 /* map of chat room names to their objects; just a utility to remove
974 * duplicates and to make construction of the alphabetized list easier */
975 GHashTable *name_room_map;
976
977 g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual) ||
978 EMPATHY_IS_CONTACT (contact),
979 NULL);
980
981 name_room_map = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
982 g_object_unref);
700983
701984 item = gtk_image_menu_item_new_with_mnemonic (_("_Invite to Chat Room"));
702985 image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_GROUP_MESSAGE,
704987 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
705988
706989 mgr = empathy_chatroom_manager_dup_singleton (NULL);
707 rooms = empathy_chatroom_manager_get_chatrooms (mgr,
708 empathy_contact_get_account (contact));
709
990
991 if (contact != NULL)
992 {
993 rooms = empathy_chatroom_manager_get_chatrooms (mgr,
994 empathy_contact_get_account (contact));
995 }
996 else
997 {
998 /* collect the rooms from amongst all accounts for this Individual */
999 personas = folks_individual_get_personas (individual);
1000 for (l = personas; l != NULL; l = g_list_next (l))
1001 {
1002 TpfPersona *persona = l->data;
1003 GList *rooms_cur;
1004 TpContact *tp_contact;
1005 EmpathyContact *contact_cur;
1006
1007 if (!TPF_IS_PERSONA (persona))
1008 continue;
1009
1010 tp_contact = tpf_persona_get_contact (persona);
1011 contact_cur = empathy_contact_dup_from_tp_contact (tp_contact);
1012
1013 rooms_cur = empathy_chatroom_manager_get_chatrooms (mgr,
1014 empathy_contact_get_account (contact_cur));
1015 rooms = g_list_concat (rooms, rooms_cur);
1016
1017 g_object_unref (contact_cur);
1018 }
1019 }
1020
1021 /* alphabetize the rooms */
7101022 for (l = rooms; l != NULL; l = g_list_next (l))
7111023 {
7121024 EmpathyChatroom *chatroom = l->data;
1025 gboolean existed;
7131026
7141027 if (empathy_chatroom_get_tp_chat (chatroom) != NULL)
7151028 {
716 if (G_UNLIKELY (submenu == NULL))
717 submenu = gtk_menu_new ();
718
719 room_item = create_room_sub_menu (individual, chatroom);
720 gtk_menu_shell_append ((GtkMenuShell *) submenu, room_item);
721 gtk_widget_show (room_item);
1029 const gchar *name;
1030
1031 name = empathy_chatroom_get_name (chatroom);
1032 existed = (g_hash_table_lookup (name_room_map, name) != NULL);
1033 g_hash_table_insert (name_room_map, (gpointer) name,
1034 g_object_ref (chatroom));
1035
1036 /* this will take care of duplicates in rooms */
1037 if (!existed)
1038 {
1039 names = g_list_insert_sorted (names, (gpointer) name,
1040 (GCompareFunc) g_strcmp0);
1041 }
7221042 }
1043 }
1044
1045 for (l = names; l != NULL; l = g_list_next (l))
1046 {
1047 const gchar *name = l->data;
1048 EmpathyChatroom *chatroom;
1049
1050 if (G_UNLIKELY (submenu == NULL))
1051 submenu = gtk_menu_new ();
1052
1053 chatroom = g_hash_table_lookup (name_room_map, name);
1054 room_item = create_room_sub_menu (individual, contact, chatroom);
1055 gtk_menu_shell_append ((GtkMenuShell *) submenu, room_item);
1056 gtk_widget_show (room_item);
7231057 }
7241058
7251059 if (submenu)
7291063
7301064 gtk_widget_show (image);
7311065
732 g_object_unref (contact);
1066 g_hash_table_destroy (name_room_map);
7331067 g_object_unref (mgr);
1068 g_list_free (names);
7341069 g_list_free (rooms);
7351070
7361071 return item;
3434 EMPATHY_INDIVIDUAL_FEATURE_EDIT = 1 << 3,
3535 EMPATHY_INDIVIDUAL_FEATURE_INFO = 1 << 4,
3636 EMPATHY_INDIVIDUAL_FEATURE_FAVOURITE = 1 << 5,
37 EMPATHY_INDIVIDUAL_FEATURE_ALL = (1 << 6) - 1,
37 EMPATHY_INDIVIDUAL_FEATURE_LINK = 1 << 6,
38 EMPATHY_INDIVIDUAL_FEATURE_ALL = (1 << 7) - 1,
3839 } EmpathyIndividualFeatureFlags;
3940
4041 GtkWidget * empathy_individual_menu_new (FolksIndividual *individual,
4142 EmpathyIndividualFeatureFlags features);
4243 GtkWidget * empathy_individual_add_menu_item_new (FolksIndividual *individual);
43 GtkWidget * empathy_individual_chat_menu_item_new (FolksIndividual *individual);
44 GtkWidget * empathy_individual_chat_menu_item_new (FolksIndividual *individual,
45 EmpathyContact *contact);
4446 GtkWidget * empathy_individual_audio_call_menu_item_new (
45 FolksIndividual *individual);
47 FolksIndividual *individual,
48 EmpathyContact *contact);
4649 GtkWidget * empathy_individual_video_call_menu_item_new (
47 FolksIndividual *individual);
48 GtkWidget * empathy_individual_log_menu_item_new (FolksIndividual *individual);
50 FolksIndividual *individual,
51 EmpathyContact *contact);
52 GtkWidget * empathy_individual_log_menu_item_new (FolksIndividual *individual,
53 EmpathyContact *contact);
4954 GtkWidget * empathy_individual_info_menu_item_new (FolksIndividual *individual);
5055 GtkWidget * empathy_individual_edit_menu_item_new (FolksIndividual *individual);
56 GtkWidget * empathy_individual_link_menu_item_new (FolksIndividual *individual);
5157 GtkWidget * empathy_individual_invite_menu_item_new (
52 FolksIndividual *individual);
58 FolksIndividual *individual,
59 EmpathyContact *contact);
5360 GtkWidget * empathy_individual_file_transfer_menu_item_new (
54 FolksIndividual *individual);
61 FolksIndividual *individual,
62 EmpathyContact *contact);
5563 GtkWidget * empathy_individual_share_my_desktop_menu_item_new (
56 FolksIndividual *individual);
64 FolksIndividual *individual,
65 EmpathyContact *contact);
5766 GtkWidget * empathy_individual_favourite_menu_item_new (
5867 FolksIndividual *individual);
5968
6060 typedef struct
6161 {
6262 EmpathyIndividualManager *manager;
63 gboolean show_offline;
6463 gboolean show_avatars;
6564 gboolean show_groups;
6665 gboolean is_compact;
9291 EmpathyIndividualStore *self;
9392 FolksIndividual *individual;
9493 gboolean remove;
94 guint timeout;
9595 } ShowActiveData;
9696
9797 enum
9898 {
9999 PROP_0,
100100 PROP_INDIVIDUAL_MANAGER,
101 PROP_SHOW_OFFLINE,
102101 PROP_SHOW_AVATARS,
103102 PROP_SHOW_PROTOCOLS,
104103 PROP_SHOW_GROUPS,
351350
352351 priv = GET_PRIV (self);
353352
354 if (EMP_STR_EMPTY (folks_individual_get_alias (individual)) ||
355 (!priv->show_offline && !folks_individual_is_online (individual)))
353 if (EMP_STR_EMPTY (folks_individual_get_alias (individual)))
356354 return;
357355
358356 if (priv->show_groups)
466464
467465 }
468466
467 static void individual_store_contact_active_free (ShowActiveData *data);
468
469 static void
470 individual_store_contact_active_invalidated (ShowActiveData *data,
471 GObject *old_object)
472 {
473 /* Remove the timeout and free the struct, since the individual or individual
474 * store has disappeared. */
475 g_source_remove (data->timeout);
476
477 if (old_object == (GObject *) data->self)
478 data->self = NULL;
479 else if (old_object == (GObject *) data->individual)
480 data->individual = NULL;
481 else
482 g_assert_not_reached ();
483
484 individual_store_contact_active_free (data);
485 }
486
469487 static ShowActiveData *
470488 individual_store_contact_active_new (EmpathyIndividualStore *self,
471489 FolksIndividual *individual,
481499 /* We don't actually want to force either the IndividualStore or the
482500 * Individual to stay alive, since the user could quit Empathy or disable
483501 * the account before the contact_active timeout is fired. */
484 g_object_add_weak_pointer (G_OBJECT (self), (gpointer) &(data->self));
485 g_object_add_weak_pointer (G_OBJECT (individual),
486 (gpointer) &(data->individual));
502 g_object_weak_ref (G_OBJECT (self),
503 (GWeakNotify) individual_store_contact_active_invalidated, data);
504 g_object_weak_ref (G_OBJECT (individual),
505 (GWeakNotify) individual_store_contact_active_invalidated, data);
487506
488507 data->self = self;
489508 data->individual = individual;
490509 data->remove = remove_;
510 data->timeout = 0;
491511
492512 return data;
493513 }
495515 static void
496516 individual_store_contact_active_free (ShowActiveData *data)
497517 {
518 if (data->self != NULL)
519 {
520 g_object_weak_unref (G_OBJECT (data->self),
521 (GWeakNotify) individual_store_contact_active_invalidated, data);
522 }
523
524 if (data->individual != NULL)
525 {
526 g_object_weak_unref (G_OBJECT (data->individual),
527 (GWeakNotify) individual_store_contact_active_invalidated, data);
528 }
529
498530 g_slice_free (ShowActiveData, data);
499531 }
500532
501533 static gboolean
502534 individual_store_contact_active_cb (ShowActiveData *data)
503535 {
504 EmpathyIndividualStorePriv *priv;
505
506 /* They're weak pointers, so may have been NULLified between ShowActiveData
507 * being created and the timeout being fired. We assume they can only be
508 * destroyed in this thread, so this isn't MT-safe. */
509 if (data->self == NULL || data->individual == NULL)
510 {
511 individual_store_contact_active_free (data);
512 return FALSE;
513 }
514
515 priv = GET_PRIV (data->self);
516
517 if (data->remove &&
518 !priv->show_offline && !folks_individual_is_online (data->individual))
536 if (data->remove)
519537 {
520538 DEBUG ("Individual'%s' active timeout, removing item",
521539 folks_individual_get_alias (data->individual));
577595 EmpathyContact *contact;
578596 GList *iters, *l;
579597 gboolean in_list;
580 gboolean should_be_in_list;
581598 gboolean was_online = TRUE;
582599 gboolean now_online = FALSE;
583600 gboolean set_model = FALSE;
605622 /* Get online state now. */
606623 now_online = folks_individual_is_online (individual);
607624
608 if (priv->show_offline || now_online)
609 {
610 should_be_in_list = TRUE;
611 }
612 else
613 {
614 should_be_in_list = FALSE;
615 }
616
617 if (!in_list && !should_be_in_list)
618 {
619 /* Nothing to do. */
620 DEBUG ("Individual:'%s' in list:NO, should be:NO",
621 folks_individual_get_alias (individual));
622
623 g_list_foreach (iters, (GFunc) gtk_tree_iter_free, NULL);
624 g_list_free (iters);
625 return;
626 }
627 else if (in_list && !should_be_in_list)
628 {
629 DEBUG ("Individual:'%s' in list:YES, should be:NO",
630 folks_individual_get_alias (individual));
631
632 if (priv->show_active)
633 {
634 do_remove = TRUE;
635 do_set_active = TRUE;
636 do_set_refresh = TRUE;
637
638 set_model = TRUE;
639 DEBUG ("Remove item (after timeout)");
640 }
641 else
642 {
643 DEBUG ("Remove item (now)!");
644 individual_store_remove_individual (self, individual);
645 }
646 }
647 else if (!in_list && should_be_in_list)
625 if (!in_list)
648626 {
649627 DEBUG ("Individual'%s' in list:NO, should be:YES",
650628 folks_individual_get_alias (individual));
745723 data =
746724 individual_store_contact_active_new (self, individual,
747725 do_remove);
748 g_timeout_add_seconds (ACTIVE_USER_SHOW_TIME,
726 data->timeout = g_timeout_add_seconds (ACTIVE_USER_SHOW_TIME,
749727 (GSourceFunc) individual_store_contact_active_cb, data);
750728 }
751729 }
761739 }
762740
763741 static void
764 individual_store_contact_updated_cb (FolksIndividual *individual,
742 individual_store_individual_updated_cb (FolksIndividual *individual,
765743 GParamSpec *param,
766744 EmpathyIndividualStore *self)
767745 {
772750 }
773751
774752 static void
753 individual_store_contact_updated_cb (EmpathyContact *contact,
754 GParamSpec *pspec,
755 EmpathyIndividualStore *self)
756 {
757 FolksIndividual *individual;
758
759 DEBUG ("Contact '%s' updated, checking roster is in sync...",
760 empathy_contact_get_alias (contact));
761
762 individual = g_object_get_data (G_OBJECT (contact), "individual");
763 if (individual == NULL)
764 return;
765
766 individual_store_contact_update (self, individual);
767 }
768
769 static void
775770 individual_store_add_individual_and_connect (EmpathyIndividualStore *self,
776771 FolksIndividual *individual)
777772 {
773 EmpathyContact *contact;
774
778775 g_signal_connect (individual, "notify::avatar",
776 G_CALLBACK (individual_store_individual_updated_cb), self);
777 g_signal_connect (individual, "notify::presence-type",
778 G_CALLBACK (individual_store_individual_updated_cb), self);
779 g_signal_connect (individual, "notify::presence-message",
780 G_CALLBACK (individual_store_individual_updated_cb), self);
781 g_signal_connect (individual, "notify::alias",
782 G_CALLBACK (individual_store_individual_updated_cb), self);
783
784 /* FIXME: libfolks hasn't grown capabilities support yet, so we have to go
785 * through the EmpathyContact for them. */
786 contact = empathy_contact_dup_from_folks_individual (individual);
787 g_object_set_data (G_OBJECT (contact), "individual", individual);
788 g_signal_connect (contact, "notify::capabilities",
779789 G_CALLBACK (individual_store_contact_updated_cb), self);
780 g_signal_connect (individual, "notify::presence-type",
781 G_CALLBACK (individual_store_contact_updated_cb), self);
782 g_signal_connect (individual, "notify::presence-message",
783 G_CALLBACK (individual_store_contact_updated_cb), self);
784 g_signal_connect (individual, "notify::alias",
785 G_CALLBACK (individual_store_contact_updated_cb), self);
786 g_signal_connect (individual, "notify::capabilities",
787 G_CALLBACK (individual_store_contact_updated_cb), self);
790 g_object_unref (contact);
788791
789792 individual_store_add_individual (self, individual);
790793 }
795798 FolksIndividual *individual)
796799 {
797800 g_signal_handlers_disconnect_by_func (individual,
801 G_CALLBACK (individual_store_individual_updated_cb), self);
802 g_signal_handlers_disconnect_by_func (individual,
798803 G_CALLBACK (individual_store_contact_updated_cb), self);
799804
800805 individual_store_remove_individual (self, individual);
802807
803808 static void
804809 individual_store_members_changed_cb (EmpathyIndividualManager *manager,
805 gchar *message,
810 const gchar *message,
806811 GList *added,
807812 GList *removed,
808813 guint reason,
923928 FolksIndividual *old_individual,
924929 FolksIndividual *new_individual,
925930 guint reason,
926 gchar *message,
931 const gchar *message,
927932 EmpathyIndividualStore *self)
928933 {
929934 EmpathyIndividualStorePriv *priv;
954959 contacts = empathy_individual_manager_get_members (priv->manager);
955960 for (l = contacts; l; l = l->next)
956961 {
962 g_signal_handlers_disconnect_by_func (l->data,
963 G_CALLBACK (individual_store_individual_updated_cb), object);
957964 g_signal_handlers_disconnect_by_func (l->data,
958965 G_CALLBACK (individual_store_contact_updated_cb), object);
959966 }
9971004 {
9981005 case PROP_INDIVIDUAL_MANAGER:
9991006 g_value_set_object (value, priv->manager);
1000 break;
1001 case PROP_SHOW_OFFLINE:
1002 g_value_set_boolean (value, priv->show_offline);
10031007 break;
10041008 case PROP_SHOW_AVATARS:
10051009 g_value_set_boolean (value, priv->show_avatars);
10371041 case PROP_INDIVIDUAL_MANAGER:
10381042 individual_store_set_individual_manager (EMPATHY_INDIVIDUAL_STORE
10391043 (object), g_value_get_object (value));
1040 break;
1041 case PROP_SHOW_OFFLINE:
1042 empathy_individual_store_set_show_offline (EMPATHY_INDIVIDUAL_STORE
1043 (object), g_value_get_boolean (value));
10441044 break;
10451045 case PROP_SHOW_AVATARS:
10461046 empathy_individual_store_set_show_avatars (EMPATHY_INDIVIDUAL_STORE
10851085 EMPATHY_TYPE_INDIVIDUAL_MANAGER,
10861086 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
10871087 g_object_class_install_property (object_class,
1088 PROP_SHOW_OFFLINE,
1089 g_param_spec_boolean ("show-offline",
1090 "Show Offline",
1091 "Whether contact list should display "
1092 "offline contacts", FALSE, G_PARAM_READWRITE));
1093 g_object_class_install_property (object_class,
10941088 PROP_SHOW_AVATARS,
10951089 g_param_spec_boolean ("show-avatars",
10961090 "Show Avatars",
14071401 }
14081402
14091403 static gboolean
1410 individual_store_inibit_active_cb (EmpathyIndividualStore *self)
1404 individual_store_inhibit_active_cb (EmpathyIndividualStore *self)
14111405 {
14121406 EmpathyIndividualStorePriv *priv;
14131407
14311425 priv->show_protocols = FALSE;
14321426 priv->inhibit_active =
14331427 g_timeout_add_seconds (ACTIVE_USER_WAIT_TO_ENABLE_TIME,
1434 (GSourceFunc) individual_store_inibit_active_cb, self);
1428 (GSourceFunc) individual_store_inhibit_active_cb, self);
14351429 priv->status_icons =
14361430 g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
14371431 individual_store_setup (self);
14561450 priv = GET_PRIV (self);
14571451
14581452 return priv->manager;
1459 }
1460
1461 gboolean
1462 empathy_individual_store_get_show_offline (EmpathyIndividualStore *self)
1463 {
1464 EmpathyIndividualStorePriv *priv;
1465
1466 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_STORE (self), FALSE);
1467
1468 priv = GET_PRIV (self);
1469
1470 return priv->show_offline;
1471 }
1472
1473 void
1474 empathy_individual_store_set_show_offline (EmpathyIndividualStore *self,
1475 gboolean show_offline)
1476 {
1477 EmpathyIndividualStorePriv *priv;
1478 GList *contacts, *l;
1479 gboolean show_active;
1480
1481 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_STORE (self));
1482
1483 priv = GET_PRIV (self);
1484
1485 priv->show_offline = show_offline;
1486 show_active = priv->show_active;
1487
1488 /* Disable temporarily. */
1489 priv->show_active = FALSE;
1490
1491 contacts = empathy_individual_manager_get_members (priv->manager);
1492 for (l = contacts; l; l = l->next)
1493 {
1494 individual_store_contact_update (self, l->data);
1495 }
1496 g_list_free (contacts);
1497
1498 /* Restore to original setting. */
1499 priv->show_active = show_active;
1500
1501 g_object_notify (G_OBJECT (self), "show-offline");
15021453 }
15031454
15041455 gboolean
17281679 gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self),
17291680 EMPATHY_INDIVIDUAL_STORE_COL_NAME, GTK_SORT_ASCENDING);
17301681 break;
1682
1683 default:
1684 g_assert_not_reached ();
17311685 }
17321686
17331687 g_object_notify (G_OBJECT (self), "sort-criterium");
9191 EmpathyIndividualManager *empathy_individual_store_get_manager (
9292 EmpathyIndividualStore *store);
9393
94 gboolean empathy_individual_store_get_show_offline (
95 EmpathyIndividualStore *store);
96
97 void empathy_individual_store_set_show_offline (
98 EmpathyIndividualStore *store,
99 gboolean show_offline);
100
10194 gboolean empathy_individual_store_get_show_avatars (
10295 EmpathyIndividualStore *store);
10396
6969 GtkWidget *tooltip_widget;
7070 GtkTargetList *file_targets;
7171
72 gboolean show_offline;
73
7274 GtkTreeModelFilter *filter;
7375 GtkWidget *search_widget;
76
77 guint expand_groups_idle_handler;
78 /* owned string (group name) -> bool (whether to expand/contract) */
79 GHashTable *expand_groups;
7480 } EmpathyIndividualViewPriv;
7581
7682 typedef struct
9399 PROP_STORE,
94100 PROP_VIEW_FEATURES,
95101 PROP_INDIVIDUAL_FEATURES,
102 PROP_SHOW_OFFLINE,
96103 };
97104
98105 /* TODO: re-add DRAG_TYPE_CONTACT_ID, for the case that we're dragging around
104111 DND_DRAG_TYPE_STRING,
105112 };
106113
114 #define DRAG_TYPE(T,I) \
115 { (gchar *) T, 0, I }
116
107117 static const GtkTargetEntry drag_types_dest[] = {
108 {"text/path-list", 0, DND_DRAG_TYPE_URI_LIST},
109 {"text/uri-list", 0, DND_DRAG_TYPE_URI_LIST},
110 {"text/contact-id", 0, DND_DRAG_TYPE_INDIVIDUAL_ID},
111 {"text/plain", 0, DND_DRAG_TYPE_STRING},
112 {"STRING", 0, DND_DRAG_TYPE_STRING},
118 DRAG_TYPE ("text/path-list", DND_DRAG_TYPE_URI_LIST),
119 DRAG_TYPE ("text/uri-list", DND_DRAG_TYPE_URI_LIST),
120 DRAG_TYPE ("text/contact-id", DND_DRAG_TYPE_INDIVIDUAL_ID),
121 DRAG_TYPE ("text/plain", DND_DRAG_TYPE_STRING),
122 DRAG_TYPE ("STRING", DND_DRAG_TYPE_STRING),
113123 };
114124
115125 static const GtkTargetEntry drag_types_dest_file[] = {
116 {"text/path-list", 0, DND_DRAG_TYPE_URI_LIST},
117 {"text/uri-list", 0, DND_DRAG_TYPE_URI_LIST},
126 DRAG_TYPE ("text/path-list", DND_DRAG_TYPE_URI_LIST),
127 DRAG_TYPE ("text/uri-list", DND_DRAG_TYPE_URI_LIST),
118128 };
119129
120130 static const GtkTargetEntry drag_types_source[] = {
121 {"text/contact-id", 0, DND_DRAG_TYPE_INDIVIDUAL_ID},
131 DRAG_TYPE ("text/contact-id", DND_DRAG_TYPE_INDIVIDUAL_ID),
122132 };
133
134 #undef DRAG_TYPE
123135
124136 static GdkAtom drag_atoms_dest[G_N_ELEMENTS (drag_types_dest)];
125137 static GdkAtom drag_atoms_source[G_N_ELEMENTS (drag_types_source)];
134146
135147 G_DEFINE_TYPE (EmpathyIndividualView, empathy_individual_view,
136148 GTK_TYPE_TREE_VIEW);
137
138 static gboolean
139 individual_view_is_visible_individual (EmpathyIndividualView *self,
140 FolksIndividual *individual)
141 {
142 EmpathyIndividualViewPriv *priv = GET_PRIV (self);
143 EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget);
144 const gchar *str;
145 GList *personas, *l;
146
147 g_assert (live != NULL);
148
149 /* check alias name */
150 str = folks_individual_get_alias (individual);
151 if (empathy_live_search_match (live, str))
152 return TRUE;
153
154 /* check contact id, remove the @server.com part */
155 personas = folks_individual_get_personas (individual);
156 for (l = personas; l; l = l->next)
157 {
158 const gchar *p;
159 gchar *dup_str = NULL;
160 gboolean visible;
161
162 str = folks_persona_get_uid (l->data);
163 p = strstr (str, "@");
164 if (p != NULL)
165 str = dup_str = g_strndup (str, p - str);
166
167 visible = empathy_live_search_match (live, str);
168 g_free (dup_str);
169 if (visible)
170 return TRUE;
171 }
172
173 /* FIXME: Add more rules here, we could check phone numbers in
174 * contact's vCard for example. */
175
176 return FALSE;
177 }
178
179 static gboolean
180 individual_view_filter_visible_func (GtkTreeModel *model,
181 GtkTreeIter *iter,
182 gpointer user_data)
183 {
184 EmpathyIndividualView *self = EMPATHY_INDIVIDUAL_VIEW (user_data);
185 EmpathyIndividualViewPriv *priv = GET_PRIV (self);
186 FolksIndividual *individual = NULL;
187 gboolean is_group, is_separator, valid;
188 GtkTreeIter child_iter;
189 gboolean visible;
190
191 if (priv->search_widget == NULL ||
192 !gtk_widget_get_visible (priv->search_widget))
193 return TRUE;
194
195 gtk_tree_model_get (model, iter,
196 EMPATHY_INDIVIDUAL_STORE_COL_IS_GROUP, &is_group,
197 EMPATHY_INDIVIDUAL_STORE_COL_IS_SEPARATOR, &is_separator,
198 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
199 -1);
200
201 if (individual != NULL)
202 {
203 visible = individual_view_is_visible_individual (self, individual);
204 g_object_unref (individual);
205 return visible;
206 }
207
208 if (is_separator)
209 return TRUE;
210
211 /* Not a contact, not a separator, must be a group */
212 g_return_val_if_fail (is_group, FALSE);
213
214 /* only show groups which are not empty */
215 for (valid = gtk_tree_model_iter_children (model, &child_iter, iter);
216 valid; valid = gtk_tree_model_iter_next (model, &child_iter))
217 {
218 gtk_tree_model_get (model, &child_iter,
219 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
220 -1);
221
222 if (individual == NULL)
223 continue;
224
225 visible = individual_view_is_visible_individual (self, individual);
226 g_object_unref (individual);
227
228 /* show group if it has at least one visible contact in it */
229 if (visible)
230 return TRUE;
231 }
232
233 return FALSE;
234 }
235149
236150 static void
237151 individual_view_tooltip_destroy_cb (GtkWidget *widget,
768682
769683 individual_id = folks_individual_get_id (individual);
770684
771 switch (info)
772 {
773 case DND_DRAG_TYPE_INDIVIDUAL_ID:
685 if (info == DND_DRAG_TYPE_INDIVIDUAL_ID)
686 {
774687 gtk_selection_data_set (selection, drag_atoms_source[info], 8,
775688 (guchar *) individual_id, strlen (individual_id) + 1);
776 break;
777689 }
778690
779691 g_object_unref (individual);
907819 DEBUG ("Starting a chat");
908820
909821 empathy_dispatcher_chat_with_contact (contact,
910 gtk_get_current_event_time (), NULL, NULL);
822 gtk_get_current_event_time ());
911823 }
912824
913825 g_object_unref (individual);
942854 shell = GTK_MENU_SHELL (menu);
943855
944856 /* audio */
945 item = empathy_individual_audio_call_menu_item_new (individual);
857 item = empathy_individual_audio_call_menu_item_new (individual, NULL);
946858 gtk_menu_shell_append (shell, item);
947859 gtk_widget_show (item);
948860
949861 /* video */
950 item = empathy_individual_video_call_menu_item_new (individual);
862 item = empathy_individual_video_call_menu_item_new (individual, NULL);
951863 gtk_menu_shell_append (shell, item);
952864 gtk_widget_show (item);
953865
13891301 individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (TRUE));
13901302 }
13911303
1392 typedef struct {
1393 EmpathyIndividualView *view;
1394 GtkTreeRowReference *row_ref;
1395 gboolean expand;
1396 } ExpandData;
1397
13981304 static gboolean
1399 individual_view_expand_idle_cb (gpointer user_data)
1400 {
1401 ExpandData *data = user_data;
1402 GtkTreePath *path;
1403
1404 path = gtk_tree_row_reference_get_path (data->row_ref);
1405 if (path == NULL)
1406 goto done;
1407
1408 g_signal_handlers_block_by_func (data->view,
1409 individual_view_row_expand_or_collapse_cb,
1410 GINT_TO_POINTER (data->expand));
1411
1412 if (data->expand)
1413 gtk_tree_view_expand_row (GTK_TREE_VIEW (data->view), path, TRUE);
1414 else
1415 gtk_tree_view_collapse_row (GTK_TREE_VIEW (data->view), path);
1416
1417 gtk_tree_path_free (path);
1418
1419 g_signal_handlers_unblock_by_func (data->view,
1420 individual_view_row_expand_or_collapse_cb,
1421 GINT_TO_POINTER (data->expand));
1422
1423 done:
1424 g_object_unref (data->view);
1425 gtk_tree_row_reference_free (data->row_ref);
1426 g_slice_free (ExpandData, data);
1305 expand_idle_foreach_cb (GtkTreeModel *model,
1306 GtkTreePath *path,
1307 GtkTreeIter *iter,
1308 EmpathyIndividualView *self)
1309 {
1310 EmpathyIndividualViewPriv *priv;
1311 gboolean is_group;
1312 gpointer should_expand;
1313 gchar *name;
1314
1315 /* We only want groups */
1316 if (gtk_tree_path_get_depth (path) > 1)
1317 return FALSE;
1318
1319 gtk_tree_model_get (model, iter,
1320 EMPATHY_INDIVIDUAL_STORE_COL_IS_GROUP, &is_group,
1321 EMPATHY_INDIVIDUAL_STORE_COL_NAME, &name,
1322 -1);
1323
1324 if (is_group == FALSE)
1325 {
1326 g_free (name);
1327 return FALSE;
1328 }
1329
1330 priv = GET_PRIV (self);
1331
1332 if (g_hash_table_lookup_extended (priv->expand_groups, name, NULL,
1333 &should_expand) == TRUE)
1334 {
1335 if (GPOINTER_TO_INT (should_expand) == TRUE)
1336 gtk_tree_view_expand_row (GTK_TREE_VIEW (self), path, FALSE);
1337 else
1338 gtk_tree_view_collapse_row (GTK_TREE_VIEW (self), path);
1339
1340 g_hash_table_remove (priv->expand_groups, name);
1341 }
1342
1343 g_free (name);
1344
1345 return FALSE;
1346 }
1347
1348 static gboolean
1349 individual_view_expand_idle_cb (EmpathyIndividualView *self)
1350 {
1351 EmpathyIndividualViewPriv *priv = GET_PRIV (self);
1352
1353 DEBUG ("individual_view_expand_idle_cb");
1354
1355 g_signal_handlers_block_by_func (self,
1356 individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (TRUE));
1357 g_signal_handlers_block_by_func (self,
1358 individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (FALSE));
1359
1360 gtk_tree_model_foreach (GTK_TREE_MODEL (priv->filter),
1361 (GtkTreeModelForeachFunc) expand_idle_foreach_cb, self);
1362
1363 g_signal_handlers_unblock_by_func (self,
1364 individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (FALSE));
1365 g_signal_handlers_unblock_by_func (self,
1366 individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (TRUE));
1367
1368 g_object_unref (self);
1369 priv->expand_groups_idle_handler = 0;
14271370
14281371 return FALSE;
14291372 }
14351378 EmpathyIndividualView *view)
14361379 {
14371380 EmpathyIndividualViewPriv *priv = GET_PRIV (view);
1438 gboolean is_group = FALSE;
1381 gboolean should_expand, is_group = FALSE;
14391382 gchar *name = NULL;
1440 ExpandData *data;
1383 gpointer will_expand;
14411384
14421385 gtk_tree_model_get (model, iter,
14431386 EMPATHY_INDIVIDUAL_STORE_COL_IS_GROUP, &is_group,
14501393 return;
14511394 }
14521395
1453 data = g_slice_new0 (ExpandData);
1454 data->view = g_object_ref (view);
1455 data->row_ref = gtk_tree_row_reference_new (model, path);
1456 data->expand =
1457 (priv->view_features &
1396 should_expand = (priv->view_features &
14581397 EMPATHY_INDIVIDUAL_VIEW_FEATURE_GROUPS_SAVE) == 0 ||
14591398 (priv->search_widget != NULL &&
14601399 gtk_widget_get_visible (priv->search_widget)) ||
14611400 empathy_contact_group_get_expanded (name);
14621401
14631402 /* FIXME: It doesn't work to call gtk_tree_view_expand_row () from within
1464 * gtk_tree_model_filter_refilter () */
1465 g_idle_add (individual_view_expand_idle_cb, data);
1403 * gtk_tree_model_filter_refilter (). We add the rows to expand/contract to
1404 * a hash table, and expand or contract them as appropriate all at once in
1405 * an idle handler which iterates over all the group rows. */
1406 if (g_hash_table_lookup_extended (priv->expand_groups, name, NULL,
1407 &will_expand) == FALSE &&
1408 GPOINTER_TO_INT (will_expand) != should_expand)
1409 {
1410 g_hash_table_insert (priv->expand_groups, g_strdup (name),
1411 GINT_TO_POINTER (should_expand));
1412
1413 if (priv->expand_groups_idle_handler == 0)
1414 {
1415 priv->expand_groups_idle_handler =
1416 g_idle_add ((GSourceFunc) individual_view_expand_idle_cb,
1417 g_object_ref (view));
1418 }
1419 }
14661420
14671421 g_free (name);
14681422 }
14691423
1424 /* FIXME: This is a workaround for bgo#621076 */
14701425 static void
14711426 individual_view_verify_group_visibility (EmpathyIndividualView *view,
14721427 GtkTreePath *path)
15121467 EmpathyIndividualView *view)
15131468 {
15141469 individual_view_verify_group_visibility (view, path);
1470 }
1471
1472 static gboolean
1473 individual_view_is_visible_individual (EmpathyIndividualView *self,
1474 FolksIndividual *individual)
1475 {
1476 EmpathyIndividualViewPriv *priv = GET_PRIV (self);
1477 EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget);
1478 const gchar *str;
1479 GList *personas, *l;
1480
1481 /* We're only giving the visibility wrt filtering here, not things like
1482 * presence. */
1483 if (live == NULL || gtk_widget_get_visible (GTK_WIDGET (live)) == FALSE)
1484 return TRUE;
1485
1486 /* check alias name */
1487 str = folks_individual_get_alias (individual);
1488 if (empathy_live_search_match (live, str))
1489 return TRUE;
1490
1491 /* check contact id, remove the @server.com part */
1492 personas = folks_individual_get_personas (individual);
1493 for (l = personas; l; l = l->next)
1494 {
1495 const gchar *p;
1496 gchar *dup_str = NULL;
1497 gboolean visible;
1498
1499 str = folks_persona_get_uid (l->data);
1500 p = strstr (str, "@");
1501 if (p != NULL)
1502 str = dup_str = g_strndup (str, p - str);
1503
1504 visible = empathy_live_search_match (live, str);
1505 g_free (dup_str);
1506 if (visible)
1507 return TRUE;
1508 }
1509
1510 /* FIXME: Add more rules here, we could check phone numbers in
1511 * contact's vCard for example. */
1512
1513 return FALSE;
1514 }
1515
1516 static gboolean
1517 individual_view_filter_visible_func (GtkTreeModel *model,
1518 GtkTreeIter *iter,
1519 gpointer user_data)
1520 {
1521 EmpathyIndividualView *self = EMPATHY_INDIVIDUAL_VIEW (user_data);
1522 EmpathyIndividualViewPriv *priv = GET_PRIV (self);
1523 FolksIndividual *individual = NULL;
1524 gboolean is_group, is_separator, valid;
1525 GtkTreeIter child_iter;
1526 gboolean visible, is_online;
1527 gboolean is_searching = TRUE;
1528
1529 if (priv->search_widget == NULL ||
1530 !gtk_widget_get_visible (priv->search_widget))
1531 is_searching = FALSE;
1532
1533 gtk_tree_model_get (model, iter,
1534 EMPATHY_INDIVIDUAL_STORE_COL_IS_GROUP, &is_group,
1535 EMPATHY_INDIVIDUAL_STORE_COL_IS_SEPARATOR, &is_separator,
1536 EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
1537 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
1538 -1);
1539
1540 if (individual != NULL)
1541 {
1542 if (is_searching == TRUE)
1543 visible = individual_view_is_visible_individual (self, individual);
1544 else
1545 visible = (priv->show_offline || is_online);
1546
1547 g_object_unref (individual);
1548
1549 /* FIXME: Work around bgo#626552/bgo#621076 */
1550 if (visible == TRUE)
1551 {
1552 GtkTreePath *path = gtk_tree_model_get_path (model, iter);
1553 individual_view_verify_group_visibility (self, path);
1554 gtk_tree_path_free (path);
1555 }
1556
1557 return visible;
1558 }
1559
1560 if (is_separator)
1561 return TRUE;
1562
1563 /* Not a contact, not a separator, must be a group */
1564 g_return_val_if_fail (is_group, FALSE);
1565
1566 /* only show groups which are not empty */
1567 for (valid = gtk_tree_model_iter_children (model, &child_iter, iter);
1568 valid; valid = gtk_tree_model_iter_next (model, &child_iter))
1569 {
1570 gtk_tree_model_get (model, &child_iter,
1571 EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
1572 EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
1573 -1);
1574
1575 if (individual == NULL)
1576 continue;
1577
1578 visible = individual_view_is_visible_individual (self, individual);
1579 g_object_unref (individual);
1580
1581 /* show group if it has at least one visible contact in it */
1582 if ((is_searching && visible) ||
1583 (!is_searching && (priv->show_offline || is_online)))
1584 return TRUE;
1585 }
1586
1587 return FALSE;
15151588 }
15161589
15171590 static void
15401613 tp_g_signal_connect_object (priv->store, "row-deleted",
15411614 G_CALLBACK (individual_view_store_row_deleted_cb), view, 0);
15421615
1543 tp_g_signal_connect_object (priv->store, "row-changed",
1544 G_CALLBACK (individual_view_store_row_changed_cb), view, 0);
1545 tp_g_signal_connect_object (priv->store, "row-inserted",
1546 G_CALLBACK (individual_view_store_row_changed_cb), view, 0);
1547 tp_g_signal_connect_object (priv->store, "row-deleted",
1548 G_CALLBACK (individual_view_store_row_deleted_cb), view, 0);
1549
15501616 /* Setup view */
1551 /* Setting reorderable is a hack that gets us row previews as drag icons
1552 for free. We override all the drag handlers. It's tricky to get the
1553 position of the drag icon right in drag_begin. GtkTreeView has special
1554 voodoo for it, so we let it do the voodoo that he do.
1555 */
15561617 g_object_set (view,
15571618 "headers-visible", FALSE,
1558 "reorderable", TRUE,
15591619 "show-expanders", FALSE,
15601620 NULL);
15611621
16691729
16701730 priv->view_features = features;
16711731
1732 /* Setting reorderable is a hack that gets us row previews as drag icons
1733 for free. We override all the drag handlers. It's tricky to get the
1734 position of the drag icon right in drag_begin. GtkTreeView has special
1735 voodoo for it, so we let it do the voodoo that he do (but only if dragging
1736 is enabled).
1737 */
1738 gtk_tree_view_set_reorderable (GTK_TREE_VIEW (view),
1739 (features & EMPATHY_INDIVIDUAL_VIEW_FEATURE_CONTACT_DRAG));
1740
16721741 /* Update DnD source/dest */
16731742 if (features & EMPATHY_INDIVIDUAL_VIEW_FEATURE_CONTACT_DRAG)
16741743 {
17171786 empathy_individual_view_set_live_search (view, NULL);
17181787
17191788 G_OBJECT_CLASS (empathy_individual_view_parent_class)->dispose (object);
1789 }
1790
1791 static void
1792 individual_view_finalize (GObject *object)
1793 {
1794 EmpathyIndividualViewPriv *priv = GET_PRIV (object);
1795
1796 g_hash_table_destroy (priv->expand_groups);
1797
1798 G_OBJECT_CLASS (empathy_individual_view_parent_class)->finalize (object);
17201799 }
17211800
17221801 static void
17401819 case PROP_INDIVIDUAL_FEATURES:
17411820 g_value_set_flags (value, priv->individual_features);
17421821 break;
1822 case PROP_SHOW_OFFLINE:
1823 g_value_set_boolean (value, priv->show_offline);
1824 break;
17431825 default:
17441826 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
17451827 break;
17661848 case PROP_INDIVIDUAL_FEATURES:
17671849 priv->individual_features = g_value_get_flags (value);
17681850 break;
1851 case PROP_SHOW_OFFLINE:
1852 empathy_individual_view_set_show_offline (view,
1853 g_value_get_boolean (value));
1854 break;
17691855 default:
17701856 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
17711857 break;
17811867
17821868 object_class->constructed = individual_view_constructed;
17831869 object_class->dispose = individual_view_dispose;
1870 object_class->finalize = individual_view_finalize;
17841871 object_class->get_property = individual_view_get_property;
17851872 object_class->set_property = individual_view_set_property;
17861873
18261913 "Flags for all enabled features for the menu",
18271914 EMPATHY_TYPE_INDIVIDUAL_FEATURE_FLAGS,
18281915 EMPATHY_CONTACT_FEATURE_NONE, G_PARAM_READWRITE));
1916 g_object_class_install_property (object_class,
1917 PROP_SHOW_OFFLINE,
1918 g_param_spec_boolean ("show-offline",
1919 "Show Offline",
1920 "Whether contact list should display "
1921 "offline contacts", FALSE, G_PARAM_READWRITE));
18291922
18301923 g_type_class_add_private (object_class, sizeof (EmpathyIndividualViewPriv));
18311924 }
18391932 view->priv = priv;
18401933 /* Get saved group states. */
18411934 empathy_contact_groups_get_all ();
1935
1936 priv->expand_groups = g_hash_table_new_full (g_str_hash, g_str_equal,
1937 (GDestroyNotify) g_free, NULL);
18421938
18431939 gtk_tree_view_set_row_separator_func (GTK_TREE_VIEW (view),
18441940 empathy_individual_store_row_separator_func, NULL, NULL);
21982294 G_CALLBACK (individual_view_search_show_cb), view);
21992295 }
22002296 }
2297
2298 gboolean
2299 empathy_individual_view_is_searching (EmpathyIndividualView *self)
2300 {
2301 EmpathyIndividualViewPriv *priv;
2302
2303 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_VIEW (self), FALSE);
2304
2305 priv = GET_PRIV (self);
2306
2307 return (priv->search_widget != NULL &&
2308 gtk_widget_get_visible (priv->search_widget));
2309 }
2310
2311 gboolean
2312 empathy_individual_view_get_show_offline (EmpathyIndividualView *self)
2313 {
2314 EmpathyIndividualViewPriv *priv;
2315
2316 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_VIEW (self), FALSE);
2317
2318 priv = GET_PRIV (self);
2319
2320 return priv->show_offline;
2321 }
2322
2323 void
2324 empathy_individual_view_set_show_offline (EmpathyIndividualView *self,
2325 gboolean show_offline)
2326 {
2327 EmpathyIndividualViewPriv *priv;
2328
2329 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_VIEW (self));
2330
2331 priv = GET_PRIV (self);
2332
2333 priv->show_offline = show_offline;
2334
2335 g_object_notify (G_OBJECT (self), "show-offline");
2336 gtk_tree_model_filter_refilter (priv->filter);
2337 }
9494 void empathy_individual_view_set_live_search (EmpathyIndividualView *view,
9595 EmpathyLiveSearch *search);
9696
97 gboolean empathy_individual_view_get_show_offline (
98 EmpathyIndividualView *view);
99
100 void empathy_individual_view_set_show_offline (
101 EmpathyIndividualView *view,
102 gboolean show_offline);
103
104 gboolean empathy_individual_view_is_searching (
105 EmpathyIndividualView *view);
106
97107 G_END_DECLS
98108 #endif /* __EMPATHY_INDIVIDUAL_VIEW_H__ */
0 /*
1 * Copyright (C) 2010 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
18 */
19
20 #include <config.h>
21
22 #include <string.h>
23 #include <stdlib.h>
24
25 #include <gtk/gtk.h>
26 #include <glib/gi18n-lib.h>
27
28 #include <telepathy-glib/util.h>
29
30 #include <libempathy/empathy-utils.h>
31
32 #include <folks/folks-telepathy.h>
33
34 #include "empathy-individual-widget.h"
35 #include "empathy-gtk-enum-types.h"
36
37 /**
38 * SECTION:empathy-individual-widget
39 * @title:EmpathyIndividualWidget
40 * @short_description: A widget used to display and edit details about an
41 * individual
42 * @include: libempathy-empathy-individual-widget.h
43 *
44 * #EmpathyIndividualWidget is a widget which displays appropriate widgets
45 * with details about an individual, also allowing changing these details,
46 * if desired.
47 */
48
49 /**
50 * EmpathyIndividualWidget:
51 * @parent: parent object
52 *
53 * Widget which displays appropriate widgets with details about an individual,
54 * also allowing changing these details, if desired.
55 *
56 * Currently, it's just a thin wrapper around #EmpathyContactWidget, and
57 * displays the details of the first eligible persona found in the individual.
58 */
59
60 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndividualWidget)
61
62 typedef struct {
63 FolksIndividual *individual;
64 EmpathyIndividualWidgetFlags flags;
65 } EmpathyIndividualWidgetPriv;
66
67 G_DEFINE_TYPE (EmpathyIndividualWidget, empathy_individual_widget,
68 GTK_TYPE_BOX);
69
70 enum {
71 PROP_INDIVIDUAL = 1,
72 PROP_FLAGS
73 };
74
75 static void
76 empathy_individual_widget_init (EmpathyIndividualWidget *self)
77 {
78 self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
79 EMPATHY_TYPE_INDIVIDUAL_WIDGET, EmpathyIndividualWidgetPriv);
80
81 gtk_orientable_set_orientation (GTK_ORIENTABLE (self),
82 GTK_ORIENTATION_VERTICAL);
83 }
84
85 static void
86 get_property (GObject *object,
87 guint param_id,
88 GValue *value,
89 GParamSpec *pspec)
90 {
91 EmpathyIndividualWidgetPriv *priv = GET_PRIV (object);
92
93 switch (param_id)
94 {
95 case PROP_INDIVIDUAL:
96 g_value_set_object (value, priv->individual);
97 break;
98 case PROP_FLAGS:
99 g_value_set_flags (value, priv->flags);
100 break;
101 default:
102 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
103 break;
104 }
105 }
106
107 static void
108 set_property (GObject *object,
109 guint param_id,
110 const GValue *value,
111 GParamSpec *pspec)
112 {
113 EmpathyIndividualWidgetPriv *priv = GET_PRIV (object);
114
115 switch (param_id)
116 {
117 case PROP_INDIVIDUAL:
118 empathy_individual_widget_set_individual (
119 EMPATHY_INDIVIDUAL_WIDGET (object), g_value_get_object (value));
120 break;
121 case PROP_FLAGS:
122 priv->flags = g_value_get_flags (value);
123 break;
124 default:
125 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
126 break;
127 }
128 }
129
130 static void
131 dispose (GObject *object)
132 {
133 EmpathyIndividualWidgetPriv *priv = GET_PRIV (object);
134
135 tp_clear_object (&priv->individual);
136
137 G_OBJECT_CLASS (empathy_individual_widget_parent_class)->dispose (object);
138 }
139
140 static void
141 empathy_individual_widget_class_init (EmpathyIndividualWidgetClass *klass)
142 {
143 GObjectClass *object_class = G_OBJECT_CLASS (klass);
144
145 object_class->get_property = get_property;
146 object_class->set_property = set_property;
147 object_class->dispose = dispose;
148
149 /**
150 * EmpathyIndividualWidget:individual:
151 *
152 * The #FolksIndividual to display in the widget.
153 */
154 g_object_class_install_property (object_class, PROP_INDIVIDUAL,
155 g_param_spec_object ("individual",
156 "Individual",
157 "The #FolksIndividual to display in the widget.",
158 FOLKS_TYPE_INDIVIDUAL,
159 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
160
161 /**
162 * EmpathyIndividualWidget:flags:
163 *
164 * A set of flags which affect the widget's behaviour.
165 */
166 g_object_class_install_property (object_class, PROP_FLAGS,
167 g_param_spec_flags ("flags",
168 "Flags",
169 "A set of flags which affect the widget's behaviour.",
170 EMPATHY_TYPE_INDIVIDUAL_WIDGET_FLAGS,
171 EMPATHY_INDIVIDUAL_WIDGET_EDIT_NONE,
172 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY));
173
174 g_type_class_add_private (object_class, sizeof (EmpathyIndividualWidgetPriv));
175 }
176
177 /**
178 * empathy_individual_widget_new:
179 * @individual: the #FolksIndividual to display
180 * @flags: flags affecting how the widget behaves and what it displays
181 *
182 * Creates a new #EmpathyIndividualWidget.
183 *
184 * Return value: a new #EmpathyIndividualWidget
185 */
186 GtkWidget *
187 empathy_individual_widget_new (FolksIndividual *individual,
188 EmpathyIndividualWidgetFlags flags)
189 {
190 g_return_val_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual),
191 NULL);
192
193 return g_object_new (EMPATHY_TYPE_INDIVIDUAL_WIDGET,
194 "individual", individual, "flags", flags, NULL);
195 }
196
197 FolksIndividual *
198 empathy_individual_widget_get_individual (EmpathyIndividualWidget *self)
199 {
200 g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_WIDGET (self), NULL);
201
202 return GET_PRIV (self)->individual;
203 }
204
205 void
206 empathy_individual_widget_set_individual (EmpathyIndividualWidget *self,
207 FolksIndividual *individual)
208 {
209 EmpathyIndividualWidgetPriv *priv;
210 GList *personas = NULL, *l;
211
212 g_return_if_fail (EMPATHY_IS_INDIVIDUAL_WIDGET (self));
213 g_return_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual));
214
215 priv = GET_PRIV (self);
216
217 /* Out with the old… */
218 gtk_container_foreach (GTK_CONTAINER (self), (GtkCallback) gtk_widget_destroy,
219 NULL);
220 tp_clear_object (&priv->individual);
221
222 /* …and in with the new. */
223 priv->individual = individual;
224 if (individual != NULL)
225 {
226 g_object_ref (individual);
227 personas = folks_individual_get_personas (individual);
228 }
229
230 for (l = personas; l != NULL; l = l->next)
231 {
232 GtkWidget *contact_widget;
233 TpContact *tp_contact;
234 EmpathyContact *contact;
235 TpfPersona *persona = l->data;
236
237 if (!TPF_IS_PERSONA (persona))
238 continue;
239
240 tp_contact = tpf_persona_get_contact (persona);
241 contact = empathy_contact_dup_from_tp_contact (tp_contact);
242
243 /* Contact info widget */
244 contact_widget = empathy_contact_widget_new (contact, priv->flags);
245 gtk_container_set_border_width (GTK_CONTAINER (contact_widget), 8);
246 gtk_box_pack_start (GTK_BOX (self), contact_widget, TRUE, TRUE, 0);
247 gtk_widget_show (contact_widget);
248
249 g_object_unref (contact);
250
251 /* If we're not meant to display all of the personas, bail after the first
252 * one. */
253 if (!(priv->flags & EMPATHY_INDIVIDUAL_WIDGET_SHOW_PERSONAS))
254 break;
255 }
256 }
0 /*
1 * Copyright (C) 2010 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
18 */
19
20 #ifndef __EMPATHY_INDIVIDUAL_WIDGET_H__
21 #define __EMPATHY_INDIVIDUAL_WIDGET_H__
22
23 #include <gtk/gtk.h>
24
25 #include <folks/folks.h>
26
27 #include "empathy-contact-widget.h"
28
29 G_BEGIN_DECLS
30
31 /**
32 * EmpathyIndividualWidgetFlags:
33 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_NONE: Don't show any widgets to edit any
34 * details of the individual. This should be the option for widgets that merely
35 * display information about an individual.
36 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ALIAS: Show a #GtkEntry allowing changes to
37 * the individual's alias.
38 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_AVATAR: Show an #EmpathyAvatarChooser
39 * allowing changes to the individual's avatar.
40 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ACCOUNT: Show an #EmpathyAccountChooser
41 * allowing changes to the individual's account.
42 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ID: Show a #GtkEntry allowing changes to the
43 * individual's identifier.
44 * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_GROUPS: Show a widget to change the groups
45 * the individual is in.
46 * @EMPATHY_INDIVIDUAL_WIDGET_FOR_TOOLTIP: Make widgets more designed for a
47 * tooltip. For example, make widgets not selectable.
48 *
49 * Flags used when creating an #EmpathyIndividualWidget to specify which
50 * features should be available.
51 */
52 typedef enum
53 {
54 EMPATHY_INDIVIDUAL_WIDGET_EDIT_NONE = 0,
55 EMPATHY_INDIVIDUAL_WIDGET_EDIT_ALIAS = 1 << 0,
56 EMPATHY_INDIVIDUAL_WIDGET_EDIT_AVATAR = 1 << 1,
57 EMPATHY_INDIVIDUAL_WIDGET_EDIT_ACCOUNT = 1 << 2,
58 EMPATHY_INDIVIDUAL_WIDGET_EDIT_ID = 1 << 3,
59 EMPATHY_INDIVIDUAL_WIDGET_EDIT_GROUPS = 1 << 4,
60 EMPATHY_INDIVIDUAL_WIDGET_FOR_TOOLTIP = 1 << 5,
61 EMPATHY_INDIVIDUAL_WIDGET_SHOW_LOCATION = 1 << 6,
62 EMPATHY_INDIVIDUAL_WIDGET_NO_SET_ALIAS = 1 << 7,
63 EMPATHY_INDIVIDUAL_WIDGET_EDIT_FAVOURITE = 1 << 8,
64 EMPATHY_INDIVIDUAL_WIDGET_SHOW_DETAILS = 1 << 9,
65 EMPATHY_INDIVIDUAL_WIDGET_EDIT_DETAILS = 1 << 10,
66 EMPATHY_INDIVIDUAL_WIDGET_SHOW_PERSONAS = 1 << 11,
67 } EmpathyIndividualWidgetFlags;
68
69 #define EMPATHY_TYPE_INDIVIDUAL_WIDGET (empathy_individual_widget_get_type ())
70 #define EMPATHY_INDIVIDUAL_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
71 EMPATHY_TYPE_INDIVIDUAL_WIDGET, EmpathyIndividualWidget))
72 #define EMPATHY_INDIVIDUAL_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \
73 EMPATHY_TYPE_INDIVIDUAL_WIDGET, EmpathyIndividualWidgetClass))
74 #define EMPATHY_IS_INDIVIDUAL_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
75 EMPATHY_TYPE_INDIVIDUAL_WIDGET))
76 #define EMPATHY_IS_INDIVIDUAL_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
77 EMPATHY_TYPE_INDIVIDUAL_WIDGET))
78 #define EMPATHY_INDIVIDUAL_WIDGET_GET_CLASS(o) ( \
79 G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDIVIDUAL_WIDGET, \
80 EmpathyIndividualWidgetClass))
81
82 typedef struct {
83 GtkBox parent;
84
85 /*<private>*/
86 gpointer priv;
87 } EmpathyIndividualWidget;
88
89 typedef struct {
90 GtkBoxClass parent_class;
91 } EmpathyIndividualWidgetClass;
92
93 GType empathy_individual_widget_get_type (void) G_GNUC_CONST;
94
95 GtkWidget * empathy_individual_widget_new (FolksIndividual *individual,
96 EmpathyIndividualWidgetFlags flags);
97
98 FolksIndividual * empathy_individual_widget_get_individual (
99 EmpathyIndividualWidget *self);
100 void empathy_individual_widget_set_individual (EmpathyIndividualWidget *self,
101 FolksIndividual *individual);
102
103 G_END_DECLS
104
105 #endif /* __EMPATHY_INDIVIDUAL_WIDGET_H__ */
0 /*
1 * Copyright (C) 2010 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
18 */
19
20 #include <config.h>
21
22 #include <string.h>
23 #include <stdlib.h>
24
25 #include <gtk/gtk.h>
26 #include <glib/gi18n-lib.h>
27
28 #include <libempathy/empathy-individual-manager.h>
29 #include <libempathy/empathy-utils.h>
30
31 #include "empathy-linking-dialog.h"
32 #include "empathy-individual-linker.h"
33
34 /**
35 * SECTION:empathy-individual-widget
36 * @title:EmpathyLinkingDialog
37 * @short_description: A dialog used to link individuals together
38 * @include: libempathy-empathy-linking-dialog.h
39 *
40 * #EmpathyLinkingDialog is a dialog which allows selection of individuals to
41 * link together, and preview of the newly linked individual. When submitted, it
42 * pushes the new links to backing storage.
43 */
44
45 /**
46 * EmpathyLinkingDialog:
47 * @parent: parent object
48 *
49 * Widget which displays appropriate widgets with details about an individual,
50 * also allowing changing these details, if desired.
51 *
52 * Currently, it's just a thin wrapper around #EmpathyContactWidget, and
53 * displays the details of the first eligible persona found in the individual.
54 */
55
56 static GtkWidget *linking_dialog = NULL;
57
58 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyLinkingDialog)
59
60 typedef struct {
61 EmpathyIndividualLinker *linker; /* child widget */
62 } EmpathyLinkingDialogPriv;
63
64 G_DEFINE_TYPE (EmpathyLinkingDialog, empathy_linking_dialog,
65 GTK_TYPE_DIALOG);
66
67 static void
68 empathy_linking_dialog_class_init (EmpathyLinkingDialogClass *klass)
69 {
70 GObjectClass *object_class = G_OBJECT_CLASS (klass);
71 g_type_class_add_private (object_class, sizeof (EmpathyLinkingDialogPriv));
72 }
73
74 static void
75 empathy_linking_dialog_init (EmpathyLinkingDialog *self)
76 {
77 EmpathyLinkingDialogPriv *priv;
78 GtkDialog *dialog;
79 GtkWidget *button;
80 GtkBox *content_area;
81
82 priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
83 EMPATHY_TYPE_LINKING_DIALOG, EmpathyLinkingDialogPriv);
84 self->priv = priv;
85
86 dialog = GTK_DIALOG (self);
87
88 /* Set up dialog */
89 gtk_dialog_set_has_separator (dialog, FALSE);
90 gtk_window_set_resizable (GTK_WINDOW (self), TRUE);
91 gtk_window_set_title (GTK_WINDOW (self), _("Link Contacts"));
92 gtk_widget_set_size_request (GTK_WIDGET (self), 600, 500);
93
94 /* Cancel button */
95 button = gtk_button_new_with_label (GTK_STOCK_CANCEL);
96 gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
97 gtk_dialog_add_action_widget (dialog, button, GTK_RESPONSE_CANCEL);
98 gtk_widget_show (button);
99
100 /* Add button */
101 button = gtk_button_new_with_mnemonic (_("_Link"));
102 gtk_dialog_add_action_widget (dialog, button, GTK_RESPONSE_OK);
103 gtk_widget_show (button);
104
105 /* Linker widget */
106 priv->linker =
107 EMPATHY_INDIVIDUAL_LINKER (empathy_individual_linker_new (NULL));
108 gtk_container_set_border_width (GTK_CONTAINER (priv->linker), 8);
109 content_area = GTK_BOX (gtk_dialog_get_content_area (dialog));
110 gtk_box_pack_start (content_area, GTK_WIDGET (priv->linker), TRUE, TRUE, 0);
111 gtk_widget_show (GTK_WIDGET (priv->linker));
112 }
113
114 static void
115 linking_response_cb (EmpathyLinkingDialog *self,
116 gint response,
117 gpointer user_data)
118 {
119 EmpathyLinkingDialogPriv *priv = GET_PRIV (self);
120
121 if (response == GTK_RESPONSE_OK) {
122 EmpathyIndividualManager *manager;
123 GList *personas;
124
125 manager = empathy_individual_manager_dup_singleton ();
126
127 personas = empathy_individual_linker_get_linked_personas (priv->linker);
128 empathy_individual_manager_link_personas (manager, personas);
129
130 g_object_unref (manager);
131 }
132
133 linking_dialog = NULL;
134 gtk_widget_destroy (GTK_WIDGET (self));
135 }
136
137 /**
138 * empathy_linking_dialog_show:
139 * @individual: the #FolksIndividual to start linking against
140 * @parent: a parent window for the dialogue, or %NULL
141 *
142 * Create and show the linking dialogue, with @individual selected as the
143 * individual to link to. If the dialogue is already being shown, raise it and
144 * reset it so the start individual is @individual.
145 *
146 * Return value: the linking dialog
147 */
148 GtkWidget *
149 empathy_linking_dialog_show (FolksIndividual *individual,
150 GtkWindow *parent)
151 {
152 EmpathyLinkingDialogPriv *priv;
153
154 /* Create the dialogue if it doesn't exist */
155 if (linking_dialog == NULL)
156 {
157 linking_dialog = GTK_WIDGET (g_object_new (EMPATHY_TYPE_LINKING_DIALOG,
158 NULL));
159
160 g_signal_connect (linking_dialog, "response",
161 (GCallback) linking_response_cb, NULL);
162 }
163
164 priv = GET_PRIV (linking_dialog);
165
166 if (parent != NULL)
167 gtk_window_set_transient_for (GTK_WINDOW (linking_dialog), parent);
168
169 empathy_individual_linker_set_start_individual (priv->linker, individual);
170
171 gtk_window_present (GTK_WINDOW (linking_dialog));
172
173 return linking_dialog;
174 }
0 /*
1 * Copyright (C) 2010 Collabora Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Authors: Philip Withnall <philip.withnall@collabora.co.uk>
18 */
19
20 #ifndef __EMPATHY_LINKING_DIALOG_H__
21 #define __EMPATHY_LINKING_DIALOG_H__
22
23 #include <gtk/gtk.h>
24
25 #include <folks/folks.h>
26
27 G_BEGIN_DECLS
28
29 #define EMPATHY_TYPE_LINKING_DIALOG (empathy_linking_dialog_get_type ())
30 #define EMPATHY_LINKING_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
31 EMPATHY_TYPE_LINKING_DIALOG, EmpathyLinkingDialog))
32 #define EMPATHY_LINKING_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \
33 EMPATHY_TYPE_LINKING_DIALOG, EmpathyLinkingDialogClass))
34 #define EMPATHY_IS_LINKING_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
35 EMPATHY_TYPE_LINKING_DIALOG))
36 #define EMPATHY_IS_LINKING_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
37 EMPATHY_TYPE_LINKING_DIALOG))
38 #define EMPATHY_LINKING_DIALOG_GET_CLASS(o) ( \
39 G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_LINKING_DIALOG, \
40 EmpathyLinkingDialogClass))
41
42 typedef struct {
43 GtkDialog parent;
44
45 /*<private>*/
46 gpointer priv;
47 } EmpathyLinkingDialog;
48
49 typedef struct {
50 GtkDialogClass parent_class;
51 } EmpathyLinkingDialogClass;
52
53 GType empathy_linking_dialog_get_type (void) G_GNUC_CONST;
54
55 GtkWidget * empathy_linking_dialog_show (FolksIndividual *individual,
56 GtkWindow *parent);
57
58 G_END_DECLS
59
60 #endif /* __EMPATHY_LINKING_DIALOG_H__ */
8888 case G_UNICODE_ENCLOSING_MARK:
8989 /* Ignore those */
9090 break;
91 case G_UNICODE_PRIVATE_USE:
92 case G_UNICODE_SURROGATE:
93 case G_UNICODE_LOWERCASE_LETTER:
94 case G_UNICODE_MODIFIER_LETTER:
95 case G_UNICODE_OTHER_LETTER:
96 case G_UNICODE_TITLECASE_LETTER:
97 case G_UNICODE_UPPERCASE_LETTER:
98 case G_UNICODE_DECIMAL_NUMBER:
99 case G_UNICODE_LETTER_NUMBER:
100 case G_UNICODE_OTHER_NUMBER:
101 case G_UNICODE_CONNECT_PUNCTUATION:
102 case G_UNICODE_DASH_PUNCTUATION:
103 case G_UNICODE_CLOSE_PUNCTUATION:
104 case G_UNICODE_FINAL_PUNCTUATION:
105 case G_UNICODE_INITIAL_PUNCTUATION:
106 case G_UNICODE_OTHER_PUNCTUATION:
107 case G_UNICODE_OPEN_PUNCTUATION:
108 case G_UNICODE_CURRENCY_SYMBOL:
109 case G_UNICODE_MODIFIER_SYMBOL:
110 case G_UNICODE_MATH_SYMBOL:
111 case G_UNICODE_OTHER_SYMBOL:
112 case G_UNICODE_LINE_SEPARATOR:
113 case G_UNICODE_PARAGRAPH_SEPARATOR:
114 case G_UNICODE_SPACE_SEPARATOR:
91115 default:
92116 ch = g_unichar_tolower (ch);
93117 decomp = g_unicode_canonical_decomposition (ch, &dlen);
101101 static void log_window_chats_setup (EmpathyLogWindow *window);
102102 static void log_window_chats_accounts_changed_cb (GtkWidget *combobox,
103103 EmpathyLogWindow *window);
104 static void log_window_chats_set_selected (EmpathyLogWindow *window,
105 TpAccount *account,
106 const gchar *chat_id,
107 gboolean is_chatroom);
104 static void log_window_chats_set_selected (EmpathyLogWindow *window);
108105 static gboolean log_window_chats_get_selected (EmpathyLogWindow *window,
109106 TpAccount **account,
110107 gchar **chat_id,
181178 EmpathyLogWindow *window)
182179 {
183180 gtk_notebook_set_current_page (GTK_NOTEBOOK (window->notebook), 1);
184 log_window_chats_set_selected (window, window->selected_account,
185 window->selected_chat_id, window->selected_is_chatroom);
181
182 /* We'll display the account once the model has been populate with the chats
183 * of this account. */
184 empathy_account_chooser_set_account (EMPATHY_ACCOUNT_CHOOSER (
185 window->account_chooser_chats), window->selected_account);
186 }
187
188 static void
189 select_account_once_ready (EmpathyLogWindow *self,
190 TpAccount *account,
191 const gchar *chat_id,
192 gboolean is_chatroom)
193 {
194 EmpathyAccountChooser *account_chooser = EMPATHY_ACCOUNT_CHOOSER (self->account_chooser_chats);
195
196 tp_clear_object (&self->selected_account);
197 self->selected_account = g_object_ref (account);
198
199 g_free (self->selected_chat_id);
200 self->selected_chat_id = g_strdup (chat_id);
201
202 self->selected_is_chatroom = is_chatroom;
203
204 if (empathy_account_chooser_is_ready (account_chooser))
205 account_chooser_ready_cb (account_chooser, self);
206 else
207 /* Chat will be selected once the account chooser is ready */
208 g_signal_connect (account_chooser, "ready",
209 G_CALLBACK (account_chooser_ready_cb), self);
186210 }
187211
188212 GtkWidget *
197221 gchar *filename;
198222 EmpathyLogWindow *window;
199223
200 if (log_window) {
224 if (log_window != NULL) {
201225 gtk_window_present (GTK_WINDOW (log_window->window));
202226
203 if (account && chat_id) {
227 if (account != NULL && chat_id != NULL) {
204228 gtk_notebook_set_current_page (GTK_NOTEBOOK (log_window->notebook), 1);
205 log_window_chats_set_selected (log_window, account,
206 chat_id, is_chatroom);
229 select_account_once_ready (log_window, account, chat_id, is_chatroom);
207230 }
208231
209232 return log_window->window;
294317 log_window_chats_setup (window);
295318 log_window_chats_populate (window);
296319
297 if (account && chat_id) {
298 window->selected_account = account;
299 window->selected_chat_id = g_strdup (chat_id);
300 window->selected_is_chatroom = is_chatroom;
301
302 if (empathy_account_chooser_is_ready (account_chooser))
303 account_chooser_ready_cb (account_chooser, window);
304 else
305 /* Chat will be selected once the account chooser is ready */
306 g_signal_connect (account_chooser, "ready",
307 G_CALLBACK (account_chooser_ready_cb), window);
308 }
309
310 if (parent) {
320 if (account != NULL && chat_id != NULL)
321 select_account_once_ready (window, account, chat_id, is_chatroom);
322
323 if (parent != NULL) {
311324 gtk_window_set_transient_for (GTK_WINDOW (window->window),
312325 GTK_WINDOW (parent));
313326 }
323336 {
324337 g_free (window->last_find);
325338 g_object_unref (window->log_manager);
339 tp_clear_object (&window->selected_account);
326340 g_free (window->selected_chat_id);
327341
328342 g_free (window);
343357 is_sensitive &= !EMP_STR_EMPTY (str);
344358 is_sensitive &=
345359 !window->last_find ||
346 (window->last_find && strcmp (window->last_find, str) != 0);
360 (window->last_find && tp_strdiff (window->last_find, str));
347361
348362 gtk_widget_set_sensitive (window->button_find, is_sensitive);
349363 }
519533 hit = l->data;
520534
521535 /* Protect against invalid data (corrupt or old log files. */
522 if (!hit->account || !hit->chat_id) {
536 if (hit->account == NULL || hit->chat_id == NULL) {
523537 continue;
524538 }
525539
550564 }
551565 }
552566
553 if (hits) {
567 if (hits != NULL) {
554568 tpl_log_manager_search_free (hits);
555569 }
556570 }
676690 str = gtk_entry_get_text (GTK_ENTRY (window->entry_find));
677691
678692 /* Don't find the same crap again */
679 if (window->last_find && strcmp (window->last_find, str) == 0) {
693 if (window->last_find && !tp_strdiff (window->last_find, str)) {
680694 return;
681695 }
682696
766780 EmpathyLogWindow *window = user_data;
767781 GList *chats;
768782 GList *l;
769 EmpathyAccountChooser *account_chooser;
770 TpAccount *account;
771783 GtkTreeView *view;
772784 GtkTreeModel *model;
773785 GtkTreeSelection *selection;
774786 GtkListStore *store;
775787 GtkTreeIter iter;
776788 GError *error = NULL;
789 gboolean select_account = FALSE;
777790
778791 if (log_window == NULL)
779792 return;
785798 return;
786799 }
787800
788 account_chooser = EMPATHY_ACCOUNT_CHOOSER (window->account_chooser_chats);
789 account = empathy_account_chooser_dup_account (account_chooser);
790
791801 view = GTK_TREE_VIEW (window->treeview_chats);
792802 model = gtk_tree_view_get_model (view);
793803 selection = gtk_tree_view_get_selection (view);
798808
799809 hit = l->data;
800810
811 if (hit->account == NULL)
812 continue;
813
801814 gtk_list_store_append (store, &iter);
802815 gtk_list_store_set (store, &iter,
803816 COL_CHAT_ICON, "empathy-available", /* FIXME */
804817 COL_CHAT_NAME, hit->chat_id,
805 COL_CHAT_ACCOUNT, account,
818 COL_CHAT_ACCOUNT, hit->account,
806819 COL_CHAT_ID, hit->chat_id,
807820 COL_CHAT_IS_CHATROOM, hit->is_chatroom,
808821 -1);
822
823 if (!tp_strdiff (tp_proxy_get_object_path (hit->account),
824 tp_proxy_get_object_path (window->selected_account)))
825 select_account = TRUE;
809826
810827 /* FIXME: Update COL_CHAT_ICON/NAME */
811828 if (hit->is_chatroom) {
819836 log_window_chats_changed_cb,
820837 window);
821838
822 g_object_unref (account);
839 /* We display the selected account if we populate the model with chats from
840 * this account. */
841 if (select_account)
842 log_window_chats_set_selected (window);
823843 }
824844
825845 static void
927947 }
928948
929949 static void
930 log_window_chats_set_selected (EmpathyLogWindow *window,
931 TpAccount *account,
932 const gchar *chat_id,
933 gboolean is_chatroom)
934 {
935 EmpathyAccountChooser *account_chooser;
950 log_window_chats_set_selected (EmpathyLogWindow *window)
951 {
936952 GtkTreeView *view;
937953 GtkTreeModel *model;
938954 GtkTreeSelection *selection;
940956 GtkTreePath *path;
941957 gboolean ok;
942958
943 account_chooser = EMPATHY_ACCOUNT_CHOOSER (window->account_chooser_chats);
944 empathy_account_chooser_set_account (account_chooser, account);
945
946959 view = GTK_TREE_VIEW (window->treeview_chats);
947960 model = gtk_tree_view_get_model (view);
948961 selection = gtk_tree_view_get_selection (view);
962975 COL_CHAT_IS_CHATROOM, &this_is_chatroom,
963976 -1);
964977
965 if (this_account == account &&
966 strcmp (this_chat_id, chat_id) == 0 &&
967 this_is_chatroom == is_chatroom) {
978 if (this_account == window->selected_account &&
979 !tp_strdiff (this_chat_id, window->selected_chat_id) &&
980 this_is_chatroom == window->selected_is_chatroom) {
968981 gtk_tree_selection_select_iter (selection, &iter);
969982 path = gtk_tree_model_get_path (model, &iter);
970983 gtk_tree_view_scroll_to_cell (view, path, NULL, TRUE, 0.5, 0.0);
977990 g_object_unref (this_account);
978991 g_free (this_chat_id);
979992 }
993
994 tp_clear_object (&window->selected_account);
995 tp_clear_pointer (&window->selected_chat_id, g_free);
980996 }
981997
982998 static gboolean
10071023 COL_CHAT_IS_CHATROOM, &room,
10081024 -1);
10091025
1010 if (chat_id) {
1026 if (chat_id != NULL) {
10111027 *chat_id = id;
10121028 } else {
10131029 g_free (id);
10141030 }
1015 if (account) {
1031 if (account != NULL) {
10161032 *account = acc;
10171033 } else {
10181034 g_object_unref (acc);
11621178 log_window_calendar_chats_day_selected_cb,
11631179 window);
11641180
1165 if (date) {
1181 if (date != NULL) {
11661182 /* Show messages of the most recent date */
11671183 log_window_get_messages_for_date (window, date);
11681184 }
13431359 str = gtk_entry_get_text (GTK_ENTRY (window->entry_chats));
13441360 empathy_chat_view_highlight (window->chatview_chats, str, FALSE);
13451361
1346 if (str) {
1362 if (str != NULL) {
13471363 empathy_chat_view_find_next (window->chatview_chats,
13481364 str,
13491365 TRUE,
13591375
13601376 str = gtk_entry_get_text (GTK_ENTRY (window->entry_chats));
13611377
1362 if (str) {
1378 if (str != NULL) {
13631379 empathy_chat_view_find_next (window->chatview_chats,
13641380 str,
13651381 FALSE,
00 <?xml version="1.0"?>
1 <!--*- mode: xml -*-->
21 <interface>
2 <!-- interface-requires gtk+ 2.12 -->
3 <!-- interface-naming-policy toplevel-contextual -->
34 <object class="GtkWindow" id="log_window">
45 <property name="title" translatable="yes">Previous Conversations</property>
56 <property name="role">log</property>
2324 <child>
2425 <object class="GtkLabel" id="label628">
2526 <property name="visible">True</property>
26 <property comments="Searching *for* something" name="label" translatable="yes">_For:</property>
27 <property name="label" translatable="yes" comments="Searching *for* something">_For:</property>
2728 <property name="use_underline">True</property>
2829 <property name="mnemonic_widget">entry_find</property>
2930 </object>
3031 <packing>
3132 <property name="expand">False</property>
3233 <property name="fill">False</property>
34 <property name="position">0</property>
3335 </packing>
3436 </child>
3537 <child>
4547 </child>
4648 <child>
4749 <object class="GtkButton" id="button_find">
50 <property name="label">gtk-find</property>
4851 <property name="visible">True</property>
4952 <property name="sensitive">False</property>
5053 <property name="can_focus">True</property>
5154 <property name="can_default">True</property>
5255 <property name="has_default">True</property>
53 <property name="label">gtk-find</property>
56 <property name="receives_default">False</property>
5457 <property name="use_stock">True</property>
5558 <property name="focus_on_click">False</property>
5659 </object>
6467 <packing>
6568 <property name="expand">False</property>
6669 <property name="fill">False</property>
70 <property name="position">0</property>
6771 </packing>
6872 </child>
6973 <child>
7579 <object class="GtkScrolledWindow" id="scrolledwindow14">
7680 <property name="visible">True</property>
7781 <property name="can_focus">True</property>
78 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
79 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
80 <property name="shadow_type">GTK_SHADOW_IN</property>
82 <property name="hscrollbar_policy">never</property>
83 <property name="vscrollbar_policy">automatic</property>
84 <property name="shadow_type">in</property>
8185 <child>
8286 <object class="GtkTreeView" id="treeview_find">
8387 <property name="visible">True</property>
99103 <object class="GtkScrolledWindow" id="scrolledwindow_find">
100104 <property name="visible">True</property>
101105 <property name="can_focus">True</property>
102 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
103 <property name="shadow_type">GTK_SHADOW_IN</property>
106 <property name="hscrollbar_policy">never</property>
107 <property name="shadow_type">in</property>
104108 <child>
105109 <placeholder/>
106110 </child>
107111 </object>
112 <packing>
113 <property name="position">0</property>
114 </packing>
108115 </child>
109116 <child>
110117 <object class="GtkHBox" id="hbox171">
114121 <placeholder/>
115122 </child>
116123 <child>
117 <object class="GtkButton" id="button_previous">
124 <object class="GtkButton" id="button_next">
125 <property name="label" translatable="yes">Find next</property>
118126 <property name="visible">True</property>
119127 <property name="sensitive">False</property>
120128 <property name="can_focus">True</property>
121 <property name="label">gtk-go-back</property>
122 <property name="use_stock">True</property>
129 <property name="receives_default">False</property>
130 <property name="image">image1</property>
123131 <property name="focus_on_click">False</property>
124132 </object>
125133 <packing>
126134 <property name="expand">False</property>
127135 <property name="fill">False</property>
128 <property name="pack_type">GTK_PACK_END</property>
136 <property name="pack_type">end</property>
129137 <property name="position">2</property>
130138 </packing>
131139 </child>
132140 <child>
133 <object class="GtkButton" id="button_next">
141 <object class="GtkButton" id="button_previous">
142 <property name="label" translatable="yes">Find previous</property>
134143 <property name="visible">True</property>
135144 <property name="sensitive">False</property>
136145 <property name="can_focus">True</property>
137 <property name="label">gtk-go-forward</property>
138 <property name="use_stock">True</property>
146 <property name="receives_default">False</property>
147 <property name="image">image2</property>
139148 <property name="focus_on_click">False</property>
140149 </object>
141150 <packing>
142151 <property name="expand">False</property>
143152 <property name="fill">False</property>
144 <property name="pack_type">GTK_PACK_END</property>
153 <property name="pack_type">end</property>
145154 <property name="position">1</property>
146155 </packing>
147156 </child>
168177 <child type="tab">
169178 <object class="GtkLabel" id="label595">
170179 <property name="visible">True</property>
171 <property comments="Tab Label" name="label" translatable="yes">Search</property>
180 <property name="label" translatable="yes" comments="Tab Label">Search</property>
172181 </object>
173182 <packing>
174183 <property name="tab_fill">False</property>
199208 <object class="GtkScrolledWindow" id="scrolledwindow_chats">
200209 <property name="visible">True</property>
201210 <property name="can_focus">True</property>
202 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
203 <property name="shadow_type">GTK_SHADOW_IN</property>
211 <property name="hscrollbar_policy">never</property>
212 <property name="shadow_type">in</property>
204213 <child>
205214 <placeholder/>
206215 </child>
221230 <property name="width_request">150</property>
222231 <property name="visible">True</property>
223232 <property name="can_focus">True</property>
224 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
225 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
226 <property name="shadow_type">GTK_SHADOW_IN</property>
233 <property name="hscrollbar_policy">never</property>
234 <property name="vscrollbar_policy">automatic</property>
235 <property name="shadow_type">in</property>
227236 <child>
228237 <object class="GtkTreeView" id="treeview_chats">
229238 <property name="visible">True</property>
232241 </object>
233242 </child>
234243 </object>
244 <packing>
245 <property name="position">0</property>
246 </packing>
235247 </child>
236248 <child>
237249 <object class="GtkCalendar" id="calendar_chats">
263275 <packing>
264276 <property name="expand">False</property>
265277 <property name="fill">False</property>
278 <property name="position">0</property>
266279 </packing>
267280 </child>
268281 <child>
284297 </packing>
285298 </child>
286299 </object>
300 <packing>
301 <property name="position">1</property>
302 </packing>
287303 </child>
288304 <child type="tab">
289305 <object class="GtkLabel" id="label596">
290306 <property name="visible">True</property>
291 <property comments="Tab Label" name="label" translatable="yes">Conversations</property>
307 <property name="label" translatable="yes" comments="Tab Label">Conversations</property>
292308 </object>
293309 <packing>
294310 <property name="position">1</property>
298314 </object>
299315 </child>
300316 </object>
317 <object class="GtkImage" id="image1">
318 <property name="visible">True</property>
319 <property name="stock">gtk-go-forward</property>
320 </object>
321 <object class="GtkImage" id="image2">
322 <property name="visible">True</property>
323 <property name="stock">gtk-go-back</property>
324 </object>
301325 </interface>
5757 (G_TYPE_INSTANCE_GET_PRIVATE ((o), EMPATHY_TYPE_NEW_CALL_DIALOG, \
5858 EmpathyNewCallDialogPriv))
5959
60 static void
61 create_media_channel_cb (GObject *source,
62 GAsyncResult *result,
63 gpointer user_data)
64 {
65 GError *error = NULL;
66
67 if (!tp_account_channel_request_create_channel_finish (
68 TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error))
69 {
70 DEBUG ("Failed to create media channel: %s", error->message);
71 g_error_free (error);
72 }
73 }
74
6075 /**
6176 * SECTION:empathy-new-call-dialog
6277 * @title: EmpathyNewCallDialog
6883 */
6984
7085 static void
71 call_contact (TpConnection *connection,
86 call_contact (TpAccount *account,
7287 const gchar *contact_id,
7388 gboolean video,
7489 gint64 timestamp)
7590 {
76 EmpathyDispatcher *dispatcher;
7791 GHashTable *request;
92 TpAccountChannelRequest *req;
7893
7994 request = tp_asv_new (
8095 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
87102 video,
88103 NULL);
89104
90 dispatcher = empathy_dispatcher_dup_singleton ();
91
92 empathy_dispatcher_create_channel (dispatcher, connection, request,
93 timestamp, NULL, NULL);
94
95 g_object_unref (dispatcher);
105 req = tp_account_channel_request_new (account, request, timestamp);
106
107 tp_account_channel_request_create_channel_async (req, NULL, NULL,
108 create_media_channel_cb, NULL);
109
110 g_object_unref (req);
96111 }
97112
98113 static void
100115 {
101116 EmpathyNewCallDialogPriv *priv = GET_PRIV (dialog);
102117 gboolean video;
103 TpConnection *connection;
118 TpAccount *account;
104119 const gchar *contact_id;
105120
106121 if (response_id != GTK_RESPONSE_ACCEPT) goto out;
107122
108123 contact_id = empathy_contact_selector_dialog_get_selected (
109 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), &connection);
110
111 if (EMP_STR_EMPTY (contact_id) || connection == NULL) goto out;
124 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), NULL, &account);
125
126 if (EMP_STR_EMPTY (contact_id) || account == NULL) goto out;
112127
113128 /* check if video is enabled now because the dialog will be destroyed once
114129 * we return from this function. */
115130 video = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_video));
116131
117 call_contact (connection, contact_id, video, gtk_get_current_event_time ());
132 call_contact (account, contact_id, video, gtk_get_current_event_time ());
118133
119134 out:
120135 gtk_widget_destroy (GTK_WIDGET (dialog));
5959 static void
6060 empathy_new_message_dialog_response (GtkDialog *dialog, int response_id)
6161 {
62 TpConnection *connection;
62 TpAccount *account;
6363 const gchar *contact_id;
6464
6565 if (response_id != GTK_RESPONSE_ACCEPT) goto out;
6666
6767 contact_id = empathy_contact_selector_dialog_get_selected (
68 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), &connection);
69
70 if (EMP_STR_EMPTY (contact_id) || connection == NULL) goto out;
71
72 empathy_dispatcher_chat_with_contact_id (connection, contact_id,
73 gtk_get_current_event_time (), NULL, NULL);
68 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), NULL, &account);
69
70 if (EMP_STR_EMPTY (contact_id) || account == NULL) goto out;
71
72 empathy_dispatcher_chat_with_contact_id (account, contact_id,
73 gtk_get_current_event_time ());
7474
7575 out:
7676 gtk_widget_destroy (GTK_WIDGET (dialog));
0 /*
1 * Copyright (C) 2005-2007 Imendio AB
2 * Copyright (C) 2007-2008, 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 *
19 * Authors: Mikael Hallendal <micke@imendio.com>
20 * Martyn Russell <martyn@imendio.com>
21 * Xavier Claessens <xclaesse@gmail.com>
22 * Philip Withnall <philip.withnall@collabora.co.uk>
23 *
24 * Based off EmpathyContactListStore.
25 */
26
27 #include "config.h"
28
29 #include <string.h>
30
31 #include <glib.h>
32 #include <glib/gi18n-lib.h>
33 #include <gtk/gtk.h>
34
35 #include <telepathy-glib/util.h>
36
37 #include <folks/folks.h>
38 #include <folks/folks-telepathy.h>
39
40 #include <libempathy/empathy-utils.h>
41
42 #include "empathy-persona-store.h"
43 #include "empathy-gtk-enum-types.h"
44 #include "empathy-ui-utils.h"
45
46 #define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
47 #include <libempathy/empathy-debug.h>
48
49 /* Active users are those which have recently changed state
50 * (e.g. online, offline or from normal to a busy state). */
51
52 /* Time in seconds user is shown as active */
53 #define ACTIVE_USER_SHOW_TIME 7
54
55 /* Time in seconds after connecting which we wait before active users are
56 * enabled */
57 #define ACTIVE_USER_WAIT_TO_ENABLE_TIME 5
58
59 static void add_persona (EmpathyPersonaStore *self,
60 FolksPersona *persona);
61 static GtkTreePath * find_persona (EmpathyPersonaStore *self,
62 FolksPersona *persona);
63 static void update_persona (EmpathyPersonaStore *self,
64 FolksPersona *persona);
65 static void remove_persona (EmpathyPersonaStore *self,
66 FolksPersona *persona);
67
68 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyPersonaStore)
69
70 typedef struct
71 {
72 FolksIndividual *individual; /* owned */
73 GHashTable *personas; /* owned Persona -> owned GtkTreeRowReference */
74
75 gboolean show_avatars;
76 gboolean show_protocols;
77 gboolean show_active;
78 EmpathyPersonaStoreSort sort_criterion;
79
80 guint inhibit_active;
81 guint setup_idle_id;
82
83 GHashTable *status_icons; /* owned icon name -> owned GdkPixbuf */
84 } EmpathyPersonaStorePriv;
85
86 enum {
87 PROP_0,
88 PROP_INDIVIDUAL,
89 PROP_SHOW_AVATARS,
90 PROP_SHOW_PROTOCOLS,
91 PROP_SORT_CRITERION
92 };
93
94 G_DEFINE_TYPE (EmpathyPersonaStore, empathy_persona_store, GTK_TYPE_LIST_STORE);
95
96 static gboolean
97 inhibit_active_cb (EmpathyPersonaStore *store)
98 {
99 EmpathyPersonaStorePriv *priv;
100
101 priv = GET_PRIV (store);
102
103 priv->show_active = TRUE;
104 priv->inhibit_active = 0;
105
106 return FALSE;
107 }
108
109 typedef struct {
110 EmpathyPersonaStore *store;
111 FolksPersona *persona;
112 gboolean remove;
113 guint timeout;
114 } ShowActiveData;
115
116 static void persona_active_free (ShowActiveData *data);
117
118 static void
119 persona_active_invalidated (ShowActiveData *data,
120 GObject *old_object)
121 {
122 /* Remove the timeout and free the struct, since the persona or persona
123 * store has disappeared. */
124 g_source_remove (data->timeout);
125
126 if (old_object == (GObject *) data->store)
127 data->store = NULL;
128 else if (old_object == (GObject *) data->persona)
129 data->persona = NULL;
130 else
131 g_assert_not_reached ();
132
133 persona_active_free (data);
134 }
135
136 static ShowActiveData *
137 persona_active_new (EmpathyPersonaStore *self,
138 FolksPersona *persona,
139 gboolean remove_)
140 {
141 ShowActiveData *data;
142
143 DEBUG ("Contact:'%s' now active, and %s be removed",
144 folks_alias_get_alias (FOLKS_ALIAS (persona)),
145 remove_ ? "WILL" : "WILL NOT");
146
147 data = g_slice_new0 (ShowActiveData);
148
149 /* We don't actually want to force either the PersonaStore or the
150 * Persona to stay alive, since the user could quit Empathy or disable
151 * the account before the persona_active timeout is fired. */
152 g_object_weak_ref (G_OBJECT (self),
153 (GWeakNotify) persona_active_invalidated, data);
154 g_object_weak_ref (G_OBJECT (persona),
155 (GWeakNotify) persona_active_invalidated, data);
156
157 data->store = self;
158 data->persona = persona;
159 data->remove = remove_;
160
161 return data;
162 }
163
164 static void
165 persona_active_free (ShowActiveData *data)
166 {
167 if (data->store != NULL)
168 {
169 g_object_weak_unref (G_OBJECT (data->store),
170 (GWeakNotify) persona_active_invalidated, data);
171 }
172
173 if (data->persona != NULL)
174 {
175 g_object_weak_unref (G_OBJECT (data->persona),
176 (GWeakNotify) persona_active_invalidated, data);
177 }
178
179 g_slice_free (ShowActiveData, data);
180 }
181
182 static void
183 persona_set_active (EmpathyPersonaStore *self,
184 FolksPersona *persona,
185 gboolean active,
186 gboolean set_changed)
187 {
188 EmpathyPersonaStorePriv *priv;
189 GtkTreePath *path;
190 GtkTreeIter iter;
191
192 priv = GET_PRIV (self);
193
194 path = find_persona (self, persona);
195 if (path == NULL)
196 return;
197
198 gtk_tree_model_get_iter (GTK_TREE_MODEL (self), &iter, path);
199 gtk_list_store_set (GTK_LIST_STORE (self), &iter,
200 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE, active,
201 -1);
202
203 DEBUG ("Set item %s", active ? "active" : "inactive");
204
205 if (set_changed)
206 gtk_tree_model_row_changed (GTK_TREE_MODEL (self), path, &iter);
207
208 gtk_tree_path_free (path);
209 }
210
211 static gboolean
212 persona_active_cb (ShowActiveData *data)
213 {
214 const gchar *alias = folks_alias_get_alias (FOLKS_ALIAS (data->persona));
215
216 if (data->remove)
217 {
218 DEBUG ("Contact:'%s' active timeout, removing item", alias);
219 remove_persona (data->store, data->persona);
220 }
221
222 DEBUG ("Contact:'%s' no longer active", alias);
223 persona_set_active (data->store, data->persona, FALSE, TRUE);
224
225 persona_active_free (data);
226
227 return FALSE;
228 }
229
230 static void
231 persona_updated_cb (FolksPersona *persona,
232 GParamSpec *pspec,
233 EmpathyPersonaStore *self)
234 {
235 DEBUG ("Contact:'%s' updated, checking roster is in sync...",
236 folks_alias_get_alias (FOLKS_ALIAS (persona)));
237
238 update_persona (self, persona);
239 }
240
241 static void
242 add_persona_and_connect (EmpathyPersonaStore *self,
243 FolksPersona *persona)
244 {
245 /* We don't want any non-Telepathy personas */
246 if (!TPF_IS_PERSONA (persona))
247 return;
248
249 g_signal_connect (persona, "notify::presence",
250 (GCallback) persona_updated_cb, self);
251 g_signal_connect (persona, "notify::presence-message",
252 (GCallback) persona_updated_cb, self);
253 g_signal_connect (persona, "notify::alias",
254 (GCallback) persona_updated_cb, self);
255 g_signal_connect (persona, "notify::avatar",
256 (GCallback) persona_updated_cb, self);
257
258 add_persona (self, persona);
259 }
260
261 static void
262 remove_persona_and_disconnect (EmpathyPersonaStore *self,
263 FolksPersona *persona)
264 {
265 if (!TPF_IS_PERSONA (persona))
266 return;
267
268 g_signal_handlers_disconnect_by_func (persona,
269 (GCallback) persona_updated_cb, self);
270
271 remove_persona (self, persona);
272 }
273
274 static void
275 add_persona (EmpathyPersonaStore *self,
276 FolksPersona *persona)
277 {
278 EmpathyPersonaStorePriv *priv;
279 GtkTreeIter iter;
280 GtkTreePath *path;
281 EmpathyContact *contact;
282 const gchar *alias;
283
284 if (!TPF_IS_PERSONA (persona))
285 return;
286
287 priv = GET_PRIV (self);
288
289 alias = folks_alias_get_alias (FOLKS_ALIAS (persona));
290 if (EMP_STR_EMPTY (alias))
291 return;
292
293 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
294 TPF_PERSONA (persona)));
295
296 gtk_list_store_insert_with_values (GTK_LIST_STORE (self), &iter, 0,
297 EMPATHY_PERSONA_STORE_COL_NAME, alias,
298 EMPATHY_PERSONA_STORE_COL_DISPLAY_ID,
299 folks_persona_get_display_id (persona),
300 EMPATHY_PERSONA_STORE_COL_PERSONA, persona,
301 EMPATHY_PERSONA_STORE_COL_CAN_AUDIO_CALL,
302 empathy_contact_get_capabilities (contact) &
303 EMPATHY_CAPABILITIES_AUDIO,
304 EMPATHY_PERSONA_STORE_COL_CAN_VIDEO_CALL,
305 empathy_contact_get_capabilities (contact) &
306 EMPATHY_CAPABILITIES_VIDEO,
307 -1);
308
309 g_object_unref (contact);
310
311 path = gtk_tree_model_get_path (GTK_TREE_MODEL (self), &iter);
312 g_hash_table_replace (priv->personas, g_object_ref (persona),
313 gtk_tree_row_reference_new (GTK_TREE_MODEL (self), path));
314 gtk_tree_path_free (path);
315
316 update_persona (self, persona);
317 }
318
319 static void
320 remove_persona (EmpathyPersonaStore *self,
321 FolksPersona *persona)
322 {
323 EmpathyPersonaStorePriv *priv;
324 GtkTreePath *path;
325 GtkTreeIter iter;
326
327 if (!TPF_IS_PERSONA (persona))
328 return;
329
330 priv = GET_PRIV (self);
331
332 path = find_persona (self, persona);
333 if (path == NULL)
334 return;
335
336 g_hash_table_remove (priv->personas, persona);
337
338 gtk_tree_model_get_iter (GTK_TREE_MODEL (self), &iter, path);
339 gtk_list_store_remove (GTK_LIST_STORE (self), &iter);
340 gtk_tree_path_free (path);
341 }
342
343 static GdkPixbuf *
344 get_persona_status_icon (EmpathyPersonaStore *self,
345 FolksPersona *persona)
346 {
347 EmpathyPersonaStorePriv *priv = GET_PRIV (self);
348 EmpathyContact *contact;
349 const gchar *protocol_name = NULL;
350 gchar *icon_name = NULL;
351 GdkPixbuf *pixbuf_status = NULL;
352 const gchar *status_icon_name = NULL;
353
354 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
355 TPF_PERSONA (persona)));
356
357 status_icon_name = empathy_icon_name_for_contact (contact);
358 if (status_icon_name == NULL)
359 {
360 g_object_unref (contact);
361 return NULL;
362 }
363
364 if (priv->show_protocols)
365 {
366 protocol_name = empathy_protocol_name_for_contact (contact);
367 icon_name = g_strdup_printf ("%s-%s", status_icon_name, protocol_name);
368 }
369 else
370 {
371 icon_name = g_strdup_printf ("%s", status_icon_name);
372 }
373
374 pixbuf_status = g_hash_table_lookup (priv->status_icons, icon_name);
375
376 if (pixbuf_status == NULL)
377 {
378 pixbuf_status = empathy_pixbuf_contact_status_icon_with_icon_name (
379 contact, status_icon_name, priv->show_protocols);
380
381 if (pixbuf_status != NULL)
382 {
383 g_hash_table_insert (priv->status_icons, g_strdup (icon_name),
384 pixbuf_status);
385 }
386 }
387
388 g_object_unref (contact);
389 g_free (icon_name);
390
391 return pixbuf_status;
392 }
393
394 static void
395 update_persona (EmpathyPersonaStore *self,
396 FolksPersona *persona)
397 {
398 EmpathyPersonaStorePriv *priv = GET_PRIV (self);
399 GtkTreePath *path;
400 gboolean do_set_active = FALSE;
401 gboolean do_set_refresh = FALSE;
402 const gchar *alias;
403
404 path = find_persona (self, persona);
405 alias = folks_alias_get_alias (FOLKS_ALIAS (persona));
406
407 if (path == NULL)
408 {
409 DEBUG ("Contact:'%s' in list:NO, should be:YES", alias);
410
411 add_persona (self, persona);
412
413 if (priv->show_active)
414 {
415 do_set_active = TRUE;
416 DEBUG ("Set active (contact added)");
417 }
418 }
419 else
420 {
421 EmpathyContact *contact;
422 GtkTreeIter iter;
423 GdkPixbuf *pixbuf_avatar;
424 GdkPixbuf *pixbuf_status;
425 gboolean now_online = FALSE;
426 gboolean was_online = TRUE;
427
428 DEBUG ("Contact:'%s' in list:YES, should be:YES", alias);
429
430 gtk_tree_model_get_iter (GTK_TREE_MODEL (self), &iter, path);
431 gtk_tree_path_free (path);
432
433 /* Get online state now. */
434 now_online = folks_presence_is_online (FOLKS_PRESENCE (persona));
435
436 /* Get online state before. */
437 gtk_tree_model_get (GTK_TREE_MODEL (self), &iter,
438 EMPATHY_PERSONA_STORE_COL_IS_ONLINE, &was_online,
439 -1);
440
441 /* Is this really an update or an online/offline. */
442 if (priv->show_active)
443 {
444 if (was_online != now_online)
445 {
446 do_set_active = TRUE;
447 do_set_refresh = TRUE;
448
449 DEBUG ("Set active (contact updated %s)",
450 was_online ? "online -> offline" : "offline -> online");
451 }
452 else
453 {
454 /* Was TRUE for presence updates. */
455 /* do_set_active = FALSE; */
456 do_set_refresh = TRUE;
457 DEBUG ("Set active (contact updated)");
458 }
459 }
460
461 /* We still need to use EmpathyContact for the capabilities stuff */
462 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
463 TPF_PERSONA (persona)));
464
465 pixbuf_avatar = empathy_pixbuf_avatar_from_contact_scaled (contact,
466 32, 32);
467 pixbuf_status = get_persona_status_icon (self, persona);
468
469 gtk_list_store_set (GTK_LIST_STORE (self), &iter,
470 EMPATHY_PERSONA_STORE_COL_ICON_STATUS, pixbuf_status,
471 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR, pixbuf_avatar,
472 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR_VISIBLE, priv->show_avatars,
473 EMPATHY_PERSONA_STORE_COL_NAME, alias,
474 EMPATHY_PERSONA_STORE_COL_DISPLAY_ID,
475 folks_persona_get_display_id (persona),
476 EMPATHY_PERSONA_STORE_COL_PRESENCE_TYPE,
477 folks_presence_get_presence_type (FOLKS_PRESENCE (persona)),
478 EMPATHY_PERSONA_STORE_COL_STATUS,
479 folks_presence_get_presence_message (FOLKS_PRESENCE (persona)),
480 EMPATHY_PERSONA_STORE_COL_IS_ONLINE, now_online,
481 EMPATHY_PERSONA_STORE_COL_CAN_AUDIO_CALL,
482 empathy_contact_get_capabilities (contact) &
483 EMPATHY_CAPABILITIES_AUDIO,
484 EMPATHY_PERSONA_STORE_COL_CAN_VIDEO_CALL,
485 empathy_contact_get_capabilities (contact) &
486 EMPATHY_CAPABILITIES_VIDEO,
487 -1);
488
489 g_object_unref (contact);
490
491 if (pixbuf_avatar)
492 g_object_unref (pixbuf_avatar);
493 }
494
495 if (priv->show_active && do_set_active)
496 {
497 persona_set_active (self, persona, do_set_active, do_set_refresh);
498
499 if (do_set_active)
500 {
501 ShowActiveData *data;
502
503 data = persona_active_new (self, persona, FALSE);
504 data->timeout = g_timeout_add_seconds (ACTIVE_USER_SHOW_TIME,
505 (GSourceFunc) persona_active_cb,
506 data);
507 }
508 }
509
510 /* FIXME: when someone goes online then offline quickly, the
511 * first timeout sets the user to be inactive and the second
512 * timeout removes the user from the contact list, really we
513 * should remove the first timeout.
514 */
515 }
516
517 static void
518 individual_notify_personas_cb (GObject *object,
519 GParamSpec *pspec,
520 EmpathyPersonaStore *self)
521 {
522 EmpathyPersonaStorePriv *priv = GET_PRIV (self);
523 GList *old_personas, *new_personas, *removed_personas, *l;
524
525 /* Remove old personas which are no longer in the individual.
526 * Build a list of such personas to remove from our hash table.
527 * This is slow. */
528 old_personas = g_hash_table_get_keys (priv->personas);
529 new_personas = folks_individual_get_personas (FOLKS_INDIVIDUAL (object));
530 removed_personas = NULL;
531
532 for (l = old_personas; l != NULL; l = l->next)
533 {
534 GList *i = g_list_find (new_personas, l->data);
535 if (i == NULL)
536 removed_personas = g_list_prepend (removed_personas, l->data);
537 }
538 g_list_free (old_personas);
539
540 /* Remove the removed personas. We can't do this from inside the above loop,
541 * as old_personas is only valid until the hash table is modified. */
542 for (l = removed_personas; l != NULL; l = l->next)
543 remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data));
544 g_list_free (removed_personas);
545
546 /* Add each of the new personas to the tree model */
547 for (l = new_personas; l != NULL; l = l->next)
548 {
549 FolksPersona *persona = FOLKS_PERSONA (l->data);
550
551 if (g_hash_table_lookup (priv->personas, persona) == NULL)
552 add_persona_and_connect (self, persona);
553 }
554 }
555
556 static gint
557 sort_personas (FolksPersona *persona_a,
558 FolksPersona *persona_b)
559 {
560 EmpathyContact *contact;
561 TpAccount *account_a, *account_b;
562 gint ret_val;
563
564 g_return_val_if_fail (persona_a != NULL || persona_b != NULL, 0);
565
566 /* alias */
567 ret_val = g_utf8_collate (folks_alias_get_alias (FOLKS_ALIAS (persona_a)),
568 folks_alias_get_alias (FOLKS_ALIAS (persona_b)));
569
570 if (ret_val != 0)
571 goto out;
572
573 /* identifier */
574 ret_val = g_utf8_collate (folks_persona_get_display_id (persona_a),
575 folks_persona_get_display_id (persona_b));
576
577 if (ret_val != 0)
578 goto out;
579
580 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
581 TPF_PERSONA (persona_a)));
582 account_a = empathy_contact_get_account (contact);
583 g_object_unref (contact);
584
585 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
586 TPF_PERSONA (persona_b)));
587 account_b = empathy_contact_get_account (contact);
588 g_object_unref (contact);
589
590 /* protocol */
591 ret_val = strcmp (tp_account_get_protocol (account_a),
592 tp_account_get_protocol (account_a));
593
594 if (ret_val != 0)
595 goto out;
596
597 /* account ID */
598 ret_val = strcmp (tp_proxy_get_object_path (account_a),
599 tp_proxy_get_object_path (account_a));
600
601 out:
602 return ret_val;
603 }
604
605 static gint
606 state_sort_func (GtkTreeModel *model,
607 GtkTreeIter *iter_a,
608 GtkTreeIter *iter_b,
609 gpointer user_data)
610 {
611 gint ret_val;
612 gchar *name_a, *name_b;
613 FolksPersona *persona_a, *persona_b;
614
615 gtk_tree_model_get (model, iter_a,
616 EMPATHY_PERSONA_STORE_COL_NAME, &name_a,
617 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona_a,
618 -1);
619 gtk_tree_model_get (model, iter_b,
620 EMPATHY_PERSONA_STORE_COL_NAME, &name_b,
621 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona_b,
622 -1);
623
624 if (persona_a == NULL || persona_b == NULL) {
625 ret_val = 0;
626 goto free_and_out;
627 }
628
629 /* If we managed to get this far, we can start looking at
630 * the presences.
631 */
632 ret_val = -tp_connection_presence_type_cmp_availability (
633 folks_presence_get_presence_type (FOLKS_PRESENCE (persona_a)),
634 folks_presence_get_presence_type (FOLKS_PRESENCE (persona_b)));
635
636 if (ret_val == 0) {
637 /* Fallback: compare by name et al. */
638 ret_val = sort_personas (persona_a, persona_b);
639 }
640
641 free_and_out:
642 g_free (name_a);
643 g_free (name_b);
644
645 tp_clear_object (&persona_a);
646 tp_clear_object (&persona_b);
647
648 return ret_val;
649 }
650
651 static gint
652 name_sort_func (GtkTreeModel *model,
653 GtkTreeIter *iter_a,
654 GtkTreeIter *iter_b,
655 gpointer user_data)
656 {
657 gchar *name_a, *name_b;
658 FolksPersona *persona_a, *persona_b;
659 gint ret_val;
660
661 gtk_tree_model_get (model, iter_a,
662 EMPATHY_PERSONA_STORE_COL_NAME, &name_a,
663 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona_a,
664 -1);
665 gtk_tree_model_get (model, iter_b,
666 EMPATHY_PERSONA_STORE_COL_NAME, &name_b,
667 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona_b,
668 -1);
669
670 if (persona_a == NULL || persona_b == NULL)
671 ret_val = 0;
672 else
673 ret_val = sort_personas (persona_a, persona_b);
674
675 tp_clear_object (&persona_a);
676 tp_clear_object (&persona_b);
677
678 return ret_val;
679 }
680
681 static GtkTreePath *
682 find_persona (EmpathyPersonaStore *self,
683 FolksPersona *persona)
684 {
685 EmpathyPersonaStorePriv *priv = GET_PRIV (self);
686 GtkTreeRowReference *row;
687
688 row = g_hash_table_lookup (priv->personas, persona);
689 if (row == NULL)
690 return NULL;
691
692 return gtk_tree_row_reference_get_path (row);
693 }
694
695 static gboolean
696 update_list_mode_foreach (GtkTreeModel *model,
697 GtkTreePath *path,
698 GtkTreeIter *iter,
699 EmpathyPersonaStore *self)
700 {
701 EmpathyPersonaStorePriv *priv;
702 FolksPersona *persona;
703 GdkPixbuf *pixbuf_status;
704
705 priv = GET_PRIV (self);
706
707 gtk_tree_model_get (model, iter,
708 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona,
709 -1);
710
711 if (persona == NULL)
712 return FALSE;
713
714 /* get icon from hash_table */
715 pixbuf_status = get_persona_status_icon (self, persona);
716
717 gtk_list_store_set (GTK_LIST_STORE (self), iter,
718 EMPATHY_PERSONA_STORE_COL_ICON_STATUS, pixbuf_status,
719 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR_VISIBLE, priv->show_avatars,
720 -1);
721
722 tp_clear_object (&persona);
723
724 return FALSE;
725 }
726
727 static void
728 set_up (EmpathyPersonaStore *self)
729 {
730 EmpathyPersonaStorePriv *priv;
731 GType types[] = {
732 GDK_TYPE_PIXBUF, /* Status pixbuf */
733 GDK_TYPE_PIXBUF, /* Avatar pixbuf */
734 G_TYPE_BOOLEAN, /* Avatar pixbuf visible */
735 G_TYPE_STRING, /* Name */
736 G_TYPE_STRING, /* Display ID */
737 G_TYPE_UINT, /* Presence type */
738 G_TYPE_STRING, /* Status string */
739 FOLKS_TYPE_PERSONA, /* Persona */
740 G_TYPE_BOOLEAN, /* Is active */
741 G_TYPE_BOOLEAN, /* Is online */
742 G_TYPE_BOOLEAN, /* Can make audio calls */
743 G_TYPE_BOOLEAN, /* Can make video calls */
744 };
745
746 priv = GET_PRIV (self);
747
748 gtk_list_store_set_column_types (GTK_LIST_STORE (self),
749 EMPATHY_PERSONA_STORE_COL_COUNT, types);
750
751 /* Set up sorting */
752 gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (self),
753 EMPATHY_PERSONA_STORE_COL_NAME, name_sort_func, self, NULL);
754 gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (self),
755 EMPATHY_PERSONA_STORE_COL_STATUS, state_sort_func, self, NULL);
756
757 priv->sort_criterion = EMPATHY_PERSONA_STORE_SORT_NAME;
758 empathy_persona_store_set_sort_criterion (self, priv->sort_criterion);
759 }
760
761 static void
762 empathy_persona_store_init (EmpathyPersonaStore *self)
763 {
764 EmpathyPersonaStorePriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
765 EMPATHY_TYPE_PERSONA_STORE, EmpathyPersonaStorePriv);
766
767 self->priv = priv;
768
769 priv->show_avatars = TRUE;
770 priv->show_protocols = FALSE;
771 priv->inhibit_active = g_timeout_add_seconds (ACTIVE_USER_WAIT_TO_ENABLE_TIME,
772 (GSourceFunc) inhibit_active_cb, self);
773
774 priv->status_icons = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
775 g_object_unref);
776 priv->personas = g_hash_table_new_full (g_direct_hash, g_direct_equal,
777 g_object_unref, (GDestroyNotify) gtk_tree_row_reference_free);
778
779 set_up (self);
780 }
781
782 static void
783 get_property (GObject *object,
784 guint param_id,
785 GValue *value,
786 GParamSpec *pspec)
787 {
788 EmpathyPersonaStorePriv *priv = GET_PRIV (object);
789
790 switch (param_id)
791 {
792 case PROP_INDIVIDUAL:
793 g_value_set_object (value, priv->individual);
794 break;
795 case PROP_SHOW_AVATARS:
796 g_value_set_boolean (value, priv->show_avatars);
797 break;
798 case PROP_SHOW_PROTOCOLS:
799 g_value_set_boolean (value, priv->show_protocols);
800 break;
801 case PROP_SORT_CRITERION:
802 g_value_set_enum (value, priv->sort_criterion);
803 break;
804 default:
805 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
806 break;
807 }
808 }
809
810 static void
811 set_property (GObject *object,
812 guint param_id,
813 const GValue *value,
814 GParamSpec *pspec)
815 {
816 EmpathyPersonaStore *self = EMPATHY_PERSONA_STORE (object);
817
818 switch (param_id)
819 {
820 case PROP_INDIVIDUAL:
821 empathy_persona_store_set_individual (self, g_value_get_object (value));
822 break;
823 case PROP_SHOW_AVATARS:
824 empathy_persona_store_set_show_avatars (self,
825 g_value_get_boolean (value));
826 break;
827 case PROP_SHOW_PROTOCOLS:
828 empathy_persona_store_set_show_protocols (self,
829 g_value_get_boolean (value));
830 break;
831 case PROP_SORT_CRITERION:
832 empathy_persona_store_set_sort_criterion (self,
833 g_value_get_enum (value));
834 break;
835 default:
836 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
837 break;
838 }
839 }
840
841 static void
842 dispose (GObject *object)
843 {
844 EmpathyPersonaStorePriv *priv = GET_PRIV (object);
845
846 empathy_persona_store_set_individual (EMPATHY_PERSONA_STORE (object), NULL);
847
848 if (priv->inhibit_active != 0)
849 {
850 g_source_remove (priv->inhibit_active);
851 priv->inhibit_active = 0;
852 }
853
854 if (priv->setup_idle_id != 0)
855 {
856 g_source_remove (priv->setup_idle_id);
857 priv->setup_idle_id = 0;
858 }
859
860 G_OBJECT_CLASS (empathy_persona_store_parent_class)->dispose (object);
861 }
862
863 static void
864 finalize (GObject *object)
865 {
866 EmpathyPersonaStorePriv *priv = GET_PRIV (object);
867
868 g_hash_table_destroy (priv->status_icons);
869 g_hash_table_destroy (priv->personas);
870
871 G_OBJECT_CLASS (empathy_persona_store_parent_class)->finalize (object);
872 }
873
874 static void
875 empathy_persona_store_class_init (EmpathyPersonaStoreClass *klass)
876 {
877 GObjectClass *object_class = G_OBJECT_CLASS (klass);
878
879 object_class->get_property = get_property;
880 object_class->set_property = set_property;
881 object_class->dispose = dispose;
882 object_class->finalize = finalize;
883
884 /**
885 * EmpathyPersonaStore:individual:
886 *
887 * The #FolksIndividual whose personas should be listed by the store. This
888 * may be %NULL, which results in an empty store.
889 */
890 g_object_class_install_property (object_class, PROP_INDIVIDUAL,
891 g_param_spec_object ("individual",
892 "Individual",
893 "The FolksIndividual whose Personas should be listed by the store.",
894 FOLKS_TYPE_INDIVIDUAL,
895 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
896
897 /**
898 * EmpathyPersonaStore:show-avatars:
899 *
900 * Whether the store should display avatars for personas. This is a property
901 * of the store rather than of #EmpathyPersonaView for efficiency reasons.
902 */
903 g_object_class_install_property (object_class, PROP_SHOW_AVATARS,
904 g_param_spec_boolean ("show-avatars",
905 "Show Avatars",
906 "Whether the store should display avatars for personas.",
907 TRUE,
908 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
909
910 /**
911 * EmpathyPersonaStore:show-protocols:
912 *
913 * Whether the store should display protocol icons for personas. This is a
914 * property of the store rather than of #EmpathyPersonaView because it is
915 * closely tied in with #EmpathyPersonaStore:show-avatars.
916 */
917 g_object_class_install_property (object_class, PROP_SHOW_PROTOCOLS,
918 g_param_spec_boolean ("show-protocols",
919 "Show Protocols",
920 "Whether the store should display protocol icons for personas.",
921 FALSE,
922 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
923
924 /**
925 * EmpathyPersonaStore:sort-criterion:
926 *
927 * The criterion used to sort the personas in the store.
928 */
929 g_object_class_install_property (object_class, PROP_SORT_CRITERION,
930 g_param_spec_enum ("sort-criterion",
931 "Sort criterion",
932 "The sort criterion to use for sorting the persona list",
933 EMPATHY_TYPE_PERSONA_STORE_SORT,
934 EMPATHY_PERSONA_STORE_SORT_NAME,
935 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
936
937 g_type_class_add_private (object_class, sizeof (EmpathyPersonaStorePriv));
938 }
939
940 /**
941 * empathy_persona_store_new:
942 * @individual: the #FolksIndividual whose personas should be used in the store,
943 * or %NULL
944 *
945 * Create a new #EmpathyPersonaStore with the personas from the given
946 * @individual.
947 *
948 * Return value: a new #EmpathyPersonaStore
949 */
950 EmpathyPersonaStore *
951 empathy_persona_store_new (FolksIndividual *individual)
952 {
953 g_return_val_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual),
954 NULL);
955
956 return g_object_new (EMPATHY_TYPE_PERSONA_STORE,
957 "individual", individual, NULL);
958 }
959
960 /**
961 * empathy_persona_store_get_individual:
962 * @self: an #EmpathyPersonaStore
963 *
964 * Get the value of #EmpathyPersonaStore:individual.
965 *
966 * Return value: the individual being displayed by the store, or %NULL
967 */
968 FolksIndividual *
969 empathy_persona_store_get_individual (EmpathyPersonaStore *self)
970 {
971 g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), NULL);
972
973 return GET_PRIV (self)->individual;
974 }
975
976 /**
977 * empathy_persona_store_set_individual:
978 * @self: an #EmpathyPersonaStore
979 * @individual: the new individual to display in the store, or %NULL
980 *
981 * Set #EmpathyPersonaStore:individual to @individual, replacing the personas
982 * which were in the store with the personas belonging to @individual, or with
983 * nothing if @individual is %NULL.
984 */
985 void
986 empathy_persona_store_set_individual (EmpathyPersonaStore *self,
987 FolksIndividual *individual)
988 {
989 EmpathyPersonaStorePriv *priv;
990
991 g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self));
992 g_return_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual));
993
994 priv = GET_PRIV (self);
995
996 /* Remove the old individual */
997 if (priv->individual != NULL)
998 {
999 GList *personas, *l;
1000
1001 g_signal_handlers_disconnect_by_func (priv->individual,
1002 (GCallback) individual_notify_personas_cb, self);
1003
1004 /* Disconnect from and remove all personas belonging to this individual */
1005 personas = folks_individual_get_personas (priv->individual);
1006 for (l = personas; l != NULL; l = l->next)
1007 remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data));
1008
1009 g_object_unref (priv->individual);
1010 }
1011
1012 priv->individual = individual;
1013
1014 /* Add the new individual */
1015 if (individual != NULL)
1016 {
1017 GList *personas, *l;
1018
1019 g_object_ref (individual);
1020
1021 g_signal_connect (individual, "notify::personas",
1022 (GCallback) individual_notify_personas_cb, self);
1023
1024 /* Add pre-existing Personas */
1025 personas = folks_individual_get_personas (individual);
1026 for (l = personas; l != NULL; l = l->next)
1027 add_persona_and_connect (self, FOLKS_PERSONA (l->data));
1028 }
1029
1030 g_object_notify (G_OBJECT (self), "individual");
1031 }
1032
1033 /**
1034 * empathy_persona_store_get_show_avatars:
1035 * @self: an #EmpathyPersonaStore
1036 *
1037 * Get the value of #EmpathyPersonaStore:show-avatars.
1038 *
1039 * Return value: %TRUE if avatars are made available by the store, %FALSE
1040 * otherwise
1041 */
1042 gboolean
1043 empathy_persona_store_get_show_avatars (EmpathyPersonaStore *self)
1044 {
1045 g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), TRUE);
1046
1047 return GET_PRIV (self)->show_avatars;
1048 }
1049
1050 /**
1051 * empathy_persona_store_set_show_avatars:
1052 * @self: an #EmpathyPersonaStore
1053 * @show_avatars: %TRUE to make avatars available through the store, %FALSE
1054 * otherwise
1055 *
1056 * Set #EmpathyPersonaStore:show-avatars to @show_avatars.
1057 */
1058 void
1059 empathy_persona_store_set_show_avatars (EmpathyPersonaStore *self,
1060 gboolean show_avatars)
1061 {
1062 EmpathyPersonaStorePriv *priv;
1063
1064 g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self));
1065
1066 priv = GET_PRIV (self);
1067 priv->show_avatars = show_avatars;
1068
1069 gtk_tree_model_foreach (GTK_TREE_MODEL (self),
1070 (GtkTreeModelForeachFunc) update_list_mode_foreach, self);
1071
1072 g_object_notify (G_OBJECT (self), "show-avatars");
1073 }
1074
1075 /**
1076 * empathy_persona_store_get_show_protocols:
1077 * @self: an #EmpathyPersonaStore
1078 *
1079 * Get the value of #EmpathyPersonaStore:show-protocols.
1080 *
1081 * Return value: %TRUE if protocol images are made available by the store,
1082 * %FALSE otherwise
1083 */
1084 gboolean
1085 empathy_persona_store_get_show_protocols (EmpathyPersonaStore *self)
1086 {
1087 g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), TRUE);
1088
1089 return GET_PRIV (self)->show_protocols;
1090 }
1091
1092 /**
1093 * empathy_persona_store_set_show_protocols:
1094 * @self: an #EmpathyPersonaStore
1095 * @show_protocols: %TRUE to make protocol images available through the store,
1096 * %FALSE otherwise
1097 *
1098 * Set #EmpathyPersonaStore:show-protocols to @show_protocols.
1099 */
1100 void
1101 empathy_persona_store_set_show_protocols (EmpathyPersonaStore *self,
1102 gboolean show_protocols)
1103 {
1104 EmpathyPersonaStorePriv *priv;
1105
1106 g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self));
1107
1108 priv = GET_PRIV (self);
1109 priv->show_protocols = show_protocols;
1110
1111 gtk_tree_model_foreach (GTK_TREE_MODEL (self),
1112 (GtkTreeModelForeachFunc) update_list_mode_foreach, self);
1113
1114 g_object_notify (G_OBJECT (self), "show-protocols");
1115 }
1116
1117 /**
1118 * empathy_persona_store_get_sort_criterion:
1119 * @self: an #EmpathyPersonaStore
1120 *
1121 * Get the value of #EmpathyPersonaStore:sort-criterion.
1122 *
1123 * Return value: the criterion used to sort the personas in the store
1124 */
1125 EmpathyPersonaStoreSort
1126 empathy_persona_store_get_sort_criterion (EmpathyPersonaStore *self)
1127 {
1128 g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), 0);
1129
1130 return GET_PRIV (self)->sort_criterion;
1131 }
1132
1133 /**
1134 * empathy_persona_store_set_sort_criterion:
1135 * @self: an #EmpathyPersonaStore
1136 * @show_avatars: a criterion to be used to sort personas in the store
1137 *
1138 * Set #EmpathyPersonaStore:sort-criterion to @sort_criterion.
1139 */
1140 void
1141 empathy_persona_store_set_sort_criterion (EmpathyPersonaStore *self,
1142 EmpathyPersonaStoreSort sort_criterion)
1143 {
1144 EmpathyPersonaStorePriv *priv;
1145
1146 g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self));
1147
1148 priv = GET_PRIV (self);
1149 priv->sort_criterion = sort_criterion;
1150
1151 switch (sort_criterion)
1152 {
1153 case EMPATHY_PERSONA_STORE_SORT_STATE:
1154 gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self),
1155 EMPATHY_PERSONA_STORE_COL_STATUS, GTK_SORT_ASCENDING);
1156 break;
1157 case EMPATHY_PERSONA_STORE_SORT_NAME:
1158 gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self),
1159 EMPATHY_PERSONA_STORE_COL_NAME, GTK_SORT_ASCENDING);
1160 break;
1161 default:
1162 g_assert_not_reached ();
1163 break;
1164 }
1165
1166 g_object_notify (G_OBJECT (self), "sort-criterion");
1167 }
0 /*
1 * Copyright (C) 2005-2007 Imendio AB
2 * Copyright (C) 2007-2008, 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 *
19 * Authors: Mikael Hallendal <micke@imendio.com>
20 * Martyn Russell <martyn@imendio.com>
21 * Xavier Claessens <xclaesse@gmail.com>
22 * Philip Withnall <philip.withnall@collabora.co.uk>
23 *
24 * Based off EmpathyContactListStore.
25 */
26
27 #ifndef __EMPATHY_PERSONA_STORE_H__
28 #define __EMPATHY_PERSONA_STORE_H__
29
30 #include <gtk/gtk.h>
31
32 #include <folks/folks.h>
33
34 G_BEGIN_DECLS
35
36 #define EMPATHY_TYPE_PERSONA_STORE (empathy_persona_store_get_type ())
37 #define EMPATHY_PERSONA_STORE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
38 EMPATHY_TYPE_PERSONA_STORE, EmpathyPersonaStore))
39 #define EMPATHY_PERSONA_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
40 EMPATHY_TYPE_PERSONA_STORE, EmpathyPersonaStoreClass))
41 #define EMPATHY_IS_PERSONA_STORE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
42 EMPATHY_TYPE_PERSONA_STORE))
43 #define EMPATHY_IS_PERSONA_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
44 EMPATHY_TYPE_PERSONA_STORE))
45 #define EMPATHY_PERSONA_STORE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \
46 EMPATHY_TYPE_PERSONA_STORE, EmpathyPersonaStoreClass))
47
48 typedef enum
49 {
50 EMPATHY_PERSONA_STORE_SORT_STATE,
51 EMPATHY_PERSONA_STORE_SORT_NAME
52 } EmpathyPersonaStoreSort;
53
54 typedef enum
55 {
56 EMPATHY_PERSONA_STORE_COL_ICON_STATUS,
57 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR,
58 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR_VISIBLE,
59 EMPATHY_PERSONA_STORE_COL_NAME,
60 EMPATHY_PERSONA_STORE_COL_DISPLAY_ID,
61 EMPATHY_PERSONA_STORE_COL_PRESENCE_TYPE,
62 EMPATHY_PERSONA_STORE_COL_STATUS,
63 EMPATHY_PERSONA_STORE_COL_PERSONA,
64 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE,
65 EMPATHY_PERSONA_STORE_COL_IS_ONLINE,
66 EMPATHY_PERSONA_STORE_COL_CAN_AUDIO_CALL,
67 EMPATHY_PERSONA_STORE_COL_CAN_VIDEO_CALL,
68 EMPATHY_PERSONA_STORE_COL_COUNT,
69 } EmpathyPersonaStoreCol;
70
71 typedef struct
72 {
73 GtkListStore parent;
74 gpointer priv;
75 } EmpathyPersonaStore;
76
77 typedef struct
78 {
79 GtkListStoreClass parent_class;
80 } EmpathyPersonaStoreClass;
81
82 GType empathy_persona_store_get_type (void) G_GNUC_CONST;
83
84 EmpathyPersonaStore *empathy_persona_store_new (FolksIndividual *individual);
85
86 FolksIndividual *empathy_persona_store_get_individual (
87 EmpathyPersonaStore *self);
88 void empathy_persona_store_set_individual (EmpathyPersonaStore *self,
89 FolksIndividual *individual);
90
91 gboolean empathy_persona_store_get_show_avatars (EmpathyPersonaStore *self);
92 void empathy_persona_store_set_show_avatars (EmpathyPersonaStore *self,
93 gboolean show_avatars);
94
95 gboolean empathy_persona_store_get_show_protocols (EmpathyPersonaStore *self);
96 void empathy_persona_store_set_show_protocols (EmpathyPersonaStore *self,
97 gboolean show_protocols);
98
99 EmpathyPersonaStoreSort empathy_persona_store_get_sort_criterion (
100 EmpathyPersonaStore *self);
101 void empathy_persona_store_set_sort_criterion (EmpathyPersonaStore *self,
102 EmpathyPersonaStoreSort sort_criterion);
103
104 G_END_DECLS
105
106 #endif /* __EMPATHY_PERSONA_STORE_H__ */
0 /*
1 * Copyright (C) 2005-2007 Imendio AB
2 * Copyright (C) 2007-2008, 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 *
19 * Authors: Mikael Hallendal <micke@imendio.com>
20 * Martyn Russell <martyn@imendio.com>
21 * Xavier Claessens <xclaesse@gmail.com>
22 * Philip Withnall <philip.withnall@collabora.co.uk>
23 *
24 * Based off EmpathyContactListView.
25 */
26
27 #include "config.h"
28
29 #include <string.h>
30
31 #include <glib/gi18n-lib.h>
32 #include <gtk/gtk.h>
33
34 #include <telepathy-glib/util.h>
35
36 #include <folks/folks.h>
37 #include <folks/folks-telepathy.h>
38
39 #include <libempathy/empathy-utils.h>
40
41 #include "empathy-persona-view.h"
42 #include "empathy-contact-widget.h"
43 #include "empathy-images.h"
44 #include "empathy-cell-renderer-text.h"
45 #include "empathy-cell-renderer-activatable.h"
46
47 #define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
48 #include <libempathy/empathy-debug.h>
49
50 /**
51 * SECTION:empathy-persona-view
52 * @title: EmpathyPersonaView
53 * @short_description: A tree view which displays personas from an individual
54 * @include: libempathy-gtk/empathy-persona-view.h
55 *
56 * #EmpathyPersonaView is a tree view widget which displays the personas from
57 * a given #EmpathyPersonaStore.
58 *
59 * It supports hiding offline personas and highlighting active personas. Active
60 * personas are those which have recently changed state (e.g. online, offline or
61 * from normal to a busy state).
62 */
63
64 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyPersonaView)
65
66 typedef struct
67 {
68 GtkTreeModelFilter *filter;
69 GtkWidget *tooltip_widget;
70 gboolean show_offline;
71 } EmpathyPersonaViewPriv;
72
73 enum
74 {
75 PROP_0,
76 PROP_MODEL,
77 PROP_SHOW_OFFLINE,
78 };
79
80 G_DEFINE_TYPE (EmpathyPersonaView, empathy_persona_view, GTK_TYPE_TREE_VIEW);
81
82 static gboolean
83 filter_visible_func (GtkTreeModel *model,
84 GtkTreeIter *iter,
85 EmpathyPersonaView *self)
86 {
87 EmpathyPersonaViewPriv *priv = GET_PRIV (self);
88 gboolean is_online;
89
90 gtk_tree_model_get (model, iter,
91 EMPATHY_PERSONA_STORE_COL_IS_ONLINE, &is_online,
92 -1);
93
94 return (priv->show_offline || is_online);
95 }
96
97 static void
98 set_model (EmpathyPersonaView *self,
99 GtkTreeModel *model)
100 {
101 EmpathyPersonaViewPriv *priv = GET_PRIV (self);
102
103 tp_clear_object (&priv->filter);
104
105 priv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model,
106 NULL));
107 gtk_tree_model_filter_set_visible_func (priv->filter,
108 (GtkTreeModelFilterVisibleFunc) filter_visible_func, self, NULL);
109
110 gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (priv->filter));
111 }
112
113 static void
114 tooltip_destroy_cb (GtkWidget *widget,
115 EmpathyPersonaView *self)
116 {
117 EmpathyPersonaViewPriv *priv = GET_PRIV (self);
118
119 if (priv->tooltip_widget)
120 {
121 DEBUG ("Tooltip destroyed");
122 g_object_unref (priv->tooltip_widget);
123 priv->tooltip_widget = NULL;
124 }
125 }
126
127 static gboolean
128 query_tooltip_cb (EmpathyPersonaView *self,
129 gint x,
130 gint y,
131 gboolean keyboard_mode,
132 GtkTooltip *tooltip,
133 gpointer user_data)
134 {
135 EmpathyPersonaViewPriv *priv = GET_PRIV (self);
136 FolksPersona *persona;
137 EmpathyContact *contact;
138 GtkTreeModel *model;
139 GtkTreeIter iter;
140 GtkTreePath *path;
141 static gint running = 0;
142 gboolean ret = FALSE;
143
144 /* Avoid an infinite loop. See GNOME bug #574377 */
145 if (running > 0)
146 return FALSE;
147 running++;
148
149 if (!gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (self), &x, &y,
150 keyboard_mode, &model, &path, &iter))
151 {
152 goto OUT;
153 }
154
155 gtk_tree_view_set_tooltip_row (GTK_TREE_VIEW (self), tooltip, path);
156 gtk_tree_path_free (path);
157
158 gtk_tree_model_get (model, &iter,
159 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona,
160 -1);
161 if (persona == NULL)
162 goto OUT;
163
164 contact = empathy_contact_dup_from_tp_contact (tpf_persona_get_contact (
165 TPF_PERSONA (persona)));
166
167 if (priv->tooltip_widget == NULL)
168 {
169 priv->tooltip_widget = empathy_contact_widget_new (contact,
170 EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP |
171 EMPATHY_CONTACT_WIDGET_SHOW_LOCATION);
172 gtk_container_set_border_width (GTK_CONTAINER (priv->tooltip_widget), 8);
173 g_object_ref (priv->tooltip_widget);
174 g_signal_connect (priv->tooltip_widget, "destroy",
175 (GCallback) tooltip_destroy_cb, self);
176 gtk_widget_show (priv->tooltip_widget);
177 }
178 else
179 {
180 empathy_contact_widget_set_contact (priv->tooltip_widget, contact);
181 }
182
183 gtk_tooltip_set_custom (tooltip, priv->tooltip_widget);
184 ret = TRUE;
185
186 g_object_unref (contact);
187 g_object_unref (persona);
188
189 OUT:
190 running--;
191
192 return ret;
193 }
194
195 static void
196 cell_set_background (EmpathyPersonaView *self,
197 GtkCellRenderer *cell,
198 gboolean is_active)
199 {
200 GdkColor color;
201 GtkStyle *style;
202
203 style = gtk_widget_get_style (GTK_WIDGET (self));
204
205 if (is_active)
206 {
207 color = style->bg[GTK_STATE_SELECTED];
208
209 /* Here we take the current theme colour and add it to
210 * the colour for white and average the two. This
211 * gives a colour which is inline with the theme but
212 * slightly whiter.
213 */
214 color.red = (color.red + (style->white).red) / 2;
215 color.green = (color.green + (style->white).green) / 2;
216 color.blue = (color.blue + (style->white).blue) / 2;
217
218 g_object_set (cell, "cell-background-gdk", &color, NULL);
219 }
220 else
221 {
222 g_object_set (cell, "cell-background-gdk", NULL, NULL);
223 }
224 }
225
226 static void
227 pixbuf_cell_data_func (GtkTreeViewColumn *tree_column,
228 GtkCellRenderer *cell,
229 GtkTreeModel *model,
230 GtkTreeIter *iter,
231 EmpathyPersonaView *self)
232 {
233 GdkPixbuf *pixbuf;
234 gboolean is_active;
235
236 gtk_tree_model_get (model, iter,
237 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE, &is_active,
238 EMPATHY_PERSONA_STORE_COL_ICON_STATUS, &pixbuf,
239 -1);
240
241 g_object_set (cell, "pixbuf", pixbuf, NULL);
242 tp_clear_object (&pixbuf);
243
244 cell_set_background (self, cell, is_active);
245 }
246
247 static void
248 audio_call_cell_data_func (GtkTreeViewColumn *tree_column,
249 GtkCellRenderer *cell,
250 GtkTreeModel *model,
251 GtkTreeIter *iter,
252 EmpathyPersonaView *self)
253 {
254 gboolean is_active;
255 gboolean can_audio, can_video;
256
257 gtk_tree_model_get (model, iter,
258 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE, &is_active,
259 EMPATHY_PERSONA_STORE_COL_CAN_AUDIO_CALL, &can_audio,
260 EMPATHY_PERSONA_STORE_COL_CAN_VIDEO_CALL, &can_video,
261 -1);
262
263 g_object_set (cell,
264 "visible", (can_audio || can_video),
265 "icon-name", can_video? EMPATHY_IMAGE_VIDEO_CALL : EMPATHY_IMAGE_VOIP,
266 NULL);
267
268 cell_set_background (self, cell, is_active);
269 }
270
271 static void
272 avatar_cell_data_func (GtkTreeViewColumn *tree_column,
273 GtkCellRenderer *cell,
274 GtkTreeModel *model,
275 GtkTreeIter *iter,
276 EmpathyPersonaView *self)
277 {
278 GdkPixbuf *pixbuf;
279 gboolean show_avatar, is_active;
280
281 gtk_tree_model_get (model, iter,
282 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR, &pixbuf,
283 EMPATHY_PERSONA_STORE_COL_PIXBUF_AVATAR_VISIBLE, &show_avatar,
284 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE, &is_active,
285 -1);
286
287 g_object_set (cell,
288 "visible", show_avatar,
289 "pixbuf", pixbuf,
290 NULL);
291
292 tp_clear_object (&pixbuf);
293
294 cell_set_background (self, cell, is_active);
295 }
296
297 static void
298 text_cell_data_func (GtkTreeViewColumn *tree_column,
299 GtkCellRenderer *cell,
300 GtkTreeModel *model,
301 GtkTreeIter *iter,
302 EmpathyPersonaView *self)
303 {
304 gboolean is_active;
305
306 gtk_tree_model_get (model, iter,
307 EMPATHY_PERSONA_STORE_COL_IS_ACTIVE, &is_active,
308 -1);
309
310 cell_set_background (self, cell, is_active);
311 }
312
313 static void
314 empathy_persona_view_init (EmpathyPersonaView *self)
315 {
316 EmpathyPersonaViewPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
317 EMPATHY_TYPE_PERSONA_VIEW, EmpathyPersonaViewPriv);
318
319 self->priv = priv;
320
321 /* Connect to tree view signals rather than override. */
322 g_signal_connect (self, "query-tooltip", (GCallback) query_tooltip_cb, NULL);
323 }
324
325 static void
326 constructed (GObject *object)
327 {
328 EmpathyPersonaView *self = EMPATHY_PERSONA_VIEW (object);
329 GtkCellRenderer *cell;
330 GtkTreeViewColumn *col;
331
332 /* Set up view */
333 g_object_set (self,
334 "headers-visible", FALSE,
335 "show-expanders", FALSE,
336 NULL);
337
338 col = gtk_tree_view_column_new ();
339
340 /* State */
341 cell = gtk_cell_renderer_pixbuf_new ();
342 gtk_tree_view_column_pack_start (col, cell, FALSE);
343 gtk_tree_view_column_set_cell_data_func (col, cell,
344 (GtkTreeCellDataFunc) pixbuf_cell_data_func, self, NULL);
345
346 g_object_set (cell,
347 "xpad", 5,
348 "ypad", 1,
349 "visible", TRUE,
350 NULL);
351
352 /* Name */
353 cell = empathy_cell_renderer_text_new ();
354 gtk_tree_view_column_pack_start (col, cell, TRUE);
355 gtk_tree_view_column_set_cell_data_func (col, cell,
356 (GtkTreeCellDataFunc) text_cell_data_func, self, NULL);
357
358 gtk_tree_view_column_add_attribute (col, cell,
359 "name", EMPATHY_PERSONA_STORE_COL_DISPLAY_ID);
360 gtk_tree_view_column_add_attribute (col, cell,
361 "text", EMPATHY_PERSONA_STORE_COL_DISPLAY_ID);
362 gtk_tree_view_column_add_attribute (col, cell,
363 "presence-type", EMPATHY_PERSONA_STORE_COL_PRESENCE_TYPE);
364 gtk_tree_view_column_add_attribute (col, cell,
365 "status", EMPATHY_PERSONA_STORE_COL_STATUS);
366
367 /* Audio Call Icon */
368 cell = empathy_cell_renderer_activatable_new ();
369 gtk_tree_view_column_pack_start (col, cell, FALSE);
370 gtk_tree_view_column_set_cell_data_func (col, cell,
371 (GtkTreeCellDataFunc) audio_call_cell_data_func, self, NULL);
372
373 g_object_set (cell,
374 "visible", FALSE,
375 NULL);
376
377 /* Avatar */
378 cell = gtk_cell_renderer_pixbuf_new ();
379 gtk_tree_view_column_pack_start (col, cell, FALSE);
380 gtk_tree_view_column_set_cell_data_func (col, cell,
381 (GtkTreeCellDataFunc) avatar_cell_data_func, self, NULL);
382
383 g_object_set (cell,
384 "xpad", 0,
385 "ypad", 0,
386 "visible", FALSE,
387 "width", 32,
388 "height", 32,
389 NULL);
390
391 /* Actually add the column now we have added all cell renderers */
392 gtk_tree_view_append_column (GTK_TREE_VIEW (self), col);
393 }
394
395 static void
396 get_property (GObject *object,
397 guint param_id,
398 GValue *value,
399 GParamSpec *pspec)
400 {
401 EmpathyPersonaViewPriv *priv = GET_PRIV (object);
402
403 switch (param_id)
404 {
405 case PROP_MODEL:
406 g_value_set_object (value, priv->filter);
407 break;
408 case PROP_SHOW_OFFLINE:
409 g_value_set_boolean (value, priv->show_offline);
410 break;
411 default:
412 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
413 break;
414 }
415 }
416
417 static void
418 set_property (GObject *object,
419 guint param_id,
420 const GValue *value,
421 GParamSpec *pspec)
422 {
423 EmpathyPersonaView *self = EMPATHY_PERSONA_VIEW (object);
424
425 switch (param_id)
426 {
427 case PROP_MODEL:
428 set_model (self, g_value_get_object (value));
429 break;
430 case PROP_SHOW_OFFLINE:
431 empathy_persona_view_set_show_offline (self,
432 g_value_get_boolean (value));
433 break;
434 default:
435 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
436 break;
437 }
438 }
439
440 static void
441 dispose (GObject *object)
442 {
443 EmpathyPersonaView *self = EMPATHY_PERSONA_VIEW (object);
444 EmpathyPersonaViewPriv *priv = GET_PRIV (self);
445
446 tp_clear_object (&priv->filter);
447
448 if (priv->tooltip_widget)
449 gtk_widget_destroy (priv->tooltip_widget);
450 priv->tooltip_widget = NULL;
451
452 G_OBJECT_CLASS (empathy_persona_view_parent_class)->dispose (object);
453 }
454
455 static void
456 empathy_persona_view_class_init (EmpathyPersonaViewClass *klass)
457 {
458 GObjectClass *object_class = G_OBJECT_CLASS (klass);
459
460 object_class->constructed = constructed;
461 object_class->dispose = dispose;
462 object_class->get_property = get_property;
463 object_class->set_property = set_property;
464
465 /* We override the "model" property so that we can wrap it in a
466 * GtkTreeModelFilter for showing/hiding offline personas. */
467 g_object_class_override_property (object_class, PROP_MODEL, "model");
468
469 /**
470 * EmpathyPersonaStore:show-offline:
471 *
472 * Whether to display offline personas.
473 */
474 g_object_class_install_property (object_class, PROP_SHOW_OFFLINE,
475 g_param_spec_boolean ("show-offline",
476 "Show Offline",
477 "Whether to display offline personas.",
478 FALSE,
479 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
480
481 g_type_class_add_private (object_class, sizeof (EmpathyPersonaViewPriv));
482 }
483
484 /**
485 * empathy_persona_view_new:
486 * @store: an #EmpathyPersonaStore
487 *
488 * Create a new #EmpathyPersonaView displaying the personas in
489 * #EmpathyPersonaStore.
490 *
491 * Return value: a new #EmpathyPersonaView
492 */
493 EmpathyPersonaView *
494 empathy_persona_view_new (EmpathyPersonaStore *store)
495 {
496 g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (store), NULL);
497
498 return g_object_new (EMPATHY_TYPE_PERSONA_VIEW, "model", store, NULL);
499 }
500
501 /**
502 * empathy_persona_view_dup_selected:
503 * @self: an #EmpathyPersonaView
504 *
505 * Return the #FolksPersona associated with the currently selected row. The
506 * persona is referenced before being returned. If no row is selected, %NULL is
507 * returned.
508 *
509 * Return value: the currently selected #FolksPersona, or %NULL; unref with
510 * g_object_unref()
511 */
512 FolksPersona *
513 empathy_persona_view_dup_selected (EmpathyPersonaView *self)
514 {
515 EmpathyPersonaViewPriv *priv;
516 GtkTreeSelection *selection;
517 GtkTreeIter iter;
518 GtkTreeModel *model;
519 FolksPersona *persona;
520
521 g_return_val_if_fail (EMPATHY_IS_PERSONA_VIEW (self), NULL);
522
523 priv = GET_PRIV (self);
524
525 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self));
526 if (!gtk_tree_selection_get_selected (selection, &model, &iter))
527 return NULL;
528
529 gtk_tree_model_get (model, &iter,
530 EMPATHY_PERSONA_STORE_COL_PERSONA, &persona,
531 -1);
532
533 return persona;
534 }
535
536 /**
537 * empathy_persona_view_get_show_offline:
538 * @self: an #EmpathyPersonaView
539 *
540 * Get the value of the #EmpathyPersonaView:show-offline property.
541 *
542 * Return value: %TRUE if offline personas are being shown, %FALSE otherwise
543 */
544 gboolean
545 empathy_persona_view_get_show_offline (EmpathyPersonaView *self)
546 {
547 g_return_val_if_fail (EMPATHY_IS_PERSONA_VIEW (self), FALSE);
548
549 return GET_PRIV (self)->show_offline;
550 }
551
552 /**
553 * empathy_persona_view_set_show_offline:
554 * @self: an #EmpathyPersonaView
555 * @show_offline: %TRUE to show personas which are offline, %FALSE otherwise
556 *
557 * Set the #EmpathyPersonaView:show-offline property to @show_offline.
558 */
559 void
560 empathy_persona_view_set_show_offline (EmpathyPersonaView *self,
561 gboolean show_offline)
562 {
563 EmpathyPersonaViewPriv *priv;
564
565 g_return_if_fail (EMPATHY_IS_PERSONA_VIEW (self));
566
567 priv = GET_PRIV (self);
568 priv->show_offline = show_offline;
569
570 gtk_tree_model_filter_refilter (priv->filter);
571
572 g_object_notify (G_OBJECT (self), "show-offline");
573 }
0 /*
1 * Copyright (C) 2005-2007 Imendio AB
2 * Copyright (C) 2007-2008, 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 *
19 * Authors: Mikael Hallendal <micke@imendio.com>
20 * Martyn Russell <martyn@imendio.com>
21 * Xavier Claessens <xclaesse@gmail.com>
22 * Philip Withnall <philip.withnall@collabora.co.uk>
23 *
24 * Based off EmpathyContactListView.
25 */
26
27 #ifndef __EMPATHY_PERSONA_VIEW_H__
28 #define __EMPATHY_PERSONA_VIEW_H__
29
30 #include <gtk/gtk.h>
31
32 #include <folks/folks.h>
33
34 #include "empathy-persona-store.h"
35
36 G_BEGIN_DECLS
37
38 #define EMPATHY_TYPE_PERSONA_VIEW (empathy_persona_view_get_type ())
39 #define EMPATHY_PERSONA_VIEW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
40 EMPATHY_TYPE_PERSONA_VIEW, EmpathyPersonaView))
41 #define EMPATHY_PERSONA_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
42 EMPATHY_TYPE_PERSONA_VIEW, EmpathyPersonaViewClass))
43 #define EMPATHY_IS_PERSONA_VIEW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
44 EMPATHY_TYPE_PERSONA_VIEW))
45 #define EMPATHY_IS_PERSONA_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \
46 EMPATHY_TYPE_PERSONA_VIEW))
47 #define EMPATHY_PERSONA_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \
48 EMPATHY_TYPE_PERSONA_VIEW, EmpathyPersonaViewClass))
49
50 typedef struct
51 {
52 GtkTreeView parent;
53 gpointer priv;
54 } EmpathyPersonaView;
55
56 typedef struct
57 {
58 GtkTreeViewClass parent_class;
59 } EmpathyPersonaViewClass;
60
61 GType empathy_persona_view_get_type (void) G_GNUC_CONST;
62
63 EmpathyPersonaView *empathy_persona_view_new (EmpathyPersonaStore *store);
64
65 FolksPersona *empathy_persona_view_dup_selected (EmpathyPersonaView *self);
66
67 gboolean empathy_persona_view_get_show_offline (EmpathyPersonaView *self);
68 void empathy_persona_view_set_show_offline (EmpathyPersonaView *self,
69 gboolean show_offline);
70
71 G_END_DECLS
72
73 #endif /* __EMPATHY_PERSONA_VIEW_H__ */
2020 #include <gtk/gtk.h>
2121
2222 #include <dbus/dbus-glib.h>
23 #include <telepathy-glib/account-channel-request.h>
2324 #include <telepathy-glib/util.h>
2425 #include <telepathy-glib/contact.h>
2526 #include <telepathy-glib/channel.h>
3233
3334 #include "empathy-share-my-desktop.h"
3435
36 static void
37 create_tube_channel_cb (GObject *source,
38 GAsyncResult *result,
39 gpointer user_data)
40 {
41 GError *error = NULL;
42
43 if (!tp_account_channel_request_create_channel_finish (
44 TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error))
45 {
46 DEBUG ("Failed to create tube channel: %s", error->message);
47 g_error_free (error);
48 }
49 }
50
3551 void
3652 empathy_share_my_desktop_share_with_contact (EmpathyContact *contact)
3753 {
38 EmpathyDispatcher *dispatcher;
54 TpAccountChannelRequest *req;
3955 GHashTable *request;
4056 TpContact *tp_contact;
4157
4965 return;
5066 }
5167
52 dispatcher = empathy_dispatcher_dup_singleton ();
53
5468 request = tp_asv_new (
5569 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
5670 TP_IFACE_CHANNEL_TYPE_STREAM_TUBE,
6175 TP_PROP_CHANNEL_TYPE_STREAM_TUBE_SERVICE, G_TYPE_STRING, "rfb",
6276 NULL);
6377
64 empathy_dispatcher_create_channel (dispatcher,
65 tp_contact_get_connection (tp_contact), request,
66 EMPATHY_DISPATCHER_CURRENT_TIME,
67 NULL, NULL);
78 req = tp_account_channel_request_new (empathy_contact_get_account (contact),
79 request, TP_USER_ACTION_TIME_CURRENT_TIME);
6880
69 g_object_unref (dispatcher);
81 tp_account_channel_request_create_channel_async (req, NULL, NULL,
82 create_tube_channel_cb, NULL);
83
84 g_object_unref (req);
85 g_hash_table_unref (request);
7086 }
128128 }
129129
130130 void
131 empathy_builder_connect (GtkBuilder *gui,
132 gpointer user_data,
133 gchar *first_object,
131 empathy_builder_connect (GtkBuilder *gui,
132 gpointer user_data,
133 const gchar *first_object,
134134 ...)
135135 {
136136 va_list args;
205205 case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
206206 return EMPATHY_IMAGE_PENDING;
207207 case TP_CONNECTION_PRESENCE_TYPE_UNSET:
208 default:
208209 return NULL;
209210 }
210211
6060 ...);
6161 void empathy_builder_connect (GtkBuilder *gui,
6262 gpointer user_data,
63 gchar *first_object,
63 const gchar *first_object,
6464 ...);
6565 GtkWidget *empathy_builder_unref_and_keep_widget (GtkBuilder *gui,
6666 GtkWidget *root);
2828 G_DEFINE_TYPE(EmpathyGstVideoSrc, empathy_video_src, GST_TYPE_BIN)
2929
3030 /* Keep in sync with EmpathyGstVideoSrcChannel */
31 static gchar *channel_names[NR_EMPATHY_GST_VIDEO_SRC_CHANNELS] = { "contrast",
32 "brightness", "gamma" };
31 static const gchar *channel_names[NR_EMPATHY_GST_VIDEO_SRC_CHANNELS] = {
32 "contrast", "brightness", "gamma" };
3333
3434 /* signal enum */
3535 #if 0
146146 {
147147 int index;
148148 gboolean valid;
149 char *charset;
150 char *name;
149 const char *charset;
150 const char *name;
151151 } SubtitleEncoding;
152152
153153
482482 subtitle_encoding_create_store (void)
483483 {
484484 gchar *label;
485 gchar *lastlang = "";
485 const gchar *lastlang = "";
486486 GtkTreeIter iter, iter2;
487487 GtkTreeStore *store;
488488 int i;
171171 AC_DEFUN([IT_PO_SUBDIR],
172172 [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
173173 dnl
174 dnl The following CONFIG_COMMANDS should be exetuted at the very end
174 dnl The following CONFIG_COMMANDS should be executed at the very end
175175 dnl of config.status.
176176 AC_CONFIG_COMMANDS_PRE([
177177 AC_CONFIG_COMMANDS([$1/stamp-it], [
0 2010-08-03 Funda Wang <fundawang@gmail.com>
1
2 * zh_CN.po: Updated zh_CN translation.
3
04 2009-11-27 Adi Roiban <adi@roiban.ro>
15
26 * ro.po: Updated Romanian translation
3737 libempathy-gtk/empathy-contact-widget.c
3838 [type: gettext/glade]libempathy-gtk/empathy-contact-widget.ui
3939 libempathy-gtk/empathy-individual-dialogs.c
40 libempathy-gtk/empathy-individual-linker.c
4041 libempathy-gtk/empathy-individual-menu.c
4142 libempathy-gtk/empathy-individual-view.c
4243 libempathy-gtk/empathy-irc-network-dialog.c
44 libempathy-gtk/empathy-linking-dialog.c
4345 libempathy-gtk/empathy-log-window.c
4446 [type: gettext/glade]libempathy-gtk/empathy-log-window.ui
4547 [type: gettext/glade]libempathy-gtk/empathy-contact-selector-dialog.ui
+394
-252
po/es.po less more
77 "Project-Id-Version: empathy.master\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
99 "product=empathy&component=general\n"
10 "POT-Creation-Date: 2010-07-26 16:00+0000\n"
11 "PO-Revision-Date: 2010-07-26 20:57+0200\n"
10 "POT-Creation-Date: 2010-08-17 11:24+0000\n"
11 "PO-Revision-Date: 2010-08-17 17:36+0200\n"
1212 "Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
1313 "Language-Team: Español <gnome-es-list@gnome.org>\n"
1414 "MIME-Version: 1.0\n"
493493 msgid "Messaging and VoIP Accounts"
494494 msgstr "Cuentas de mensajería y Voz IP"
495495
496 #: ../libempathy/empathy-ft-handler.c:843
496 #: ../libempathy/empathy-ft-handler.c:851
497497 msgid "The hash of the received file and the sent one do not match"
498498 msgstr "El «hash» del archivo recibido y del enviado no coinciden"
499499
500 #: ../libempathy/empathy-ft-handler.c:1103
500 #: ../libempathy/empathy-ft-handler.c:1111
501501 msgid "File transfer not supported by remote contact"
502502 msgstr "El contacto remoto no soporta la transferencia de archivos"
503503
504 #: ../libempathy/empathy-ft-handler.c:1161
504 #: ../libempathy/empathy-ft-handler.c:1169
505505 msgid "The selected file is not a regular file"
506506 msgstr "El archivo seleccionado no es un archivo regular"
507507
508 #: ../libempathy/empathy-ft-handler.c:1170
508 #: ../libempathy/empathy-ft-handler.c:1178
509509 msgid "The selected file is empty"
510510 msgstr "El archivo seleccionado está vacío"
511511
512 #: ../libempathy/empathy-tp-file.c:281
512 #: ../libempathy/empathy-tp-file.c:283
513513 msgid "Socket type not supported"
514514 msgstr "El tipo de socket no está soportado"
515515
516 #: ../libempathy/empathy-tp-file.c:400
516 #: ../libempathy/empathy-tp-file.c:402
517517 msgid "No reason was specified"
518518 msgstr "No se especificó ninguna razón"
519519
520 #: ../libempathy/empathy-tp-file.c:403
520 #: ../libempathy/empathy-tp-file.c:405
521521 msgid "The change in state was requested"
522522 msgstr "Se requirió un cambio en el estado"
523523
524 #: ../libempathy/empathy-tp-file.c:406
524 #: ../libempathy/empathy-tp-file.c:408
525525 msgid "You canceled the file transfer"
526526 msgstr "Canceló la transferencia del archivo"
527527
528 #: ../libempathy/empathy-tp-file.c:409
528 #: ../libempathy/empathy-tp-file.c:411
529529 msgid "The other participant canceled the file transfer"
530530 msgstr "El otro participante canceló la transferencia del archivo"
531531
532 #: ../libempathy/empathy-tp-file.c:412
532 #: ../libempathy/empathy-tp-file.c:414
533533 msgid "Error while trying to transfer the file"
534534 msgstr "Error la intentar transferir el archivo"
535535
536 #: ../libempathy/empathy-tp-file.c:415
536 #: ../libempathy/empathy-tp-file.c:417
537537 msgid "The other participant is unable to transfer the file"
538538 msgstr "El otro participante no puede transferir el archivo"
539539
540 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:320
540 #: ../libempathy/empathy-tp-file.c:420 ../libempathy/empathy-utils.c:320
541541 msgid "Unknown reason"
542542 msgstr "Razón desconocida"
543543
544 #: ../libempathy/empathy-utils.c:243
544 #: ../libempathy/empathy-utils.c:242
545545 msgid "Available"
546546 msgstr "Disponible"
547547
548 #: ../libempathy/empathy-utils.c:245
548 #: ../libempathy/empathy-utils.c:244
549549 msgid "Busy"
550550 msgstr "Ocupado"
551551
552 #: ../libempathy/empathy-utils.c:248
552 #: ../libempathy/empathy-utils.c:247
553553 msgid "Away"
554554 msgstr "Ausente"
555555
556 #: ../libempathy/empathy-utils.c:250
556 #: ../libempathy/empathy-utils.c:249
557557 msgid "Invisible"
558558 msgstr "Invisible"
559559
560 #: ../libempathy/empathy-utils.c:252
560 #: ../libempathy/empathy-utils.c:251
561561 msgid "Offline"
562562 msgstr "Desconectado"
563563
564 #: ../libempathy/empathy-utils.c:254 ../src/empathy-call-window.c:1763
565 #: ../src/empathy-call-window.c:1764 ../src/empathy-call-window.c:1765
566 #: ../src/empathy-call-window.c:1766 ../src/empathy-call-window.ui.h:16
564 #: ../libempathy/empathy-utils.c:253 ../src/empathy-call-window.c:1883
565 #: ../src/empathy-call-window.c:1884 ../src/empathy-call-window.c:1885
566 #: ../src/empathy-call-window.c:1886 ../src/empathy-call-window.ui.h:18
567567 msgid "Unknown"
568568 msgstr "Desconocido"
569569
571571 msgid "No reason specified"
572572 msgstr "No se especificó ninguna razón"
573573
574 #: ../libempathy/empathy-utils.c:294
574 #: ../libempathy/empathy-utils.c:294 ../libempathy/empathy-utils.c:350
575575 msgid "Status is set to offline"
576576 msgstr "El estado se ha establecido a desconectado"
577577
578 #: ../libempathy/empathy-utils.c:296
578 #: ../libempathy/empathy-utils.c:296 ../libempathy/empathy-utils.c:330
579579 msgid "Network error"
580580 msgstr "Error de red"
581581
582 #: ../libempathy/empathy-utils.c:298
582 #: ../libempathy/empathy-utils.c:298 ../libempathy/empathy-utils.c:332
583583 msgid "Authentication failed"
584584 msgstr "Falló la autenticación"
585585
586 #: ../libempathy/empathy-utils.c:300
586 #: ../libempathy/empathy-utils.c:300 ../libempathy/empathy-utils.c:334
587587 msgid "Encryption error"
588588 msgstr "Error de cifrado"
589589
591591 msgid "Name in use"
592592 msgstr "Nombre en uso"
593593
594 #: ../libempathy/empathy-utils.c:304
594 #: ../libempathy/empathy-utils.c:304 ../libempathy/empathy-utils.c:336
595595 msgid "Certificate not provided"
596596 msgstr "No se proporcionó el certificado"
597597
598 #: ../libempathy/empathy-utils.c:306
598 #: ../libempathy/empathy-utils.c:306 ../libempathy/empathy-utils.c:338
599599 msgid "Certificate untrusted"
600600 msgstr "Certificado sin confianza"
601601
602 #: ../libempathy/empathy-utils.c:308
602 #: ../libempathy/empathy-utils.c:308 ../libempathy/empathy-utils.c:340
603603 msgid "Certificate expired"
604604 msgstr "El certificado ha expirado"
605605
606 #: ../libempathy/empathy-utils.c:310
606 #: ../libempathy/empathy-utils.c:310 ../libempathy/empathy-utils.c:342
607607 msgid "Certificate not activated"
608608 msgstr "El certificado no está activado"
609609
610 #: ../libempathy/empathy-utils.c:312
610 #: ../libempathy/empathy-utils.c:312 ../libempathy/empathy-utils.c:344
611611 msgid "Certificate hostname mismatch"
612612 msgstr "El nombre del equipo del certificado no coincide"
613613
614 #: ../libempathy/empathy-utils.c:314
614 #: ../libempathy/empathy-utils.c:314 ../libempathy/empathy-utils.c:346
615615 msgid "Certificate fingerprint mismatch"
616616 msgstr "La huella del certificado no coincide"
617617
618 #: ../libempathy/empathy-utils.c:316
618 #: ../libempathy/empathy-utils.c:316 ../libempathy/empathy-utils.c:348
619619 msgid "Certificate self-signed"
620620 msgstr "Certificado firmado consigo mismo"
621621
623623 msgid "Certificate error"
624624 msgstr "Error del certificado"
625625
626 #: ../libempathy/empathy-utils.c:435
626 #: ../libempathy/empathy-utils.c:352
627 msgid "Encryption is not available"
628 msgstr "El cifrado no está disponible"
629
630 #: ../libempathy/empathy-utils.c:354
631 msgid "Certificate is invalid"
632 msgstr "El certificado no es válido"
633
634 #: ../libempathy/empathy-utils.c:356
635 msgid "Connection has been refused"
636 msgstr "Se rechazó la conexión"
637
638 #: ../libempathy/empathy-utils.c:358
639 msgid "Connection can't be established"
640 msgstr "No se pudo establecer la conexión"
641
642 #: ../libempathy/empathy-utils.c:360
643 msgid "Connection has been lost"
644 msgstr "Se perdió la conexión"
645
646 #: ../libempathy/empathy-utils.c:362
647 msgid "This resource is already connected to the server"
648 msgstr "El recurso ya está conectado al servidor"
649
650 #: ../libempathy/empathy-utils.c:364
651 msgid ""
652 "Connection has been replaced by a new connection using the same resource"
653 msgstr ""
654 "Se ha reemplazado la conexión por una conexión nueva usando el mismo recurso"
655
656 #: ../libempathy/empathy-utils.c:367
657 msgid "The account already exists on the server"
658 msgstr "La cuenta ya existe en el servidor"
659
660 #: ../libempathy/empathy-utils.c:369
661 msgid "Server is currently too busy to handle the connection"
662 msgstr ""
663 "Actualmente el servidor está demasiado ocupado para gestionar la conexión"
664
665 #: ../libempathy/empathy-utils.c:371
666 msgid "Certificate has been revoked"
667 msgstr "Se revocó el certificado"
668
669 #: ../libempathy/empathy-utils.c:373
670 msgid ""
671 "Certificate uses an insecure cipher algorithm or is cryptographically weak"
672 msgstr ""
673 "El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
674 "débil"
675
676 #: ../libempathy/empathy-utils.c:376
677 msgid ""
678 "The length of the server certificate, or the depth of the server certificate "
679 "chain exceed the limits imposed by the crypto library"
680 msgstr ""
681 "La longitud del servidor de certificados o la profundidad de la cadena del "
682 "servidor de certificados exceden los límites impuestos por la biblioteca "
683 "crypto"
684
685 #: ../libempathy/empathy-utils.c:529
627686 msgid "People Nearby"
628687 msgstr "Gente cerca"
629688
630 #: ../libempathy/empathy-utils.c:440
689 #: ../libempathy/empathy-utils.c:534
631690 msgid "Yahoo! Japan"
632691 msgstr "Yahoo Japón"
633692
634 #: ../libempathy/empathy-utils.c:441
693 #: ../libempathy/empathy-utils.c:535
635694 msgid "Facebook Chat"
636695 msgstr "Chat de Facebook"
637696
686745 msgstr "Todo"
687746
688747 #: ../libempathy-gtk/empathy-account-widget.c:549
689 #: ../libempathy-gtk/empathy-account-widget.c:605
748 #: ../libempathy-gtk/empathy-account-widget.c:606
690749 #, c-format
691750 msgid "%s:"
692751 msgstr "%s:"
693752
694 #: ../libempathy-gtk/empathy-account-widget.c:1136
753 #: ../libempathy-gtk/empathy-account-widget.c:1137
695754 msgid "Username:"
696755 msgstr "Nombre de usuario:"
697756
698 #: ../libempathy-gtk/empathy-account-widget.c:1479
757 #: ../libempathy-gtk/empathy-account-widget.c:1480
699758 msgid "L_og in"
700759 msgstr "Iniciar _sesión"
701760
702 #: ../libempathy-gtk/empathy-account-widget.c:1547
761 #: ../libempathy-gtk/empathy-account-widget.c:1548
703762 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
704763 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
705764 #: ../src/empathy-chatrooms-window.ui.h:1
707766 msgid "Account:"
708767 msgstr "Cuenta:"
709768
710 #: ../libempathy-gtk/empathy-account-widget.c:1558
769 #: ../libempathy-gtk/empathy-account-widget.c:1559
711770 msgid "Enabled"
712771 msgstr "Activada"
713772
714 #: ../libempathy-gtk/empathy-account-widget.c:1623
773 #: ../libempathy-gtk/empathy-account-widget.c:1624
715774 msgid "This account already exists on the server"
716775 msgstr "Esta cuenta ya existe en el servidor"
717776
718 #: ../libempathy-gtk/empathy-account-widget.c:1626
777 #: ../libempathy-gtk/empathy-account-widget.c:1627
719778 msgid "Create a new account on the server"
720779 msgstr "Crear una cuenta nueva en el servidor"
721780
724783 #. * like: "MyUserName on chat.freenode.net".
725784 #. * You should reverse the order of these arguments if the
726785 #. * server should come before the login id in your locale.
727 #: ../libempathy-gtk/empathy-account-widget.c:1995
786 #: ../libempathy-gtk/empathy-account-widget.c:1996
728787 #, c-format
729788 msgid "%1$s on %2$s"
730789 msgstr "%1$s en %2$s"
731790
732791 #. To translators: The parameter is the protocol name. The resulting
733792 #. * string will be something like: "Jabber Account"
734 #: ../libempathy-gtk/empathy-account-widget.c:2021
793 #: ../libempathy-gtk/empathy-account-widget.c:2022
735794 #, c-format
736795 msgid "%s Account"
737796 msgstr "Cuenta %s"
738797
739 #: ../libempathy-gtk/empathy-account-widget.c:2025
798 #: ../libempathy-gtk/empathy-account-widget.c:2026
740799 msgid "New account"
741800 msgstr "Cuenta nueva"
742801
837896 msgid "_Character set:"
838897 msgstr "Conjunto de _caracteres:"
839898
840 #: ../libempathy-gtk/empathy-account-widget-irc.c:245
899 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
841900 msgid "New Network"
842901 msgstr "Red nueva"
843902
11401199 msgid "All Files"
11411200 msgstr "Todos los archivos"
11421201
1143 #: ../libempathy-gtk/empathy-avatar-image.c:325
1202 #: ../libempathy-gtk/empathy-avatar-image.c:323
11441203 msgid "Click to enlarge"
11451204 msgstr "Pulse para agrandar"
11461205
1147 #: ../libempathy-gtk/empathy-chat.c:645
1206 #: ../libempathy-gtk/empathy-chat.c:639
11481207 msgid "Failed to open private chat"
11491208 msgstr "Falló al abrir el chat privado"
11501209
1151 #: ../libempathy-gtk/empathy-chat.c:685
1210 #: ../libempathy-gtk/empathy-chat.c:679
11521211 msgid "Topic not supported on this conversation"
11531212 msgstr "El tema no está soportado en esta conversación"
11541213
1155 #: ../libempathy-gtk/empathy-chat.c:691
1214 #: ../libempathy-gtk/empathy-chat.c:685
11561215 msgid "You are not allowed to change the topic"
11571216 msgstr "No le está permitido cambiar el tema"
11581217
1159 #: ../libempathy-gtk/empathy-chat.c:825
1218 #: ../libempathy-gtk/empathy-chat.c:819
11601219 msgid "/clear: clear all messages from the current conversation"
11611220 msgstr "/clear: limpiar todos los mensajes de la conversación actual"
11621221
1163 #: ../libempathy-gtk/empathy-chat.c:828
1222 #: ../libempathy-gtk/empathy-chat.c:822
11641223 msgid "/topic <topic>: set the topic of the current conversation"
11651224 msgstr "/topic <tema>: establecer el tema para la conversación actual"
11661225
1167 #: ../libempathy-gtk/empathy-chat.c:831
1226 #: ../libempathy-gtk/empathy-chat.c:825
11681227 msgid "/join <chat room ID>: join a new chat room"
11691228 msgstr "/join <id de sala de chat>: unirse a una sala de chat nueva"
11701229
1171 #: ../libempathy-gtk/empathy-chat.c:834
1230 #: ../libempathy-gtk/empathy-chat.c:828
11721231 msgid "/j <chat room ID>: join a new chat room"
11731232 msgstr "/j <id de sala de chat>: unirse a una sala de chat nueva"
11741233
1175 #: ../libempathy-gtk/empathy-chat.c:839
1234 #: ../libempathy-gtk/empathy-chat.c:833
11761235 msgid "/query <contact ID> [<message>]: open a private chat"
11771236 msgstr "/query <id del contacto> [<mensaje>]: abrir un chat privado"
11781237
1179 #: ../libempathy-gtk/empathy-chat.c:842
1238 #: ../libempathy-gtk/empathy-chat.c:836
11801239 msgid "/msg <contact ID> <message>: open a private chat"
11811240 msgstr "/msg <id del contacto> <mensaje>: abrir un chat privado"
11821241
1183 #: ../libempathy-gtk/empathy-chat.c:846
1242 #: ../libempathy-gtk/empathy-chat.c:840
11841243 msgid "/nick <nickname>: change your nickname on the current server"
11851244 msgstr "/nick <apodo>: cambiar su apodo en el servidor actual"
11861245
1187 #: ../libempathy-gtk/empathy-chat.c:849
1246 #: ../libempathy-gtk/empathy-chat.c:843
11881247 msgid "/me <message>: send an ACTION message to the current conversation"
11891248 msgstr "/me <mensaje>: enviar un mensaje de ACCIÓN a la conversación actual"
11901249
1191 #: ../libempathy-gtk/empathy-chat.c:852
1250 #: ../libempathy-gtk/empathy-chat.c:846
11921251 msgid ""
11931252 "/say <message>: send <message> to the current conversation. This is used to "
11941253 "send a message starting with a '/'. For example: \"/say /join is used to "
11981257 "para enviar un mensaje comenzando por una «/». Por ejemplo: «/say /join se usa "
11991258 "para unirse a una sala de chat nueva»"
12001259
1201 #: ../libempathy-gtk/empathy-chat.c:857
1260 #: ../libempathy-gtk/empathy-chat.c:851
12021261 msgid ""
12031262 "/help [<command>]: show all supported commands. If <command> is defined, "
12041263 "show its usage."
12061265 "/help [<comando>]: mostrar todos los comandos soportados. Si <comando> está "
12071266 "definido, muestra su uso."
12081267
1209 #: ../libempathy-gtk/empathy-chat.c:867
1268 #: ../libempathy-gtk/empathy-chat.c:861
12101269 #, c-format
12111270 msgid "Usage: %s"
12121271 msgstr "Uso: %s"
12131272
1214 #: ../libempathy-gtk/empathy-chat.c:896
1273 #: ../libempathy-gtk/empathy-chat.c:890
12151274 msgid "Unknown command"
12161275 msgstr "Comando desconocido"
12171276
1218 #: ../libempathy-gtk/empathy-chat.c:1017
1277 #: ../libempathy-gtk/empathy-chat.c:1011
12191278 msgid "Unknown command; see /help for the available commands"
12201279 msgstr "Comando desconocido; consulte /help para ver los comandos disponibles"
12211280
1222 #: ../libempathy-gtk/empathy-chat.c:1155
1281 #: ../libempathy-gtk/empathy-chat.c:1149
12231282 msgid "offline"
12241283 msgstr "desconectado"
12251284
1226 #: ../libempathy-gtk/empathy-chat.c:1158
1285 #: ../libempathy-gtk/empathy-chat.c:1152
12271286 msgid "invalid contact"
12281287 msgstr "contacto no válido"
12291288
1230 #: ../libempathy-gtk/empathy-chat.c:1161
1289 #: ../libempathy-gtk/empathy-chat.c:1155
12311290 msgid "permission denied"
12321291 msgstr "permiso denegado"
12331292
1234 #: ../libempathy-gtk/empathy-chat.c:1164
1293 #: ../libempathy-gtk/empathy-chat.c:1158
12351294 msgid "too long message"
12361295 msgstr "mensaje demasiado largo"
12371296
1238 #: ../libempathy-gtk/empathy-chat.c:1167
1297 #: ../libempathy-gtk/empathy-chat.c:1161
12391298 msgid "not implemented"
12401299 msgstr "no implementado"
12411300
1242 #: ../libempathy-gtk/empathy-chat.c:1170
1301 #: ../libempathy-gtk/empathy-chat.c:1165
12431302 msgid "unknown"
12441303 msgstr "desconocido"
12451304
1246 #: ../libempathy-gtk/empathy-chat.c:1174
1305 #: ../libempathy-gtk/empathy-chat.c:1169
12471306 #, c-format
12481307 msgid "Error sending message '%s': %s"
12491308 msgstr "Error al enviar el mensaje «%s»: %s"
12501309
1251 #: ../libempathy-gtk/empathy-chat.c:1284 ../src/empathy-chat-window.c:691
1310 #: ../libempathy-gtk/empathy-chat.c:1279 ../src/empathy-chat-window.c:691
12521311 msgid "Topic:"
12531312 msgstr "Tema:"
12541313
1255 #: ../libempathy-gtk/empathy-chat.c:1296
1314 #: ../libempathy-gtk/empathy-chat.c:1291
12561315 #, c-format
12571316 msgid "Topic set to: %s"
12581317 msgstr "El tema se ha establecido a: %s"
12591318
1260 #: ../libempathy-gtk/empathy-chat.c:1298
1319 #: ../libempathy-gtk/empathy-chat.c:1293
12611320 msgid "No topic defined"
12621321 msgstr "No se ha definido el tema"
12631322
1264 #: ../libempathy-gtk/empathy-chat.c:1777
1323 #: ../libempathy-gtk/empathy-chat.c:1772
12651324 msgid "(No Suggestions)"
12661325 msgstr "(Sin sugerencias)"
12671326
1268 #: ../libempathy-gtk/empathy-chat.c:1831
1327 #: ../libempathy-gtk/empathy-chat.c:1826
12691328 msgid "Insert Smiley"
12701329 msgstr "Insertar emoticono"
12711330
12721331 #. send button
1273 #: ../libempathy-gtk/empathy-chat.c:1849
1274 #: ../libempathy-gtk/empathy-ui-utils.c:1799
1332 #: ../libempathy-gtk/empathy-chat.c:1844
1333 #: ../libempathy-gtk/empathy-ui-utils.c:1800
12751334 msgid "_Send"
12761335 msgstr "E_nviar"
12771336
1278 #: ../libempathy-gtk/empathy-chat.c:1883
1337 #: ../libempathy-gtk/empathy-chat.c:1878
12791338 msgid "_Spelling Suggestions"
12801339 msgstr "_Sugerencias ortográficas"
12811340
1282 #: ../libempathy-gtk/empathy-chat.c:1960
1341 #: ../libempathy-gtk/empathy-chat.c:1955
12831342 msgid "Failed to retrieve recent logs"
12841343 msgstr "Falló al recibir los registros recientes"
12851344
1286 #: ../libempathy-gtk/empathy-chat.c:2066
1345 #: ../libempathy-gtk/empathy-chat.c:2061
12871346 #, c-format
12881347 msgid "%s has disconnected"
12891348 msgstr "%s se ha desconectado"
12911350 #. translators: reverse the order of these arguments
12921351 #. * if the kicked should come before the kicker in your locale.
12931352 #.
1294 #: ../libempathy-gtk/empathy-chat.c:2073
1353 #: ../libempathy-gtk/empathy-chat.c:2068
12951354 #, c-format
12961355 msgid "%1$s was kicked by %2$s"
12971356 msgstr "%2$s expulsó a %1$s"
12981357
1299 #: ../libempathy-gtk/empathy-chat.c:2076
1358 #: ../libempathy-gtk/empathy-chat.c:2071
13001359 #, c-format
13011360 msgid "%s was kicked"
13021361 msgstr "%s fue expulsado"
13041363 #. translators: reverse the order of these arguments
13051364 #. * if the banned should come before the banner in your locale.
13061365 #.
1307 #: ../libempathy-gtk/empathy-chat.c:2084
1366 #: ../libempathy-gtk/empathy-chat.c:2079
13081367 #, c-format
13091368 msgid "%1$s was banned by %2$s"
13101369 msgstr "%2$s vetó a %1$s"
13111370
1312 #: ../libempathy-gtk/empathy-chat.c:2087
1371 #: ../libempathy-gtk/empathy-chat.c:2082
13131372 #, c-format
13141373 msgid "%s was banned"
13151374 msgstr "%s fue vetado"
13161375
1317 #: ../libempathy-gtk/empathy-chat.c:2091
1376 #: ../libempathy-gtk/empathy-chat.c:2086
13181377 #, c-format
13191378 msgid "%s has left the room"
13201379 msgstr "%s ha dejado la sala"
13241383 #. * given by the user living the room. If this poses a problem,
13251384 #. * please let us know. :-)
13261385 #.
1327 #: ../libempathy-gtk/empathy-chat.c:2100
1386 #: ../libempathy-gtk/empathy-chat.c:2095
13281387 #, c-format
13291388 msgid " (%s)"
13301389 msgstr " (%s)"
13311390
1332 #: ../libempathy-gtk/empathy-chat.c:2125
1391 #: ../libempathy-gtk/empathy-chat.c:2120
13331392 #, c-format
13341393 msgid "%s has joined the room"
13351394 msgstr "%s ha entrado en la sala"
13361395
1337 #: ../libempathy-gtk/empathy-chat.c:2150
1396 #: ../libempathy-gtk/empathy-chat.c:2145
13381397 #, c-format
13391398 msgid "%s is now known as %s"
13401399 msgstr "Ahora %s se llama %s"
13411400
1342 #: ../libempathy-gtk/empathy-chat.c:2289 ../src/empathy-call-window.c:1802
1401 #: ../libempathy-gtk/empathy-chat.c:2284 ../src/empathy-call-window.c:1922
13431402 msgid "Disconnected"
13441403 msgstr "Desconectado"
13451404
1346 #: ../libempathy-gtk/empathy-chat.c:2927
1405 #: ../libempathy-gtk/empathy-chat.c:2922
13471406 msgid "Wrong password; please try again:"
13481407 msgstr "Contraseña incorrecta; inténtelo de nuevo:"
13491408
1350 #: ../libempathy-gtk/empathy-chat.c:2928
1409 #: ../libempathy-gtk/empathy-chat.c:2923
13511410 msgid "Retry"
13521411 msgstr "Volver a intentarlo"
13531412
1354 #: ../libempathy-gtk/empathy-chat.c:2933
1413 #: ../libempathy-gtk/empathy-chat.c:2928
13551414 msgid "This room is protected by a password:"
13561415 msgstr "Esta sala está protegida por contraseña:"
13571416
1358 #: ../libempathy-gtk/empathy-chat.c:2934
1417 #: ../libempathy-gtk/empathy-chat.c:2929
13591418 msgid "Join"
13601419 msgstr "Unirse"
13611420
1362 #: ../libempathy-gtk/empathy-chat.c:3074
1421 #: ../libempathy-gtk/empathy-chat.c:3069
13631422 msgid "Connected"
13641423 msgstr "Conectado"
13651424
1366 #: ../libempathy-gtk/empathy-chat.c:3127
1367 #: ../libempathy-gtk/empathy-log-window.c:639
1425 #: ../libempathy-gtk/empathy-chat.c:3122
1426 #: ../libempathy-gtk/empathy-log-window.c:653
13681427 msgid "Conversation"
13691428 msgstr "Conversación"
13701429
13711430 #. Copy Link Address menu item
13721431 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1373 #: ../libempathy-gtk/empathy-theme-adium.c:785
1432 #: ../libempathy-gtk/empathy-theme-adium.c:791
13741433 msgid "_Copy Link Address"
13751434 msgstr "_Copiar la dirección del enlace"
13761435
13771436 #. Open Link menu item
13781437 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1379 #: ../libempathy-gtk/empathy-theme-adium.c:792
1438 #: ../libempathy-gtk/empathy-theme-adium.c:798
13801439 msgid "_Open Link"
13811440 msgstr "_Abrir enlace"
13821441
14071466 msgid "Subscription Request"
14081467 msgstr "Petición de suscripción"
14091468
1410 #: ../libempathy-gtk/empathy-contact-list-view.c:1984
1411 #: ../libempathy-gtk/empathy-individual-view.c:1948
1469 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1470 #: ../libempathy-gtk/empathy-individual-view.c:2025
14121471 #, c-format
14131472 msgid "Do you really want to remove the group '%s'?"
14141473 msgstr "¿Realmente quiere quitar el grupo «%s»?"
14151474
1416 #: ../libempathy-gtk/empathy-contact-list-view.c:1986
1417 #: ../libempathy-gtk/empathy-individual-view.c:1951
1475 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1476 #: ../libempathy-gtk/empathy-individual-view.c:2028
14181477 msgid "Removing group"
14191478 msgstr "Quitando grupo"
14201479
14211480 #. Remove
1422 #: ../libempathy-gtk/empathy-contact-list-view.c:2035
1423 #: ../libempathy-gtk/empathy-contact-list-view.c:2112
1424 #: ../libempathy-gtk/empathy-individual-view.c:2005
1425 #: ../libempathy-gtk/empathy-individual-view.c:2090
1481 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1482 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1483 #: ../libempathy-gtk/empathy-individual-view.c:2082
1484 #: ../libempathy-gtk/empathy-individual-view.c:2167
14261485 #: ../src/empathy-accounts-dialog.ui.h:6
14271486 msgid "_Remove"
14281487 msgstr "_Quitar"
14291488
1430 #: ../libempathy-gtk/empathy-contact-list-view.c:2065
1431 #: ../libempathy-gtk/empathy-individual-view.c:2036
1489 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1490 #: ../libempathy-gtk/empathy-individual-view.c:2113
14321491 #, c-format
14331492 msgid "Do you really want to remove the contact '%s'?"
14341493 msgstr "¿Realmente quiere quitar el contacto «%s»?"
14351494
1436 #: ../libempathy-gtk/empathy-contact-list-view.c:2067
1437 #: ../libempathy-gtk/empathy-individual-view.c:2038
1495 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1496 #: ../libempathy-gtk/empathy-individual-view.c:2115
14381497 msgid "Removing contact"
14391498 msgstr "Quitando el contacto"
14401499
14411500 #: ../libempathy-gtk/empathy-contact-menu.c:203
1442 #: ../libempathy-gtk/empathy-individual-menu.c:223
1501 #: ../libempathy-gtk/empathy-individual-menu.c:359
14431502 #: ../src/empathy-main-window.ui.h:13
14441503 msgid "_Add Contact…"
14451504 msgstr "_Añadir contacto…"
14461505
1447 #: ../libempathy-gtk/empathy-contact-menu.c:231
1448 #: ../libempathy-gtk/empathy-individual-menu.c:264
1506 #: ../libempathy-gtk/empathy-contact-menu.c:230
1507 #: ../libempathy-gtk/empathy-individual-menu.c:462
14491508 #: ../src/empathy-main-window.ui.h:14
14501509 msgid "_Chat"
14511510 msgstr "_Chat"
14521511
1453 #: ../libempathy-gtk/empathy-contact-menu.c:261
1454 #: ../libempathy-gtk/empathy-individual-menu.c:306
1512 #: ../libempathy-gtk/empathy-contact-menu.c:260
1513 #: ../libempathy-gtk/empathy-individual-menu.c:503
14551514 msgctxt "menu item"
14561515 msgid "_Audio Call"
14571516 msgstr "Llamada de vo_z"
14581517
1459 #: ../libempathy-gtk/empathy-contact-menu.c:291
1460 #: ../libempathy-gtk/empathy-individual-menu.c:351
1518 #: ../libempathy-gtk/empathy-contact-menu.c:290
1519 #: ../libempathy-gtk/empathy-individual-menu.c:545
14611520 msgctxt "menu item"
14621521 msgid "_Video Call"
14631522 msgstr "Llamada de _vídeo"
14641523
1465 #: ../libempathy-gtk/empathy-contact-menu.c:331
1466 #: ../libempathy-gtk/empathy-individual-menu.c:403
1524 #: ../libempathy-gtk/empathy-contact-menu.c:330
1525 #: ../libempathy-gtk/empathy-individual-menu.c:603
14671526 #: ../src/empathy-main-window.ui.h:25
14681527 msgid "_Previous Conversations"
14691528 msgstr "Conversaciones an_teriores"
14701529
1471 #: ../libempathy-gtk/empathy-contact-menu.c:353
1472 #: ../libempathy-gtk/empathy-individual-menu.c:444
1530 #: ../libempathy-gtk/empathy-contact-menu.c:352
1531 #: ../libempathy-gtk/empathy-individual-menu.c:644
14731532 msgid "Send File"
14741533 msgstr "Enviar archivo"
14751534
1476 #: ../libempathy-gtk/empathy-contact-menu.c:376
1477 #: ../libempathy-gtk/empathy-individual-menu.c:486
1535 #: ../libempathy-gtk/empathy-contact-menu.c:375
1536 #: ../libempathy-gtk/empathy-individual-menu.c:686
14781537 msgid "Share My Desktop"
14791538 msgstr "Compartir mi escritorio"
14801539
1481 #: ../libempathy-gtk/empathy-contact-menu.c:416
1540 #: ../libempathy-gtk/empathy-contact-menu.c:415
14821541 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1483 #: ../libempathy-gtk/empathy-individual-menu.c:515
1542 #: ../libempathy-gtk/empathy-individual-menu.c:720
14841543 msgid "Favorite"
14851544 msgstr "Favorita"
14861545
1487 #: ../libempathy-gtk/empathy-contact-menu.c:445
1488 #: ../libempathy-gtk/empathy-individual-menu.c:547
1546 #: ../libempathy-gtk/empathy-contact-menu.c:444
1547 #: ../libempathy-gtk/empathy-individual-menu.c:747
14891548 msgid "Infor_mation"
14901549 msgstr "Infor_mación"
14911550
1492 #: ../libempathy-gtk/empathy-contact-menu.c:491
1551 #: ../libempathy-gtk/empathy-contact-menu.c:490
14931552 msgctxt "Edit contact (contextual menu)"
14941553 msgid "_Edit"
14951554 msgstr "_Editar"
14961555
1497 #: ../libempathy-gtk/empathy-contact-menu.c:545
1498 #: ../libempathy-gtk/empathy-individual-menu.c:664
1556 #: ../libempathy-gtk/empathy-contact-menu.c:544
1557 #: ../libempathy-gtk/empathy-individual-menu.c:938
14991558 #: ../src/empathy-chat-window.c:903
15001559 msgid "Inviting you to this room"
15011560 msgstr "Invitándolo a esta sala"
15021561
1503 #: ../libempathy-gtk/empathy-contact-menu.c:576
1504 #: ../libempathy-gtk/empathy-individual-menu.c:702
1562 #: ../libempathy-gtk/empathy-contact-menu.c:575
1563 #: ../libempathy-gtk/empathy-individual-menu.c:985
15051564 msgid "_Invite to Chat Room"
15061565 msgstr "_Invitar a sala de chat"
15071566
15341593 msgstr "Seleccionar"
15351594
15361595 #: ../libempathy-gtk/empathy-contact-widget.c:612
1537 #: ../src/empathy-main-window.c:1195
1596 #: ../src/empathy-main-window.c:1231
15381597 msgid "Group"
15391598 msgstr "Grupo"
15401599
17081767 msgid "_Add Group"
17091768 msgstr "_Añadir grupo"
17101769
1711 #: ../libempathy-gtk/empathy-individual-menu.c:603
1712 #| msgid "_Edit"
1770 #: ../libempathy-gtk/empathy-individual-linker.c:250
1771 msgid "Select contacts to link"
1772 msgstr "Seleccionar contactos para enlazar"
1773
1774 #: ../libempathy-gtk/empathy-individual-linker.c:298
1775 msgid "New contact preview"
1776 msgstr "Vista previa del contacto nuevo"
1777
1778 #: ../libempathy-gtk/empathy-individual-menu.c:107
1779 #, c-format
1780 msgid "%s (%s)"
1781 msgstr "%s (%s)"
1782
1783 #: ../libempathy-gtk/empathy-individual-menu.c:803
17131784 msgctxt "Edit individual (contextual menu)"
17141785 msgid "_Edit"
17151786 msgstr "_Editar"
17161787
1788 #: ../libempathy-gtk/empathy-individual-menu.c:833
1789 msgctxt "Link individual (contextual menu)"
1790 msgid "_Link…"
1791 msgstr "_Enlazar…"
1792
17171793 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
17181794 msgid "new server"
17191795 msgstr "servidor nuevo"
17301806 msgid "SSL"
17311807 msgstr "SSL"
17321808
1733 #: ../libempathy-gtk/empathy-log-window.c:632
1809 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1810 msgid "Link Contacts"
1811 msgstr "Enlazar contactos"
1812
1813 #. Add button
1814 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1815 msgid "_Link"
1816 msgstr "_Enlazar"
1817
1818 #: ../libempathy-gtk/empathy-log-window.c:646
17341819 #: ../src/empathy-import-widget.c:312
17351820 msgid "Account"
17361821 msgstr "Cuenta"
17371822
1738 #: ../libempathy-gtk/empathy-log-window.c:649
1823 #: ../libempathy-gtk/empathy-log-window.c:663
17391824 msgid "Date"
17401825 msgstr "Fecha"
17411826
1742 #: ../libempathy-gtk/empathy-log-window.ui.h:1
1827 #. Tab Label
1828 #: ../libempathy-gtk/empathy-log-window.ui.h:2
17431829 msgid "Conversations"
17441830 msgstr "Conversaciones"
17451831
1746 #: ../libempathy-gtk/empathy-log-window.ui.h:2
1832 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1833 msgid "Find next"
1834 msgstr "Buscar siguiente"
1835
1836 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1837 msgid "Find previous"
1838 msgstr "Buscar anterior"
1839
1840 #: ../libempathy-gtk/empathy-log-window.ui.h:5
17471841 msgid "Previous Conversations"
17481842 msgstr "Conversaciones anteriores"
17491843
1750 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1844 #. Tab Label
1845 #: ../libempathy-gtk/empathy-log-window.ui.h:7
17511846 msgid "Search"
17521847 msgstr "Buscar"
17531848
1754 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1849 #. Searching *for* something
1850 #: ../libempathy-gtk/empathy-log-window.ui.h:9
17551851 msgid "_For:"
17561852 msgstr "_Para:"
17571853
17701866 msgstr "Conversación nueva"
17711867
17721868 #. add video toggle
1773 #: ../libempathy-gtk/empathy-new-call-dialog.c:190
1869 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
17741870 msgid "Send _Video"
17751871 msgstr "Enviar _vídeo"
17761872
17771873 #. add chat button
1778 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1779 #: ../src/empathy-call-window.ui.h:22
1874 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
1875 #: ../src/empathy-call-window.ui.h:24
17801876 msgid "_Call"
17811877 msgstr "_Llamar"
17821878
17831879 #. Tweak the dialog
1784 #: ../libempathy-gtk/empathy-new-call-dialog.c:208
1880 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
17851881 msgid "New Call"
17861882 msgstr "Llamada nueva"
17871883
19062002 msgid "Blue"
19072003 msgstr "Azul"
19082004
1909 #: ../libempathy-gtk/empathy-ui-utils.c:1696
2005 #: ../libempathy-gtk/empathy-ui-utils.c:1697
19102006 msgid "Unable to open URI"
19112007 msgstr "No se pudo abrir el URI"
19122008
1913 #: ../libempathy-gtk/empathy-ui-utils.c:1791
2009 #: ../libempathy-gtk/empathy-ui-utils.c:1792
19142010 msgid "Select a file"
19152011 msgstr "Seleccionar un archivo"
19162012
1917 #: ../libempathy-gtk/empathy-ui-utils.c:1860
2013 #: ../libempathy-gtk/empathy-ui-utils.c:1861
19182014 #, c-format
19192015 msgid "Incoming file from %s"
19202016 msgstr "Archivo entrante de %s"
21032199 msgid "Instant Message (Empathy)"
21042200 msgstr "Mensaje instantáneo (Empathy)"
21052201
2106 #: ../src/empathy.c:474
2202 #: ../src/empathy.c:414
21072203 msgid "Don't connect on startup"
21082204 msgstr "No conectarse automáticamente al inicio"
21092205
2110 #: ../src/empathy.c:478
2206 #: ../src/empathy.c:418
21112207 msgid "Don't display the contact list or any other dialogs on startup"
21122208 msgstr "No mostrar la lista de contactos o cualquier otro diálogo al inicio"
21132209
2114 #: ../src/empathy.c:490
2210 #: ../src/empathy.c:435
21152211 msgid "- Empathy IM Client"
21162212 msgstr "- Cliente de mensajería instantánea Empathy"
21172213
21882284 "Editar."
21892285
21902286 #: ../src/empathy-account-assistant.c:220
2191 #: ../src/empathy-account-assistant.c:1315
2287 #: ../src/empathy-account-assistant.c:1311
21922288 msgid "An error occurred"
21932289 msgstr "Ocurrió un error"
21942290
22712367 msgid "No, that's all for now"
22722368 msgstr "No, eso es todo por ahora"
22732369
2274 #: ../src/empathy-account-assistant.c:1129
2370 #: ../src/empathy-account-assistant.c:1125
22752371 msgid ""
22762372 "Empathy can automatically discover and chat with the people connected on the "
22772373 "same network as you. If you want to use this feature, please check that the "
22842380 "estos detalles posteriormente o desactivar esta característica usando el "
22852381 "diálogo «Cuentas»."
22862382
2287 #: ../src/empathy-account-assistant.c:1135
2288 #: ../src/empathy-account-assistant.c:1191
2383 #: ../src/empathy-account-assistant.c:1131
2384 #: ../src/empathy-account-assistant.c:1187
22892385 msgid "Edit->Accounts"
22902386 msgstr "Editar->Cuentas"
22912387
2292 #: ../src/empathy-account-assistant.c:1151
2388 #: ../src/empathy-account-assistant.c:1147
22932389 msgid "I don't want to enable this feature for now"
22942390 msgstr "No quiero activar esta característica por ahora"
22952391
2296 #: ../src/empathy-account-assistant.c:1187
2392 #: ../src/empathy-account-assistant.c:1183
22972393 msgid ""
22982394 "You won't be able to chat with people connected to your local network, as "
22992395 "telepathy-salut is not installed. If you want to enable this feature, please "
23052401 "instale el paquete telepathy-salut y cree una cuenta de Gente cerca desde el "
23062402 "diálogo Cuentas."
23072403
2308 #: ../src/empathy-account-assistant.c:1193
2404 #: ../src/empathy-account-assistant.c:1189
23092405 msgid "telepathy-salut not installed"
23102406 msgstr "telepathy-salut no está instalado"
23112407
2312 #: ../src/empathy-account-assistant.c:1239
2408 #: ../src/empathy-account-assistant.c:1235
23132409 msgid "Messaging and VoIP Accounts Assistant"
23142410 msgstr "Asistente de cuentas de mensajería y Voz IP"
23152411
2316 #: ../src/empathy-account-assistant.c:1273
2412 #: ../src/empathy-account-assistant.c:1269
23172413 msgid "Welcome to Empathy"
23182414 msgstr "Bienvenido a Empathy"
23192415
2320 #: ../src/empathy-account-assistant.c:1282
2416 #: ../src/empathy-account-assistant.c:1278
23212417 msgid "Import your existing accounts"
23222418 msgstr "Importar sus cuentas existentes"
23232419
2324 #: ../src/empathy-account-assistant.c:1300
2420 #: ../src/empathy-account-assistant.c:1296
23252421 msgid "Please enter personal details"
23262422 msgstr "Introduzca los detalles personales"
23272423
23382434 msgid "Your new account has not been saved yet."
23392435 msgstr "Aún no se ha guardado su cuenta nueva."
23402436
2341 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
2437 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:808
23422438 msgid "Connecting…"
23432439 msgstr "Conectando…"
23442440
24332529 msgid "Empathy Audio/Video Client"
24342530 msgstr "Cliente de sonido/vídeo Empathy"
24352531
2436 #: ../src/empathy-call-window.c:470
2532 #: ../src/empathy-call-window.c:479
24372533 msgid "Contrast"
24382534 msgstr "Contraste"
24392535
2440 #: ../src/empathy-call-window.c:473
2536 #: ../src/empathy-call-window.c:482
24412537 msgid "Brightness"
24422538 msgstr "Brillo"
24432539
2444 #: ../src/empathy-call-window.c:476
2540 #: ../src/empathy-call-window.c:485
24452541 msgid "Gamma"
24462542 msgstr "Gamma"
24472543
2448 #: ../src/empathy-call-window.c:581
2544 #: ../src/empathy-call-window.c:590
24492545 msgid "Volume"
24502546 msgstr "Volumen"
24512547
2452 #: ../src/empathy-call-window.c:1146
2548 #: ../src/empathy-call-window.c:1163
24532549 msgid "_Sidebar"
24542550 msgstr "Barra _lateral"
24552551
2456 #: ../src/empathy-call-window.c:1165
2552 #: ../src/empathy-call-window.c:1182
24572553 msgid "Audio input"
24582554 msgstr "Entrada de voz"
24592555
2460 #: ../src/empathy-call-window.c:1169
2556 #: ../src/empathy-call-window.c:1186
24612557 msgid "Video input"
24622558 msgstr "Entrada de vídeo"
24632559
2464 #: ../src/empathy-call-window.c:1173
2560 #: ../src/empathy-call-window.c:1190
24652561 msgid "Dialpad"
24662562 msgstr "Teclado de llamada"
24672563
2468 #: ../src/empathy-call-window.c:1178
2564 #: ../src/empathy-call-window.c:1195
24692565 msgid "Details"
24702566 msgstr "Detalles"
24712567
24722568 #. translators: Call is a noun and %s is the contact name. This string
24732569 #. * is used in the window title
2474 #: ../src/empathy-call-window.c:1246
2570 #: ../src/empathy-call-window.c:1263
24752571 #, c-format
24762572 msgid "Call with %s"
24772573 msgstr "Llamada con %s"
24782574
24792575 #. translators: Call is a noun. This string is used in the window
24802576 #. * title
2481 #: ../src/empathy-call-window.c:1325
2577 #: ../src/empathy-call-window.c:1342
24822578 msgid "Call"
24832579 msgstr "Llamar"
24842580
2581 #: ../src/empathy-call-window.c:1496
2582 msgid "The IP address as seen by the machine"
2583 msgstr "La dirección IP como la ve la máquina"
2584
2585 #: ../src/empathy-call-window.c:1498
2586 msgid "The IP address as seen by a server on the Internet"
2587 msgstr "La dirección IP como la ve el servidor de Internet"
2588
2589 #: ../src/empathy-call-window.c:1500
2590 msgid "The IP address of the peer as seen by the other side"
2591 msgstr "La dirección IP del par como la ve la otra parte"
2592
2593 #: ../src/empathy-call-window.c:1502
2594 msgid "The IP address of a relay server"
2595 msgstr "La dirección IP de un servidor de desvío"
2596
2597 #: ../src/empathy-call-window.c:1504
2598 msgid "The IP address of the multicast group"
2599 msgstr "La dirección IP del grupo multicast"
2600
24852601 #. Translators: number of minutes:seconds the caller has been connected
2486 #: ../src/empathy-call-window.c:2117
2602 #: ../src/empathy-call-window.c:2237
24872603 #, c-format
24882604 msgid "Connected — %d:%02dm"
24892605 msgstr "Conectado — %d:%02dm"
24902606
2491 #: ../src/empathy-call-window.c:2178
2607 #: ../src/empathy-call-window.c:2298
24922608 msgid "Technical Details"
24932609 msgstr "Detalles técnicos"
24942610
2495 #: ../src/empathy-call-window.c:2216
2611 #: ../src/empathy-call-window.c:2336
24962612 #, c-format
24972613 msgid ""
24982614 "%s's software does not understand any of the audio formats supported by your "
25012617 "El software de «%s» no entiende ninguno de los formatos de vídeo soportados "
25022618 "por su equipo"
25032619
2504 #: ../src/empathy-call-window.c:2221
2620 #: ../src/empathy-call-window.c:2341
25052621 #, c-format
25062622 msgid ""
25072623 "%s's software does not understand any of the video formats supported by your "
25102626 "El software de «%s» no entiende ninguno de los formatos de vídeo soportados "
25112627 "por su equipo"
25122628
2513 #: ../src/empathy-call-window.c:2227
2629 #: ../src/empathy-call-window.c:2347
25142630 #, c-format
25152631 msgid ""
25162632 "Can't establish a connection to %s. One of you might be on a network that "
25192635 "No se puede establecer una conexión con %s. Uno de los dos puede estar en "
25202636 "una red que no acepta conexiones directas."
25212637
2522 #: ../src/empathy-call-window.c:2233
2638 #: ../src/empathy-call-window.c:2353
25232639 msgid "There was a failure on the network"
25242640 msgstr "Hubo un fallo en la red"
25252641
2526 #: ../src/empathy-call-window.c:2237
2642 #: ../src/empathy-call-window.c:2357
25272643 msgid ""
25282644 "The audio formats necessary for this call are not installed on your computer"
25292645 msgstr ""
25302646 "No están instalados en su equipo los formatos de sonido necesarios para esta "
25312647 "llamada"
25322648
2533 #: ../src/empathy-call-window.c:2240
2649 #: ../src/empathy-call-window.c:2360
25342650 msgid ""
25352651 "The video formats necessary for this call are not installed on your computer"
25362652 msgstr ""
25372653 "No están instalados en su equipo los formatos de vídeo necesarios para esta "
25382654 "llamada"
25392655
2540 #: ../src/empathy-call-window.c:2250
2656 #: ../src/empathy-call-window.c:2370
25412657 #, c-format
25422658 msgid ""
25432659 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
25482664 "\">Informe de este error</a> y añada los registros obtenidos de la ventana "
25492665 "de «Depuración» en el menú de Ayuda."
25502666
2551 #: ../src/empathy-call-window.c:2258
2667 #: ../src/empathy-call-window.c:2378
25522668 msgid "There was a failure in the call engine"
25532669 msgstr "Hubo un fallo en el motor de llamadas"
25542670
2555 #: ../src/empathy-call-window.c:2297
2671 #: ../src/empathy-call-window.c:2381
2672 msgid "The end of the stream was reached"
2673 msgstr "Se llegó al final del flujo"
2674
2675 #: ../src/empathy-call-window.c:2421
25562676 msgid "Can't establish audio stream"
25572677 msgstr "No se puede establecer el flujo de voz"
25582678
2559 #: ../src/empathy-call-window.c:2307
2679 #: ../src/empathy-call-window.c:2431
25602680 msgid "Can't establish video stream"
25612681 msgstr "No se puede establecer el flujo de vídeo"
25622682
26052725 msgstr "Colgar la llamada actual"
26062726
26072727 #: ../src/empathy-call-window.ui.h:12
2728 msgid "Local Candidate:"
2729 msgstr "Candidato local:"
2730
2731 #: ../src/empathy-call-window.ui.h:13
26082732 msgid "Preview"
26092733 msgstr "Vista previa"
26102734
2611 #: ../src/empathy-call-window.ui.h:13
2735 #: ../src/empathy-call-window.ui.h:14
26122736 msgid "Redial"
26132737 msgstr "Volver a llamar"
26142738
2615 #: ../src/empathy-call-window.ui.h:14
2739 #: ../src/empathy-call-window.ui.h:15
2740 msgid "Remote Candidate:"
2741 msgstr "Candidato remoto:"
2742
2743 #: ../src/empathy-call-window.ui.h:16
26162744 msgid "Send Audio"
26172745 msgstr "Enviar voz"
26182746
2619 #: ../src/empathy-call-window.ui.h:15
2747 #: ../src/empathy-call-window.ui.h:17
26202748 msgid "Toggle audio transmission"
26212749 msgstr "Conmutar la transmisión de voz"
26222750
2623 #: ../src/empathy-call-window.ui.h:17
2751 #: ../src/empathy-call-window.ui.h:19
26242752 msgid "V_ideo"
26252753 msgstr "Ví_deo"
26262754
2627 #: ../src/empathy-call-window.ui.h:18
2755 #: ../src/empathy-call-window.ui.h:20
26282756 msgid "Video"
26292757 msgstr "Vídeo"
26302758
2631 #: ../src/empathy-call-window.ui.h:19
2759 #: ../src/empathy-call-window.ui.h:21
26322760 msgid "Video Off"
26332761 msgstr "Vídeo apagado"
26342762
2635 #: ../src/empathy-call-window.ui.h:20
2763 #: ../src/empathy-call-window.ui.h:22
26362764 msgid "Video On"
26372765 msgstr "Vídeo encendido"
26382766
2639 #: ../src/empathy-call-window.ui.h:21
2767 #: ../src/empathy-call-window.ui.h:23
26402768 msgid "Video Preview"
26412769 msgstr "Vista preliminar del vídeo"
26422770
2643 #: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:27
2771 #: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:27
26442772 msgid "_View"
26452773 msgstr "_Ver"
26462774
27682896 msgid "Manage Favorite Rooms"
27692897 msgstr "Gestionar salas favoritas"
27702898
2771 #: ../src/empathy-event-manager.c:473
2899 #: ../src/empathy-event-manager.c:471
27722900 msgid "Incoming video call"
27732901 msgstr "Llamada de vídeo entrante"
27742902
2775 #: ../src/empathy-event-manager.c:473
2903 #: ../src/empathy-event-manager.c:471
27762904 msgid "Incoming call"
27772905 msgstr "Llamada entrante"
27782906
2779 #: ../src/empathy-event-manager.c:477
2907 #: ../src/empathy-event-manager.c:475
27802908 #, c-format
27812909 msgid "%s is video calling you. Do you want to answer?"
27822910 msgstr "%s le está llamando con vídeo. ¿Quiere responder?"
27832911
2784 #: ../src/empathy-event-manager.c:478
2912 #: ../src/empathy-event-manager.c:476
27852913 #, c-format
27862914 msgid "%s is calling you. Do you want to answer?"
27872915 msgstr "%s le está llamando. ¿Quiere responder?"
27882916
2789 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
2917 #: ../src/empathy-event-manager.c:479 ../src/empathy-event-manager.c:621
27902918 #, c-format
27912919 msgid "Incoming call from %s"
27922920 msgstr "Llamada entrante de %s"
27932921
2794 #: ../src/empathy-event-manager.c:506
2922 #: ../src/empathy-event-manager.c:504
27952923 msgid "_Reject"
27962924 msgstr "_Rechazar"
27972925
2798 #: ../src/empathy-event-manager.c:512
2926 #: ../src/empathy-event-manager.c:510
27992927 msgid "_Answer"
28002928 msgstr "Re_spuesta"
28012929
2802 #: ../src/empathy-event-manager.c:623
2930 #: ../src/empathy-event-manager.c:621
28032931 #, c-format
28042932 msgid "Incoming video call from %s"
28052933 msgstr "Llamada de vídeo entrante de %s"
28062934
2807 #: ../src/empathy-event-manager.c:700
2935 #: ../src/empathy-event-manager.c:698
28082936 msgid "Room invitation"
28092937 msgstr "Invitación a una sala"
28102938
2811 #: ../src/empathy-event-manager.c:702
2939 #: ../src/empathy-event-manager.c:700
28122940 #, c-format
28132941 msgid "Invitation to join %s"
28142942 msgstr "Invitación para unirse a %s"
28152943
2816 #: ../src/empathy-event-manager.c:709
2944 #: ../src/empathy-event-manager.c:707
28172945 #, c-format
28182946 msgid "%s is inviting you to join %s"
28192947 msgstr "%s le está invitando a unirse a %s"
28202948
2821 #: ../src/empathy-event-manager.c:717
2949 #: ../src/empathy-event-manager.c:715
28222950 msgid "_Decline"
28232951 msgstr "_Rechazar"
28242952
2825 #: ../src/empathy-event-manager.c:722
2953 #: ../src/empathy-event-manager.c:720
28262954 #: ../src/empathy-new-chatroom-dialog.ui.h:7
28272955 msgid "_Join"
28282956 msgstr "_Unirse"
28292957
2830 #: ../src/empathy-event-manager.c:760
2958 #: ../src/empathy-event-manager.c:758
28312959 #, c-format
28322960 msgid "%s invited you to join %s"
28332961 msgstr "%s le ha invitado a unirse a %s"
28342962
2835 #: ../src/empathy-event-manager.c:787
2963 #: ../src/empathy-event-manager.c:785
28362964 #, c-format
28372965 msgid "Incoming file transfer from %s"
28382966 msgstr "Transferencia de archivo entrante de %s"
28392967
2840 #: ../src/empathy-event-manager.c:988
2968 #: ../src/empathy-event-manager.c:986
28412969 #, c-format
28422970 msgid "Subscription requested by %s"
28432971 msgstr "Petición de suscripción de %s"
28442972
2845 #: ../src/empathy-event-manager.c:992
2973 #: ../src/empathy-event-manager.c:990
28462974 #, c-format
28472975 msgid ""
28482976 "\n"
28512979 "\n"
28522980 "Mensaje: %s"
28532981
2854 #: ../src/empathy-event-manager.c:1035
2982 #: ../src/empathy-event-manager.c:1033
28552983 #, c-format
28562984 msgid "%s is now offline."
28572985 msgstr "Ahora %s está desconectado."
28582986
2859 #: ../src/empathy-event-manager.c:1055
2987 #: ../src/empathy-event-manager.c:1053
28602988 #, c-format
28612989 msgid "%s is now online."
28622990 msgstr "Ahora %s está conectado."
29523080 msgid "Hashing \"%s\""
29533081 msgstr "Obteniendo el «hash» de «%s»"
29543082
2955 #: ../src/empathy-ft-manager.c:990
3083 #: ../src/empathy-ft-manager.c:996
29563084 msgid "%"
29573085 msgstr "%"
29583086
2959 #: ../src/empathy-ft-manager.c:1002
3087 #: ../src/empathy-ft-manager.c:1008
29603088 msgid "File"
29613089 msgstr "Archivo"
29623090
2963 #: ../src/empathy-ft-manager.c:1024
3091 #: ../src/empathy-ft-manager.c:1030
29643092 msgid "Remaining"
29653093 msgstr "Restantes"
29663094
29993127 msgid "Source"
30003128 msgstr "Origen"
30013129
3002 #: ../src/empathy-main-window.c:476
3130 #. Labels for empty contact list
3131 #: ../src/empathy-main-window.c:95
3132 msgid "No match found"
3133 msgstr "No se encontraró ninguna coincidencia"
3134
3135 #: ../src/empathy-main-window.c:519
30033136 msgid "Reconnect"
30043137 msgstr "Reconectar"
30053138
3006 #: ../src/empathy-main-window.c:482
3139 #: ../src/empathy-main-window.c:525
30073140 msgid "Edit Account"
30083141 msgstr "Editar cuenta"
30093142
3010 #: ../src/empathy-main-window.c:488
3143 #: ../src/empathy-main-window.c:531
30113144 msgid "Close"
30123145 msgstr "Cerrar"
30133146
3014 #: ../src/empathy-main-window.c:1177
3147 #: ../src/empathy-main-window.c:1213
30153148 msgid "Contact"
30163149 msgstr "Contacto"
30173150
3018 #: ../src/empathy-main-window.c:1501
3151 #: ../src/empathy-main-window.c:1538
30193152 msgid "Contact List"
30203153 msgstr "Lista de contactos"
30213154
3022 #: ../src/empathy-main-window.c:1608
3155 #: ../src/empathy-main-window.c:1647
30233156 msgid "Show and edit accounts"
30243157 msgstr "Mostrar y editar cuentas"
30253158
31703303 msgid "_Room:"
31713304 msgstr "_Sala:"
31723305
3173 #: ../src/empathy-preferences.c:136
3306 #: ../src/empathy-preferences.c:138
31743307 msgid "Message received"
31753308 msgstr "Mensaje recibido"
31763309
3177 #: ../src/empathy-preferences.c:137
3310 #: ../src/empathy-preferences.c:139
31783311 msgid "Message sent"
31793312 msgstr "Mensaje enviado"
31803313
3181 #: ../src/empathy-preferences.c:138
3314 #: ../src/empathy-preferences.c:140
31823315 msgid "New conversation"
31833316 msgstr "Conversación nueva"
31843317
3185 #: ../src/empathy-preferences.c:139
3318 #: ../src/empathy-preferences.c:141
31863319 msgid "Contact goes online"
31873320 msgstr "El contacto se conecta"
31883321
3189 #: ../src/empathy-preferences.c:140
3322 #: ../src/empathy-preferences.c:142
31903323 msgid "Contact goes offline"
31913324 msgstr "El contacto se desconecta"
31923325
3193 #: ../src/empathy-preferences.c:141
3326 #: ../src/empathy-preferences.c:143
31943327 msgid "Account connected"
31953328 msgstr "Cuenta conectada"
31963329
3197 #: ../src/empathy-preferences.c:142
3330 #: ../src/empathy-preferences.c:144
31983331 msgid "Account disconnected"
31993332 msgstr "Cuenta desconectada"
32003333
3201 #: ../src/empathy-preferences.c:437
3334 #: ../src/empathy-preferences.c:445
32023335 msgid "Language"
32033336 msgstr "Idioma"
32043337
3205 #: ../src/empathy-preferences.c:873
3338 #: ../src/empathy-preferences.c:882
32063339 msgid "Preferences"
32073340 msgstr "Preferencias"
32083341
32553388 msgstr "Orígenes de las ubicaciones:"
32563389
32573390 #: ../src/empathy-preferences.ui.h:14
3391 #| msgid "Conversations"
3392 msgid "Log conversations"
3393 msgstr "Registrar conversaciones"
3394
3395 #: ../src/empathy-preferences.ui.h:15
32583396 msgid "Notifications"
32593397 msgstr "Notificaciones"
32603398
3261 #: ../src/empathy-preferences.ui.h:15
3399 #: ../src/empathy-preferences.ui.h:16
32623400 msgid "Play sound for events"
32633401 msgstr "Reproducir sonido para eventos"
32643402
3265 #: ../src/empathy-preferences.ui.h:16
3403 #: ../src/empathy-preferences.ui.h:17
32663404 msgid "Privacy"
32673405 msgstr "Privacidad"
32683406
3269 #: ../src/empathy-preferences.ui.h:17
3407 #: ../src/empathy-preferences.ui.h:18
32703408 msgid ""
32713409 "Reduced location accuracy means that nothing more precise than your city, "
32723410 "state and country will be published. GPS coordinates will be accurate to 1 "
32763414 "preciso que su ciudad, estado y país. Las coordenadas GPS tendrán un valor "
32773415 "aleatorio añadido 1 lugar decimal."
32783416
3279 #: ../src/empathy-preferences.ui.h:18
3417 #: ../src/empathy-preferences.ui.h:19
32803418 msgid "Show _smileys as images"
32813419 msgstr "Mostrar los _emoticonos como imágenes"
32823420
3283 #: ../src/empathy-preferences.ui.h:19
3421 #: ../src/empathy-preferences.ui.h:20
32843422 msgid "Show contact _list in rooms"
32853423 msgstr "Mostrar _lista de contactos en salas"
32863424
3287 #: ../src/empathy-preferences.ui.h:20
3425 #: ../src/empathy-preferences.ui.h:21
32883426 msgid "Sounds"
32893427 msgstr "Sonidos"
32903428
3291 #: ../src/empathy-preferences.ui.h:21
3429 #: ../src/empathy-preferences.ui.h:22
32923430 msgid "Spell Checking"
32933431 msgstr "Revisión ortográfica"
32943432
3295 #: ../src/empathy-preferences.ui.h:22
3433 #: ../src/empathy-preferences.ui.h:23
32963434 msgid ""
32973435 "The list of languages reflects only the languages for which you have a "
32983436 "dictionary installed."
33003438 "La lista de idiomas refleja sólo los idiomas para los cuales tiene un "
33013439 "diccionario instalado."
33023440
3303 #: ../src/empathy-preferences.ui.h:23
3441 #: ../src/empathy-preferences.ui.h:24
33043442 msgid "Themes"
33053443 msgstr "Temas"
33063444
3307 #: ../src/empathy-preferences.ui.h:24
3445 #: ../src/empathy-preferences.ui.h:25
33083446 msgid "_Automatically connect on startup"
33093447 msgstr "C_onectarse automáticamente al inicio"
33103448
3311 #: ../src/empathy-preferences.ui.h:25
3449 #: ../src/empathy-preferences.ui.h:26
33123450 msgid "_Cellphone"
33133451 msgstr "Teléfono _móvil"
33143452
3315 #: ../src/empathy-preferences.ui.h:26
3453 #: ../src/empathy-preferences.ui.h:27
33163454 msgid "_Enable bubble notifications"
33173455 msgstr "_Activar notificaciones de burbuja"
33183456
3319 #: ../src/empathy-preferences.ui.h:27
3457 #: ../src/empathy-preferences.ui.h:28
33203458 msgid "_Enable sound notifications"
33213459 msgstr "_Activar notificaciones de sonido"
33223460
3323 #: ../src/empathy-preferences.ui.h:28
3461 #: ../src/empathy-preferences.ui.h:29
33243462 msgid "_GPS"
33253463 msgstr "_GPS"
33263464
3327 #: ../src/empathy-preferences.ui.h:29
3465 #: ../src/empathy-preferences.ui.h:30
33283466 msgid "_Network (IP, Wi-Fi)"
33293467 msgstr "_Red (IP, Wi-Fi)"
33303468
3331 #: ../src/empathy-preferences.ui.h:30
3469 #: ../src/empathy-preferences.ui.h:31
33323470 msgid "_Open new chats in separate windows"
33333471 msgstr "_Abrir charlas nuevas en ventanas separadas"
33343472
3335 #: ../src/empathy-preferences.ui.h:31
3473 #: ../src/empathy-preferences.ui.h:32
33363474 msgid "_Publish location to my contacts"
33373475 msgstr "_Publicar mi ubicación a mis contactos"
33383476
3339 #: ../src/empathy-preferences.ui.h:32
3477 #. 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.
3478 #: ../src/empathy-preferences.ui.h:34
33403479 msgid "_Reduce location accuracy"
33413480 msgstr "_Reducir la precisión de la ubicación"
33423481
33683507 msgid "_Quit"
33693508 msgstr "_Salir"
33703509
3371 #: ../src/empathy-map-view.ui.h:1
3510 #: ../src/empathy-map-view.c:452
33723511 msgid "Contact Map View"
33733512 msgstr "Vista del mapa de contactos"
33743513
34783617 #: ../src/empathy-debugger.c:40
34793618 msgid "Empathy Debugger"
34803619 msgstr "Depurador de Empathy"
3620
3621 #~ msgid "Your contact list is empty"
3622 #~ msgstr "Su lista de contactos está vacía"
34813623
34823624 #~ msgid "Send and receive messages"
34833625 #~ msgstr "Envíe y reciba mensajes instantáneos"
+405
-256
po/gl.po less more
33 #
44 # Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009.
55 # Antón Méixome <meixome@mancomun.org>, 2009.
6 # Fran Dieguez <fran.dieguez@glug.es>, 2009.
76 # Antón Méixome <meixome@certima.net>, 2010.
87 # Francisco Diéguez <frandieguez@ubuntu.com>, 2010.
98 # Fran Diéguez <frandieguez@ubuntu.com>,2009, 2010.
9 # Fran Dieguez <frandieguez@ubuntu.com>, 2009, 2010.
1010 #
1111 msgid ""
1212 msgstr ""
1313 "Project-Id-Version: empathy-master-po-gl-57278_.merged\n"
1414 "Report-Msgid-Bugs-To: \n"
15 "POT-Creation-Date: 2010-07-27 17:50+0200\n"
16 "PO-Revision-Date: 2010-07-27 17:50+0200\n"
17 "Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
15 "POT-Creation-Date: 2010-08-17 18:36+0200\n"
16 "PO-Revision-Date: 2010-08-17 18:36+0200\n"
17 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
1818 "Language-Team: Galician <gnome-gl-list@gnome.org>\n"
1919 "MIME-Version: 1.0\n"
2020 "Content-Type: text/plain; charset=UTF-8\n"
578578 msgid "Messaging and VoIP Accounts"
579579 msgstr "Contas de mensaxaría e VoIP"
580580
581 #: ../libempathy/empathy-ft-handler.c:843
581 #: ../libempathy/empathy-ft-handler.c:851
582582 msgid "The hash of the received file and the sent one do not match"
583583 msgstr "O hash do ficheiro recibido e o do enviado non coinciden"
584584
585 #: ../libempathy/empathy-ft-handler.c:1103
585 #: ../libempathy/empathy-ft-handler.c:1111
586586 msgid "File transfer not supported by remote contact"
587587 msgstr "A transferencia de ficheiro non é permitida polo contacto remoto"
588588
589 #: ../libempathy/empathy-ft-handler.c:1161
589 #: ../libempathy/empathy-ft-handler.c:1169
590590 msgid "The selected file is not a regular file"
591591 msgstr "O ficheiro seleccionado non é un ficheiro regular"
592592
593 #: ../libempathy/empathy-ft-handler.c:1170
593 #: ../libempathy/empathy-ft-handler.c:1178
594594 msgid "The selected file is empty"
595595 msgstr "O ficheiro seleccionado está baleiro"
596596
597 #: ../libempathy/empathy-tp-file.c:281
597 #: ../libempathy/empathy-tp-file.c:283
598598 msgid "Socket type not supported"
599599 msgstr "O tipo de socket non é compatíbel"
600600
601601 # rever
602 #: ../libempathy/empathy-tp-file.c:400
602 #: ../libempathy/empathy-tp-file.c:402
603603 msgid "No reason was specified"
604604 msgstr "Non se especificou un motivo"
605605
606606 # rever
607 #: ../libempathy/empathy-tp-file.c:403
607 #: ../libempathy/empathy-tp-file.c:405
608608 msgid "The change in state was requested"
609609 msgstr "Foi solicitado o cambio de estado"
610610
611611 # rever
612 #: ../libempathy/empathy-tp-file.c:406
612 #: ../libempathy/empathy-tp-file.c:408
613613 msgid "You canceled the file transfer"
614614 msgstr "Vostede cancelou a transferencia de ficheiros"
615615
616616 # rever
617 #: ../libempathy/empathy-tp-file.c:409
617 #: ../libempathy/empathy-tp-file.c:411
618618 msgid "The other participant canceled the file transfer"
619619 msgstr "O outro participante cancelou a transferencia de ficheiros"
620620
621621 # rever
622 #: ../libempathy/empathy-tp-file.c:412
622 #: ../libempathy/empathy-tp-file.c:414
623623 msgid "Error while trying to transfer the file"
624624 msgstr "Produciuse un erro ao tentar transferir o ficheiro"
625625
626626 # rever
627 #: ../libempathy/empathy-tp-file.c:415
627 #: ../libempathy/empathy-tp-file.c:417
628628 msgid "The other participant is unable to transfer the file"
629629 msgstr "O outro participante non pode transferir o ficheiro"
630630
631 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:320
631 #: ../libempathy/empathy-tp-file.c:420 ../libempathy/empathy-utils.c:320
632632 msgid "Unknown reason"
633633 msgstr "Motivo descoñecido"
634634
635 #: ../libempathy/empathy-utils.c:243
635 #: ../libempathy/empathy-utils.c:242
636636 msgid "Available"
637637 msgstr "Dispoñíbel"
638638
639 #: ../libempathy/empathy-utils.c:245
639 #: ../libempathy/empathy-utils.c:244
640640 msgid "Busy"
641641 msgstr "Ocupado"
642642
643 #: ../libempathy/empathy-utils.c:248
643 #: ../libempathy/empathy-utils.c:247
644644 msgid "Away"
645645 msgstr "Ausente"
646646
647 #: ../libempathy/empathy-utils.c:250
647 #: ../libempathy/empathy-utils.c:249
648648 msgid "Invisible"
649649 msgstr "Invisíbel"
650650
651 #: ../libempathy/empathy-utils.c:252
651 #: ../libempathy/empathy-utils.c:251
652652 msgid "Offline"
653653 msgstr "Desconectado"
654654
655 #: ../libempathy/empathy-utils.c:254 ../src/empathy-call-window.c:1763
656 #: ../src/empathy-call-window.c:1764 ../src/empathy-call-window.c:1765
657 #: ../src/empathy-call-window.c:1766 ../src/empathy-call-window.ui.h:16
655 #: ../libempathy/empathy-utils.c:253 ../src/empathy-call-window.c:1883
656 #: ../src/empathy-call-window.c:1884 ../src/empathy-call-window.c:1885
657 #: ../src/empathy-call-window.c:1886 ../src/empathy-call-window.ui.h:18
658658 msgid "Unknown"
659659 msgstr "Descoñecido"
660660
663663 msgid "No reason specified"
664664 msgstr "Non se especificou un motivo"
665665
666 #: ../libempathy/empathy-utils.c:294
666 #: ../libempathy/empathy-utils.c:294 ../libempathy/empathy-utils.c:350
667667 msgid "Status is set to offline"
668668 msgstr "O estado está definido a desconectado"
669669
670670 # rever
671 #: ../libempathy/empathy-utils.c:296
671 #: ../libempathy/empathy-utils.c:296 ../libempathy/empathy-utils.c:330
672672 msgid "Network error"
673673 msgstr "Erro de rede"
674674
675 #: ../libempathy/empathy-utils.c:298
675 #: ../libempathy/empathy-utils.c:298 ../libempathy/empathy-utils.c:332
676676 msgid "Authentication failed"
677677 msgstr "Fallou a autenticación"
678678
679679 # rever
680 #: ../libempathy/empathy-utils.c:300
680 #: ../libempathy/empathy-utils.c:300 ../libempathy/empathy-utils.c:334
681681 msgid "Encryption error"
682682 msgstr "Erro de cifrado"
683683
687687 msgstr "Nome en uso"
688688
689689 # rever
690 #: ../libempathy/empathy-utils.c:304
690 #: ../libempathy/empathy-utils.c:304 ../libempathy/empathy-utils.c:336
691691 msgid "Certificate not provided"
692692 msgstr "Non se proporcionou o certificado"
693693
694 #: ../libempathy/empathy-utils.c:306
694 #: ../libempathy/empathy-utils.c:306 ../libempathy/empathy-utils.c:338
695695 msgid "Certificate untrusted"
696696 msgstr "Certificado non fiábel"
697697
698698 # rever
699 #: ../libempathy/empathy-utils.c:308
699 #: ../libempathy/empathy-utils.c:308 ../libempathy/empathy-utils.c:340
700700 msgid "Certificate expired"
701701 msgstr "O certificado caducou"
702702
703703 # rever
704 #: ../libempathy/empathy-utils.c:310
704 #: ../libempathy/empathy-utils.c:310 ../libempathy/empathy-utils.c:342
705705 msgid "Certificate not activated"
706706 msgstr "O certificado non está activado"
707707
708708 # rever
709 #: ../libempathy/empathy-utils.c:312
709 #: ../libempathy/empathy-utils.c:312 ../libempathy/empathy-utils.c:344
710710 msgid "Certificate hostname mismatch"
711711 msgstr "O nome do host do certificado non coincide"
712712
713713 # rever
714 #: ../libempathy/empathy-utils.c:314
714 #: ../libempathy/empathy-utils.c:314 ../libempathy/empathy-utils.c:346
715715 msgid "Certificate fingerprint mismatch"
716716 msgstr "A impresión dixital do certificado non coincide"
717717
718718 # rever
719 #: ../libempathy/empathy-utils.c:316
719 #: ../libempathy/empathy-utils.c:316 ../libempathy/empathy-utils.c:348
720720 msgid "Certificate self-signed"
721721 msgstr "Certificado autoasinado"
722722
725725 msgid "Certificate error"
726726 msgstr "Erro de certificado"
727727
728 # rever
729 #: ../libempathy/empathy-utils.c:435
728 #: ../libempathy/empathy-utils.c:352
729 msgid "Encryption is not available"
730 msgstr "O cifrado non está dispoñíbel"
731
732 # rever
733 #: ../libempathy/empathy-utils.c:354
734 msgid "Certificate is invalid"
735 msgstr "O certificado non é válido"
736
737 # rever
738 #: ../libempathy/empathy-utils.c:356
739 msgid "Connection has been refused"
740 msgstr "Rexeitouse a conexión"
741
742 # rever
743 #: ../libempathy/empathy-utils.c:358
744 msgid "Connection can't be established"
745 msgstr "Non é posíbel estabelecer a conexión"
746
747 # rever
748 #: ../libempathy/empathy-utils.c:360
749 msgid "Connection has been lost"
750 msgstr "Perdeuse a conexión"
751
752 #: ../libempathy/empathy-utils.c:362
753 msgid "This resource is already connected to the server"
754 msgstr "Este recurso xa está conectado ao servidor"
755
756 #: ../libempathy/empathy-utils.c:364
757 msgid ""
758 "Connection has been replaced by a new connection using the same resource"
759 msgstr ""
760 "A conexión foi substituída por unha nova conexión empregando o mesmo recurso"
761
762 #: ../libempathy/empathy-utils.c:367
763 msgid "The account already exists on the server"
764 msgstr "Esta conta xa existe no servidor"
765
766 #: ../libempathy/empathy-utils.c:369
767 msgid "Server is currently too busy to handle the connection"
768 msgstr "Nestes intres o servidor está moi ocupado para xesionar a conexión"
769
770 # rever
771 #: ../libempathy/empathy-utils.c:371
772 msgid "Certificate has been revoked"
773 msgstr "O certificado foi revocado"
774
775 #: ../libempathy/empathy-utils.c:373
776 msgid ""
777 "Certificate uses an insecure cipher algorithm or is cryptographically weak"
778 msgstr ""
779 "O certificado usa un algoritmo de cifrado inseguro ou cripotograficamente "
780 "débil."
781
782 #: ../libempathy/empathy-utils.c:376
783 msgid ""
784 "The length of the server certificate, or the depth of the server certificate "
785 "chain exceed the limits imposed by the crypto library"
786 msgstr ""
787 "A lonxitude do certificado do servidor ou a profundidade da cadea do "
788 "certificado do servidor excede os límites impostos pola biblioteca crypto."
789
790 # rever
791 #: ../libempathy/empathy-utils.c:529
730792 msgid "People Nearby"
731793 msgstr "Persoas próximas"
732794
733795 # rever
734 #: ../libempathy/empathy-utils.c:440
796 #: ../libempathy/empathy-utils.c:534
735797 msgid "Yahoo! Japan"
736798 msgstr "Yahoo! Japan"
737799
738 #: ../libempathy/empathy-utils.c:441
800 #: ../libempathy/empathy-utils.c:535
739801 msgid "Facebook Chat"
740802 msgstr "Chat de Facebook"
741803
790852 msgstr "Todas"
791853
792854 #: ../libempathy-gtk/empathy-account-widget.c:549
793 #: ../libempathy-gtk/empathy-account-widget.c:605
855 #: ../libempathy-gtk/empathy-account-widget.c:606
794856 #, c-format
795857 msgid "%s:"
796858 msgstr "%s:"
797859
798 #: ../libempathy-gtk/empathy-account-widget.c:1136
860 #: ../libempathy-gtk/empathy-account-widget.c:1137
799861 msgid "Username:"
800862 msgstr "Nome de _usuario:"
801863
802 #: ../libempathy-gtk/empathy-account-widget.c:1479
864 #: ../libempathy-gtk/empathy-account-widget.c:1480
803865 msgid "L_og in"
804866 msgstr "Iniciar sesi_ón"
805867
806 #: ../libempathy-gtk/empathy-account-widget.c:1547
868 #: ../libempathy-gtk/empathy-account-widget.c:1548
807869 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
808870 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
809871 #: ../src/empathy-chatrooms-window.ui.h:1
811873 msgid "Account:"
812874 msgstr "Conta:"
813875
814 #: ../libempathy-gtk/empathy-account-widget.c:1558
876 #: ../libempathy-gtk/empathy-account-widget.c:1559
815877 msgid "Enabled"
816878 msgstr "Activado"
817879
818 #: ../libempathy-gtk/empathy-account-widget.c:1623
880 #: ../libempathy-gtk/empathy-account-widget.c:1624
819881 msgid "This account already exists on the server"
820882 msgstr "Esta conta xa existe no servidor"
821883
822 #: ../libempathy-gtk/empathy-account-widget.c:1626
884 #: ../libempathy-gtk/empathy-account-widget.c:1627
823885 msgid "Create a new account on the server"
824886 msgstr "Crear unha nova conta no servidor"
825887
829891 #. * like: "MyUserName on chat.freenode.net".
830892 #. * You should reverse the order of these arguments if the
831893 #. * server should come before the login id in your locale.
832 #: ../libempathy-gtk/empathy-account-widget.c:1995
894 #: ../libempathy-gtk/empathy-account-widget.c:1996
833895 #, c-format
834896 msgid "%1$s on %2$s"
835897 msgstr "%1$s sobre %2$s"
836898
837899 #. To translators: The parameter is the protocol name. The resulting
838900 #. * string will be something like: "Jabber Account"
839 #: ../libempathy-gtk/empathy-account-widget.c:2021
901 #: ../libempathy-gtk/empathy-account-widget.c:2022
840902 #, c-format
841903 msgid "%s Account"
842904 msgstr "Conta %s"
843905
844906 # rever
845 #: ../libempathy-gtk/empathy-account-widget.c:2025
907 #: ../libempathy-gtk/empathy-account-widget.c:2026
846908 msgid "New account"
847909 msgstr "Conta nova"
848910
9471009 msgid "_Character set:"
9481010 msgstr "_Codificación de caracteres:"
9491011
950 #: ../libempathy-gtk/empathy-account-widget-irc.c:245
1012 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
9511013 msgid "New Network"
9521014 msgstr "Rede nova"
9531015
12651327 msgstr "Todos os ficheiros"
12661328
12671329 # rever
1268 #: ../libempathy-gtk/empathy-avatar-image.c:325
1330 #: ../libempathy-gtk/empathy-avatar-image.c:323
12691331 msgid "Click to enlarge"
12701332 msgstr "Prema para ampliar"
12711333
1272 #: ../libempathy-gtk/empathy-chat.c:645
1334 #: ../libempathy-gtk/empathy-chat.c:639
12731335 msgid "Failed to open private chat"
12741336 msgstr "Produciuse un fallo ao abrir un chat privado"
12751337
1276 #: ../libempathy-gtk/empathy-chat.c:685
1338 #: ../libempathy-gtk/empathy-chat.c:679
12771339 msgid "Topic not supported on this conversation"
12781340 msgstr "Ese asunto non se admite nesta conversación"
12791341
1280 #: ../libempathy-gtk/empathy-chat.c:691
1342 #: ../libempathy-gtk/empathy-chat.c:685
12811343 msgid "You are not allowed to change the topic"
12821344 msgstr "Non se lle permite cambiar o asunto"
12831345
1284 #: ../libempathy-gtk/empathy-chat.c:825
1346 #: ../libempathy-gtk/empathy-chat.c:819
12851347 msgid "/clear: clear all messages from the current conversation"
12861348 msgstr "/clear, limpa todas as mensaxes da conversa actual"
12871349
1288 #: ../libempathy-gtk/empathy-chat.c:828
1350 #: ../libempathy-gtk/empathy-chat.c:822
12891351 msgid "/topic <topic>: set the topic of the current conversation"
12901352 msgstr "/topic <topic>, estabelece o asunto da conversa actual"
12911353
1292 #: ../libempathy-gtk/empathy-chat.c:831
1354 #: ../libempathy-gtk/empathy-chat.c:825
12931355 msgid "/join <chat room ID>: join a new chat room"
12941356 msgstr "/join <chatroom id>, unirse a unha nova sala de conversa"
12951357
1296 #: ../libempathy-gtk/empathy-chat.c:834
1358 #: ../libempathy-gtk/empathy-chat.c:828
12971359 msgid "/j <chat room ID>: join a new chat room"
12981360 msgstr "/j <chatroom id>, unirse a unha nova sala de conversa"
12991361
1300 #: ../libempathy-gtk/empathy-chat.c:839
1362 #: ../libempathy-gtk/empathy-chat.c:833
13011363 msgid "/query <contact ID> [<message>]: open a private chat"
13021364 msgstr "/query <contact id> [<message>], abre unha conversa privada"
13031365
1304 #: ../libempathy-gtk/empathy-chat.c:842
1366 #: ../libempathy-gtk/empathy-chat.c:836
13051367 msgid "/msg <contact ID> <message>: open a private chat"
13061368 msgstr "/msg <contact id> <message>, abre unha conversa privada"
13071369
1308 #: ../libempathy-gtk/empathy-chat.c:846
1370 #: ../libempathy-gtk/empathy-chat.c:840
13091371 msgid "/nick <nickname>: change your nickname on the current server"
13101372 msgstr "/nick <nickname>, cambia o seu nome de usuario no servidor actual"
13111373
1312 #: ../libempathy-gtk/empathy-chat.c:849
1374 #: ../libempathy-gtk/empathy-chat.c:843
13131375 msgid "/me <message>: send an ACTION message to the current conversation"
13141376 msgstr "/me <message>, envía unha mensaxe ACTION á conversa actual"
13151377
1316 #: ../libempathy-gtk/empathy-chat.c:852
1378 #: ../libempathy-gtk/empathy-chat.c:846
13171379 msgid ""
13181380 "/say <message>: send <message> to the current conversation. This is used to "
13191381 "send a message starting with a '/'. For example: \"/say /join is used to "
13231385 "unha mensaxe que comeza cunha '/'. Por exemplo: \"/say /join úsase para "
13241386 "unirse a unha nova sala de conversa\""
13251387
1326 #: ../libempathy-gtk/empathy-chat.c:857
1388 #: ../libempathy-gtk/empathy-chat.c:851
13271389 msgid ""
13281390 "/help [<command>]: show all supported commands. If <command> is defined, "
13291391 "show its usage."
13311393 "/help [<command>], mostra todas as ordes admitidas. Se <command> está "
13321394 "definida, mostra o seu uso."
13331395
1334 #: ../libempathy-gtk/empathy-chat.c:867
1396 #: ../libempathy-gtk/empathy-chat.c:861
13351397 #, c-format
13361398 msgid "Usage: %s"
13371399 msgstr "Uso: %s"
13381400
1339 #: ../libempathy-gtk/empathy-chat.c:896
1401 #: ../libempathy-gtk/empathy-chat.c:890
13401402 msgid "Unknown command"
13411403 msgstr "Orde descoñecida"
13421404
1343 #: ../libempathy-gtk/empathy-chat.c:1017
1405 #: ../libempathy-gtk/empathy-chat.c:1011
13441406 msgid "Unknown command; see /help for the available commands"
13451407 msgstr "Orde descoñecida, vexa /help para obter as ordes dispoñíbeis"
13461408
1347 #: ../libempathy-gtk/empathy-chat.c:1155
1409 #: ../libempathy-gtk/empathy-chat.c:1149
13481410 msgid "offline"
13491411 msgstr "desconectado"
13501412
1351 #: ../libempathy-gtk/empathy-chat.c:1158
1413 #: ../libempathy-gtk/empathy-chat.c:1152
13521414 msgid "invalid contact"
13531415 msgstr "contacto incorrecto"
13541416
1355 #: ../libempathy-gtk/empathy-chat.c:1161
1417 #: ../libempathy-gtk/empathy-chat.c:1155
13561418 msgid "permission denied"
13571419 msgstr "permiso denegado"
13581420
13591421 # rever
1360 #: ../libempathy-gtk/empathy-chat.c:1164
1422 #: ../libempathy-gtk/empathy-chat.c:1158
13611423 msgid "too long message"
13621424 msgstr "a mensaxe é demasiado longa"
13631425
1364 #: ../libempathy-gtk/empathy-chat.c:1167
1426 #: ../libempathy-gtk/empathy-chat.c:1161
13651427 msgid "not implemented"
13661428 msgstr "non implementado"
13671429
1368 #: ../libempathy-gtk/empathy-chat.c:1170
1430 #: ../libempathy-gtk/empathy-chat.c:1165
13691431 msgid "unknown"
13701432 msgstr "descoñecido"
13711433
13721434 # rever
1373 #: ../libempathy-gtk/empathy-chat.c:1174
1435 #: ../libempathy-gtk/empathy-chat.c:1169
13741436 #, c-format
13751437 msgid "Error sending message '%s': %s"
13761438 msgstr "Produciuse un erro ao enviar a mensaxe '%s': %s"
13771439
1378 #: ../libempathy-gtk/empathy-chat.c:1284 ../src/empathy-chat-window.c:691
1440 #: ../libempathy-gtk/empathy-chat.c:1279 ../src/empathy-chat-window.c:691
13791441 msgid "Topic:"
13801442 msgstr "Asunto:"
13811443
13821444 # rever
1383 #: ../libempathy-gtk/empathy-chat.c:1296
1445 #: ../libempathy-gtk/empathy-chat.c:1291
13841446 #, c-format
13851447 msgid "Topic set to: %s"
13861448 msgstr "Cambiouse o asunto a: %s"
13871449
13881450 # rever
1389 #: ../libempathy-gtk/empathy-chat.c:1298
1451 #: ../libempathy-gtk/empathy-chat.c:1293
13901452 msgid "No topic defined"
13911453 msgstr "Non se definiu un asunto"
13921454
1393 #: ../libempathy-gtk/empathy-chat.c:1777
1455 #: ../libempathy-gtk/empathy-chat.c:1772
13941456 msgid "(No Suggestions)"
13951457 msgstr "(Sen suxestións)"
13961458
1397 #: ../libempathy-gtk/empathy-chat.c:1831
1459 #: ../libempathy-gtk/empathy-chat.c:1826
13981460 msgid "Insert Smiley"
13991461 msgstr "Inserir unha emoticona"
14001462
14011463 #. send button
1402 #: ../libempathy-gtk/empathy-chat.c:1849
1403 #: ../libempathy-gtk/empathy-ui-utils.c:1799
1464 #: ../libempathy-gtk/empathy-chat.c:1844
1465 #: ../libempathy-gtk/empathy-ui-utils.c:1800
14041466 msgid "_Send"
14051467 msgstr "_Enviar"
14061468
1407 #: ../libempathy-gtk/empathy-chat.c:1883
1469 #: ../libempathy-gtk/empathy-chat.c:1878
14081470 msgid "_Spelling Suggestions"
14091471 msgstr "Suxestións de _ortografía"
14101472
1411 #: ../libempathy-gtk/empathy-chat.c:1960
1473 #: ../libempathy-gtk/empathy-chat.c:1955
14121474 msgid "Failed to retrieve recent logs"
14131475 msgstr "Produciuse un fallo ao obter os rexistros recentes"
14141476
14151477 # rever
1416 #: ../libempathy-gtk/empathy-chat.c:2066
1478 #: ../libempathy-gtk/empathy-chat.c:2061
14171479 #, c-format
14181480 msgid "%s has disconnected"
14191481 msgstr "%s desconectou"
14211483 #. translators: reverse the order of these arguments
14221484 #. * if the kicked should come before the kicker in your locale.
14231485 #.
1424 #: ../libempathy-gtk/empathy-chat.c:2073
1486 #: ../libempathy-gtk/empathy-chat.c:2068
14251487 #, c-format
14261488 msgid "%1$s was kicked by %2$s"
14271489 msgstr "%1$s foi expulsado por %2$s"
14281490
1429 #: ../libempathy-gtk/empathy-chat.c:2076
1491 #: ../libempathy-gtk/empathy-chat.c:2071
14301492 #, c-format
14311493 msgid "%s was kicked"
14321494 msgstr "%s foi expulsado"
14341496 #. translators: reverse the order of these arguments
14351497 #. * if the banned should come before the banner in your locale.
14361498 #.
1437 #: ../libempathy-gtk/empathy-chat.c:2084
1499 #: ../libempathy-gtk/empathy-chat.c:2079
14381500 #, c-format
14391501 msgid "%1$s was banned by %2$s"
14401502 msgstr "%1$s foi vetado por %2$s"
14411503
1442 #: ../libempathy-gtk/empathy-chat.c:2087
1504 #: ../libempathy-gtk/empathy-chat.c:2082
14431505 #, c-format
14441506 msgid "%s was banned"
14451507 msgstr "%s foi excluído"
14461508
1447 #: ../libempathy-gtk/empathy-chat.c:2091
1509 #: ../libempathy-gtk/empathy-chat.c:2086
14481510 #, c-format
14491511 msgid "%s has left the room"
14501512 msgstr "%s deixou a sala"
14541516 #. * given by the user living the room. If this poses a problem,
14551517 #. * please let us know. :-)
14561518 #.
1457 #: ../libempathy-gtk/empathy-chat.c:2100
1519 #: ../libempathy-gtk/empathy-chat.c:2095
14581520 #, c-format
14591521 msgid " (%s)"
14601522 msgstr " (%s)"
14611523
14621524 # rever
1463 #: ../libempathy-gtk/empathy-chat.c:2125
1525 #: ../libempathy-gtk/empathy-chat.c:2120
14641526 #, c-format
14651527 msgid "%s has joined the room"
14661528 msgstr "%s uniuse á sala"
14671529
1468 #: ../libempathy-gtk/empathy-chat.c:2150
1530 #: ../libempathy-gtk/empathy-chat.c:2145
14691531 #, c-format
14701532 msgid "%s is now known as %s"
14711533 msgstr "%s agora é coñecido como %s"
14721534
1473 #: ../libempathy-gtk/empathy-chat.c:2289 ../src/empathy-call-window.c:1802
1535 #: ../libempathy-gtk/empathy-chat.c:2284 ../src/empathy-call-window.c:1922
14741536 msgid "Disconnected"
14751537 msgstr "Desconectado"
14761538
1477 #: ../libempathy-gtk/empathy-chat.c:2927
1539 #: ../libempathy-gtk/empathy-chat.c:2922
14781540 msgid "Wrong password; please try again:"
14791541 msgstr "O contrasinal é incorrecto, ténteo de novo:"
14801542
1481 #: ../libempathy-gtk/empathy-chat.c:2928
1543 #: ../libempathy-gtk/empathy-chat.c:2923
14821544 msgid "Retry"
14831545 msgstr "Reintentar"
14841546
1485 #: ../libempathy-gtk/empathy-chat.c:2933
1547 #: ../libempathy-gtk/empathy-chat.c:2928
14861548 msgid "This room is protected by a password:"
14871549 msgstr "Esta sala está protexida por un contrasinal:"
14881550
1489 #: ../libempathy-gtk/empathy-chat.c:2934
1551 #: ../libempathy-gtk/empathy-chat.c:2929
14901552 msgid "Join"
14911553 msgstr "Unirse"
14921554
1493 #: ../libempathy-gtk/empathy-chat.c:3074
1555 #: ../libempathy-gtk/empathy-chat.c:3069
14941556 msgid "Connected"
14951557 msgstr "Conectado"
14961558
1497 #: ../libempathy-gtk/empathy-chat.c:3127
1498 #: ../libempathy-gtk/empathy-log-window.c:639
1559 #: ../libempathy-gtk/empathy-chat.c:3122
1560 #: ../libempathy-gtk/empathy-log-window.c:653
14991561 msgid "Conversation"
15001562 msgstr "Conversa"
15011563
15021564 #. Copy Link Address menu item
15031565 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1504 #: ../libempathy-gtk/empathy-theme-adium.c:785
1566 #: ../libempathy-gtk/empathy-theme-adium.c:791
15051567 msgid "_Copy Link Address"
15061568 msgstr "_Copiar o enderezo da ligazón"
15071569
15081570 #. Open Link menu item
15091571 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1510 #: ../libempathy-gtk/empathy-theme-adium.c:792
1572 #: ../libempathy-gtk/empathy-theme-adium.c:798
15111573 msgid "_Open Link"
15121574 msgstr "_Abrir a ligazón"
15131575
15411603 msgstr "Solicitude de subscrición"
15421604
15431605 # rever
1544 #: ../libempathy-gtk/empathy-contact-list-view.c:1984
1545 #: ../libempathy-gtk/empathy-individual-view.c:1966
1606 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1607 #: ../libempathy-gtk/empathy-individual-view.c:2025
15461608 #, c-format
15471609 msgid "Do you really want to remove the group '%s'?"
15481610 msgstr "Está seguro de que quere eliminar o grupo '%s'?"
15491611
15501612 # rever
1551 #: ../libempathy-gtk/empathy-contact-list-view.c:1986
1552 #: ../libempathy-gtk/empathy-individual-view.c:1969
1613 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1614 #: ../libempathy-gtk/empathy-individual-view.c:2028
15531615 msgid "Removing group"
15541616 msgstr "Eliminando o grupo"
15551617
15561618 #. Remove
1557 #: ../libempathy-gtk/empathy-contact-list-view.c:2035
1558 #: ../libempathy-gtk/empathy-contact-list-view.c:2112
1559 #: ../libempathy-gtk/empathy-individual-view.c:2023
1560 #: ../libempathy-gtk/empathy-individual-view.c:2108
1619 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1620 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1621 #: ../libempathy-gtk/empathy-individual-view.c:2082
1622 #: ../libempathy-gtk/empathy-individual-view.c:2167
15611623 #: ../src/empathy-accounts-dialog.ui.h:6
15621624 msgid "_Remove"
15631625 msgstr "_Eliminar"
15641626
15651627 # rever
1566 #: ../libempathy-gtk/empathy-contact-list-view.c:2065
1567 #: ../libempathy-gtk/empathy-individual-view.c:2054
1628 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1629 #: ../libempathy-gtk/empathy-individual-view.c:2113
15681630 #, c-format
15691631 msgid "Do you really want to remove the contact '%s'?"
15701632 msgstr "Está seguro de quere eliminar o contacto '%s'?"
15711633
1572 #: ../libempathy-gtk/empathy-contact-list-view.c:2067
1573 #: ../libempathy-gtk/empathy-individual-view.c:2056
1634 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1635 #: ../libempathy-gtk/empathy-individual-view.c:2115
15741636 msgid "Removing contact"
15751637 msgstr "Eliminando o contacto"
15761638
15771639 # rever
15781640 #: ../libempathy-gtk/empathy-contact-menu.c:203
1579 #: ../libempathy-gtk/empathy-individual-menu.c:223
1641 #: ../libempathy-gtk/empathy-individual-menu.c:359
15801642 #: ../src/empathy-main-window.ui.h:13
15811643 msgid "_Add Contact…"
15821644 msgstr "Eng_adir un contacto..."
15831645
1584 #: ../libempathy-gtk/empathy-contact-menu.c:231
1585 #: ../libempathy-gtk/empathy-individual-menu.c:264
1646 #: ../libempathy-gtk/empathy-contact-menu.c:230
1647 #: ../libempathy-gtk/empathy-individual-menu.c:462
15861648 #: ../src/empathy-main-window.ui.h:14
15871649 msgid "_Chat"
15881650 msgstr "_Conversa"
15891651
1590 #: ../libempathy-gtk/empathy-contact-menu.c:261
1591 #: ../libempathy-gtk/empathy-individual-menu.c:306
1652 #: ../libempathy-gtk/empathy-contact-menu.c:260
1653 #: ../libempathy-gtk/empathy-individual-menu.c:503
15921654 msgctxt "menu item"
15931655 msgid "_Audio Call"
15941656 msgstr "_Audiochamada"
15951657
1596 #: ../libempathy-gtk/empathy-contact-menu.c:291
1597 #: ../libempathy-gtk/empathy-individual-menu.c:351
1658 #: ../libempathy-gtk/empathy-contact-menu.c:290
1659 #: ../libempathy-gtk/empathy-individual-menu.c:545
15981660 msgctxt "menu item"
15991661 msgid "_Video Call"
16001662 msgstr "_Videochamada"
16011663
16021664 # rever
1603 #: ../libempathy-gtk/empathy-contact-menu.c:331
1604 #: ../libempathy-gtk/empathy-individual-menu.c:403
1665 #: ../libempathy-gtk/empathy-contact-menu.c:330
1666 #: ../libempathy-gtk/empathy-individual-menu.c:603
16051667 #: ../src/empathy-main-window.ui.h:25
16061668 msgid "_Previous Conversations"
16071669 msgstr "Conversas _previas"
16081670
1609 #: ../libempathy-gtk/empathy-contact-menu.c:353
1610 #: ../libempathy-gtk/empathy-individual-menu.c:444
1671 #: ../libempathy-gtk/empathy-contact-menu.c:352
1672 #: ../libempathy-gtk/empathy-individual-menu.c:644
16111673 msgid "Send File"
16121674 msgstr "Enviar ficheiro"
16131675
1614 #: ../libempathy-gtk/empathy-contact-menu.c:376
1615 #: ../libempathy-gtk/empathy-individual-menu.c:486
1676 #: ../libempathy-gtk/empathy-contact-menu.c:375
1677 #: ../libempathy-gtk/empathy-individual-menu.c:686
16161678 msgid "Share My Desktop"
16171679 msgstr "Compartir o meu escritorio"
16181680
16191681 # rever
1620 #: ../libempathy-gtk/empathy-contact-menu.c:416
1682 #: ../libempathy-gtk/empathy-contact-menu.c:415
16211683 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1622 #: ../libempathy-gtk/empathy-individual-menu.c:515
1684 #: ../libempathy-gtk/empathy-individual-menu.c:720
16231685 msgid "Favorite"
16241686 msgstr "Favorito"
16251687
1626 #: ../libempathy-gtk/empathy-contact-menu.c:445
1627 #: ../libempathy-gtk/empathy-individual-menu.c:547
1688 #: ../libempathy-gtk/empathy-contact-menu.c:444
1689 #: ../libempathy-gtk/empathy-individual-menu.c:747
16281690 msgid "Infor_mation"
16291691 msgstr "Infor_mación"
16301692
1631 #: ../libempathy-gtk/empathy-contact-menu.c:491
1693 #: ../libempathy-gtk/empathy-contact-menu.c:490
16321694 msgctxt "Edit contact (contextual menu)"
16331695 msgid "_Edit"
16341696 msgstr "_Editar"
16351697
16361698 # rever
1637 #: ../libempathy-gtk/empathy-contact-menu.c:545
1638 #: ../libempathy-gtk/empathy-individual-menu.c:664
1699 #: ../libempathy-gtk/empathy-contact-menu.c:544
1700 #: ../libempathy-gtk/empathy-individual-menu.c:938
16391701 #: ../src/empathy-chat-window.c:903
16401702 msgid "Inviting you to this room"
16411703 msgstr "Invítao a vostede a esta sala"
16421704
16431705 # rever
1644 #: ../libempathy-gtk/empathy-contact-menu.c:576
1645 #: ../libempathy-gtk/empathy-individual-menu.c:702
1706 #: ../libempathy-gtk/empathy-contact-menu.c:575
1707 #: ../libempathy-gtk/empathy-individual-menu.c:985
16461708 msgid "_Invite to Chat Room"
16471709 msgstr "Conv_idar a sala de conversa"
16481710
16761738 msgstr "Seleccionar"
16771739
16781740 #: ../libempathy-gtk/empathy-contact-widget.c:612
1679 #: ../src/empathy-main-window.c:1195
1741 #: ../src/empathy-main-window.c:1231
16801742 msgid "Group"
16811743 msgstr "Grupo"
16821744
18561918 msgid "_Add Group"
18571919 msgstr "Eng_adir grupo"
18581920
1859 #: ../libempathy-gtk/empathy-individual-menu.c:603
1921 # rever
1922 #: ../libempathy-gtk/empathy-individual-linker.c:250
1923 msgid "Select contacts to link"
1924 msgstr "Seleccione os contactos a ligar"
1925
1926 #: ../libempathy-gtk/empathy-individual-linker.c:298
1927 msgid "New contact preview"
1928 msgstr "Vista previa do contacto novo"
1929
1930 #: ../libempathy-gtk/empathy-individual-menu.c:107
1931 #, c-format
1932 msgid "%s (%s)"
1933 msgstr "%s (%s)"
1934
1935 #: ../libempathy-gtk/empathy-individual-menu.c:803
18601936 msgctxt "Edit individual (contextual menu)"
18611937 msgid "_Edit"
18621938 msgstr "_Editar"
18631939
1940 #: ../libempathy-gtk/empathy-individual-menu.c:833
1941 msgctxt "Link individual (contextual menu)"
1942 msgid "_Link…"
1943 msgstr "_Ligar..."
1944
18641945 # rever
18651946 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
18661947 msgid "new server"
18781959 msgid "SSL"
18791960 msgstr "SSL"
18801961
1881 #: ../libempathy-gtk/empathy-log-window.c:632
1962 # rever
1963 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1964 msgid "Link Contacts"
1965 msgstr "Ligar contactos"
1966
1967 #. Add button
1968 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1969 msgid "_Link"
1970 msgstr "_Ligar"
1971
1972 #: ../libempathy-gtk/empathy-log-window.c:646
18821973 #: ../src/empathy-import-widget.c:312
18831974 msgid "Account"
18841975 msgstr "Conta"
18851976
1886 #: ../libempathy-gtk/empathy-log-window.c:649
1977 #: ../libempathy-gtk/empathy-log-window.c:663
18871978 msgid "Date"
18881979 msgstr "Data"
18891980
1890 #: ../libempathy-gtk/empathy-log-window.ui.h:1
1981 #. Tab Label
1982 #: ../libempathy-gtk/empathy-log-window.ui.h:2
18911983 msgid "Conversations"
18921984 msgstr "Conversas"
18931985
1894 # rever
1895 #: ../libempathy-gtk/empathy-log-window.ui.h:2
1986 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1987 msgid "Find next"
1988 msgstr "Buscar seguinte"
1989
1990 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1991 msgid "Find previous"
1992 msgstr "Buscar anterior"
1993
1994 # rever
1995 #: ../libempathy-gtk/empathy-log-window.ui.h:5
18961996 msgid "Previous Conversations"
18971997 msgstr "Conversas previas"
18981998
1899 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1999 #. Tab Label
2000 #: ../libempathy-gtk/empathy-log-window.ui.h:7
19002001 msgid "Search"
19012002 msgstr "Buscar"
19022003
19032004 # rever
1904 #: ../libempathy-gtk/empathy-log-window.ui.h:4
2005 #. Searching *for* something
2006 #: ../libempathy-gtk/empathy-log-window.ui.h:9
19052007 msgid "_For:"
19062008 msgstr "_Por:"
19072009
19222024
19232025 # rever
19242026 #. add video toggle
1925 #: ../libempathy-gtk/empathy-new-call-dialog.c:190
2027 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
19262028 msgid "Send _Video"
19272029 msgstr "Enviar _Vídeo"
19282030
19292031 #. add chat button
1930 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1931 #: ../src/empathy-call-window.ui.h:22
2032 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
2033 #: ../src/empathy-call-window.ui.h:24
19322034 msgid "_Call"
19332035 msgstr "_Chamar"
19342036
19352037 #. Tweak the dialog
1936 #: ../libempathy-gtk/empathy-new-call-dialog.c:208
2038 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
19372039 msgid "New Call"
19382040 msgstr "Nova chamada"
19392041
20672169 msgid "Blue"
20682170 msgstr "Azul"
20692171
2070 #: ../libempathy-gtk/empathy-ui-utils.c:1696
2172 #: ../libempathy-gtk/empathy-ui-utils.c:1697
20712173 msgid "Unable to open URI"
20722174 msgstr "Non foi posíbel abrir o URI"
20732175
2074 #: ../libempathy-gtk/empathy-ui-utils.c:1791
2176 #: ../libempathy-gtk/empathy-ui-utils.c:1792
20752177 msgid "Select a file"
20762178 msgstr "Seleccione un ficheiro"
20772179
2078 #: ../libempathy-gtk/empathy-ui-utils.c:1860
2180 #: ../libempathy-gtk/empathy-ui-utils.c:1861
20792181 #, c-format
20802182 msgid "Incoming file from %s"
20812183 msgstr "Ficheiro entrante de %s"
22672369 msgstr "Mensaxe instantáneo (Empathy)"
22682370
22692371 # rever
2270 #: ../src/empathy.c:474
2372 #: ../src/empathy.c:414
22712373 msgid "Don't connect on startup"
22722374 msgstr "Non conectarse ao inicio"
22732375
22742376 # rever
2275 #: ../src/empathy.c:478
2377 #: ../src/empathy.c:418
22762378 msgid "Don't display the contact list or any other dialogs on startup"
22772379 msgstr "Non mostrar a lista de contactos nin outros diálogos no inicio"
22782380
22792381 # rever
2280 #: ../src/empathy.c:490
2382 #: ../src/empathy.c:435
22812383 msgid "- Empathy IM Client"
22822384 msgstr "- Cliente de mensaxaría instantánea Empathy"
22832385
23652467 "deste asistente e engadir as contas máis tarde desde o menú Editar."
23662468
23672469 #: ../src/empathy-account-assistant.c:220
2368 #: ../src/empathy-account-assistant.c:1315
2470 #: ../src/empathy-account-assistant.c:1311
23692471 msgid "An error occurred"
23702472 msgstr "Produciuse un erro"
23712473
24512553 msgid "No, that's all for now"
24522554 msgstr "Non, isto é todo por agora"
24532555
2454 #: ../src/empathy-account-assistant.c:1129
2556 #: ../src/empathy-account-assistant.c:1125
24552557 msgid ""
24562558 "Empathy can automatically discover and chat with the people connected on the "
24572559 "same network as you. If you want to use this feature, please check that the "
24642566 "detalles máis tarde ou desactivar esta característica usando o diálogo "
24652567 "\"Contas\""
24662568
2467 #: ../src/empathy-account-assistant.c:1135
2468 #: ../src/empathy-account-assistant.c:1191
2569 #: ../src/empathy-account-assistant.c:1131
2570 #: ../src/empathy-account-assistant.c:1187
24692571 msgid "Edit->Accounts"
24702572 msgstr "Editar->Contas"
24712573
2472 #: ../src/empathy-account-assistant.c:1151
2574 #: ../src/empathy-account-assistant.c:1147
24732575 msgid "I don't want to enable this feature for now"
24742576 msgstr "Non quero activar esta característica agora"
24752577
2476 #: ../src/empathy-account-assistant.c:1187
2578 #: ../src/empathy-account-assistant.c:1183
24772579 msgid ""
24782580 "You won't be able to chat with people connected to your local network, as "
24792581 "telepathy-salut is not installed. If you want to enable this feature, please "
24852587 "Se quere activar esta característica, instale o paquete telepathy-salut e "
24862588 "cree unha conta de Xente próxima desde o diálogo Contas"
24872589
2488 #: ../src/empathy-account-assistant.c:1193
2590 #: ../src/empathy-account-assistant.c:1189
24892591 msgid "telepathy-salut not installed"
24902592 msgstr "telepathy-salut non está instalado"
24912593
2492 #: ../src/empathy-account-assistant.c:1239
2594 #: ../src/empathy-account-assistant.c:1235
24932595 msgid "Messaging and VoIP Accounts Assistant"
24942596 msgstr "Asistente de contas de mensaxaría e VoIP"
24952597
2496 #: ../src/empathy-account-assistant.c:1273
2598 #: ../src/empathy-account-assistant.c:1269
24972599 msgid "Welcome to Empathy"
24982600 msgstr "Benvido/a ao Empathy"
24992601
25002602 # rever
2501 #: ../src/empathy-account-assistant.c:1282
2603 #: ../src/empathy-account-assistant.c:1278
25022604 msgid "Import your existing accounts"
25032605 msgstr "_Importar as súas contas existentes"
25042606
2505 #: ../src/empathy-account-assistant.c:1300
2607 #: ../src/empathy-account-assistant.c:1296
25062608 msgid "Please enter personal details"
25072609 msgstr "Insira os detalles persoais"
25082610
25192621 msgid "Your new account has not been saved yet."
25202622 msgstr "A súa nova conta aínda non foi gardada."
25212623
2522 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
2624 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:808
25232625 msgid "Connecting…"
25242626 msgstr "Conectando..."
25252627
26232725 msgid "Empathy Audio/Video Client"
26242726 msgstr "Cliente de son/vídeo Empathy"
26252727
2626 #: ../src/empathy-call-window.c:470
2728 #: ../src/empathy-call-window.c:479
26272729 msgid "Contrast"
26282730 msgstr "Contraste"
26292731
2630 #: ../src/empathy-call-window.c:473
2732 #: ../src/empathy-call-window.c:482
26312733 msgid "Brightness"
26322734 msgstr "Brillo"
26332735
2634 #: ../src/empathy-call-window.c:476
2736 #: ../src/empathy-call-window.c:485
26352737 msgid "Gamma"
26362738 msgstr "Gamma"
26372739
2638 #: ../src/empathy-call-window.c:581
2740 #: ../src/empathy-call-window.c:590
26392741 msgid "Volume"
26402742 msgstr "Volume"
26412743
2642 #: ../src/empathy-call-window.c:1146
2744 #: ../src/empathy-call-window.c:1163
26432745 msgid "_Sidebar"
26442746 msgstr "Barra _lateral"
26452747
26462748 # rever
2647 #: ../src/empathy-call-window.c:1165
2749 #: ../src/empathy-call-window.c:1182
26482750 msgid "Audio input"
26492751 msgstr "Entrada de audio"
26502752
26512753 # rever
2652 #: ../src/empathy-call-window.c:1169
2754 #: ../src/empathy-call-window.c:1186
26532755 msgid "Video input"
26542756 msgstr "Entrada de vídeo"
26552757
2656 #: ../src/empathy-call-window.c:1173
2758 #: ../src/empathy-call-window.c:1190
26572759 msgid "Dialpad"
26582760 msgstr "Marcador"
26592761
26602762 # rever
2661 #: ../src/empathy-call-window.c:1178
2763 #: ../src/empathy-call-window.c:1195
26622764 msgid "Details"
26632765 msgstr "Detalles do contacto"
26642766
26652767 #. translators: Call is a noun and %s is the contact name. This string
26662768 #. * is used in the window title
2667 #: ../src/empathy-call-window.c:1246
2769 #: ../src/empathy-call-window.c:1263
26682770 #, c-format
26692771 msgid "Call with %s"
26702772 msgstr "Chamar con %s"
26712773
26722774 #. translators: Call is a noun. This string is used in the window
26732775 #. * title
2674 #: ../src/empathy-call-window.c:1325
2776 #: ../src/empathy-call-window.c:1342
26752777 msgid "Call"
26762778 msgstr "Chamar"
26772779
2780 #: ../src/empathy-call-window.c:1496
2781 msgid "The IP address as seen by the machine"
2782 msgstr "O enderezo IP como é visto polo computador"
2783
2784 #: ../src/empathy-call-window.c:1498
2785 msgid "The IP address as seen by a server on the Internet"
2786 msgstr "O enderezo IP como é visto por un servidor na Internet"
2787
2788 #: ../src/empathy-call-window.c:1500
2789 msgid "The IP address of the peer as seen by the other side"
2790 msgstr "O enderezo IP do par como é visto pola outra parte"
2791
2792 #: ../src/empathy-call-window.c:1502
2793 msgid "The IP address of a relay server"
2794 msgstr "O enderezo IP dun servidor de desvío"
2795
2796 #: ../src/empathy-call-window.c:1504
2797 msgid "The IP address of the multicast group"
2798 msgstr "O enderezo IP do grupo multicast"
2799
26782800 # rever
26792801 #. Translators: number of minutes:seconds the caller has been connected
2680 #: ../src/empathy-call-window.c:2117
2802 #: ../src/empathy-call-window.c:2237
26812803 #, c-format
26822804 msgid "Connected — %d:%02dm"
26832805 msgstr "Conectado — %d:%02dm"
26842806
26852807 # rever
2686 #: ../src/empathy-call-window.c:2178
2808 #: ../src/empathy-call-window.c:2298
26872809 msgid "Technical Details"
26882810 msgstr "Detalles técnicos"
26892811
2690 #: ../src/empathy-call-window.c:2216
2812 #: ../src/empathy-call-window.c:2336
26912813 #, c-format
26922814 msgid ""
26932815 "%s's software does not understand any of the audio formats supported by your "
26962818 "O software de %s non entende algúns dos formatos de video admitidos polo seu "
26972819 "computador"
26982820
2699 #: ../src/empathy-call-window.c:2221
2821 #: ../src/empathy-call-window.c:2341
27002822 #, c-format
27012823 msgid ""
27022824 "%s's software does not understand any of the video formats supported by your "
27052827 "O software de %s non entende algúns dos formatos de vídeo admitidos polo seu "
27062828 "computador"
27072829
2708 #: ../src/empathy-call-window.c:2227
2830 #: ../src/empathy-call-window.c:2347
27092831 #, c-format
27102832 msgid ""
27112833 "Can't establish a connection to %s. One of you might be on a network that "
27142836 "Non é posíbel estabelecer unha conexión a %s. Un deles pode estar nunha rede "
27152837 "que non permite conexións directas."
27162838
2717 #: ../src/empathy-call-window.c:2233
2839 #: ../src/empathy-call-window.c:2353
27182840 msgid "There was a failure on the network"
27192841 msgstr "Produciuse un fallo na rede"
27202842
2721 #: ../src/empathy-call-window.c:2237
2843 #: ../src/empathy-call-window.c:2357
27222844 msgid ""
27232845 "The audio formats necessary for this call are not installed on your computer"
27242846 msgstr "Non ten instalados os formatos de audio necesarios neste computador"
27252847
2726 #: ../src/empathy-call-window.c:2240
2848 #: ../src/empathy-call-window.c:2360
27272849 msgid ""
27282850 "The video formats necessary for this call are not installed on your computer"
27292851 msgstr "Non ten instalados os formatos de vídeo necesarios neste computador"
27302852
2731 #: ../src/empathy-call-window.c:2250
2853 #: ../src/empathy-call-window.c:2370
27322854 #, c-format
27332855 msgid ""
27342856 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
27392861 "s»>Informe de este erro</a> e anexe os rexistros que pode ollar na xanela "
27402862 "«Depurar» no menú Axuda."
27412863
2742 #: ../src/empathy-call-window.c:2258
2864 #: ../src/empathy-call-window.c:2378
27432865 msgid "There was a failure in the call engine"
27442866 msgstr "Produciuse un fallo ao chamar ao motor"
27452867
2746 #: ../src/empathy-call-window.c:2297
2868 #: ../src/empathy-call-window.c:2381
2869 msgid "The end of the stream was reached"
2870 msgstr "Chegouse ao final do fluxo"
2871
2872 #: ../src/empathy-call-window.c:2421
27472873 msgid "Can't establish audio stream"
27482874 msgstr "Non é posíbel estabelecer un fluxo de audio"
27492875
2750 #: ../src/empathy-call-window.c:2307
2876 #: ../src/empathy-call-window.c:2431
27512877 msgid "Can't establish video stream"
27522878 msgstr "Non é posíbel estabelecer un fluxo de vídeo"
27532879
27972923 msgstr "Colgar chamada actual"
27982924
27992925 #: ../src/empathy-call-window.ui.h:12
2926 msgid "Local Candidate:"
2927 msgstr "Candidato local:"
2928
2929 #: ../src/empathy-call-window.ui.h:13
28002930 msgid "Preview"
28012931 msgstr "Previsualizar"
28022932
2803 #: ../src/empathy-call-window.ui.h:13
2933 #: ../src/empathy-call-window.ui.h:14
28042934 msgid "Redial"
28052935 msgstr "Remarcación"
28062936
2807 # rever
2808 #: ../src/empathy-call-window.ui.h:14
2937 #: ../src/empathy-call-window.ui.h:15
2938 msgid "Remote Candidate:"
2939 msgstr "Candidato remoto:"
2940
2941 # rever
2942 #: ../src/empathy-call-window.ui.h:16
28092943 msgid "Send Audio"
28102944 msgstr "Enviar audio"
28112945
2812 #: ../src/empathy-call-window.ui.h:15
2946 #: ../src/empathy-call-window.ui.h:17
28132947 msgid "Toggle audio transmission"
28142948 msgstr "Activar/desactivar transmisión de audio"
28152949
2816 #: ../src/empathy-call-window.ui.h:17
2950 #: ../src/empathy-call-window.ui.h:19
28172951 msgid "V_ideo"
28182952 msgstr "V_ídeo"
28192953
2820 #: ../src/empathy-call-window.ui.h:18
2954 #: ../src/empathy-call-window.ui.h:20
28212955 msgid "Video"
28222956 msgstr "V_ídeo"
28232957
28242958 # rever
2825 #: ../src/empathy-call-window.ui.h:19
2959 #: ../src/empathy-call-window.ui.h:21
28262960 msgid "Video Off"
28272961 msgstr "Vídeo desactivado"
28282962
28292963 # rever
2830 #: ../src/empathy-call-window.ui.h:20
2964 #: ../src/empathy-call-window.ui.h:22
28312965 msgid "Video On"
28322966 msgstr "Vídeo activado"
28332967
2834 #: ../src/empathy-call-window.ui.h:21
2968 #: ../src/empathy-call-window.ui.h:23
28352969 msgid "Video Preview"
28362970 msgstr "Previsualizar o vídeo"
28372971
2838 #: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:27
2972 #: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:27
28392973 msgid "_View"
28402974 msgstr "_Ver"
28412975
29713105 msgstr "Xestionar as salas preferidas"
29723106
29733107 # rever
2974 #: ../src/empathy-event-manager.c:473
3108 #: ../src/empathy-event-manager.c:471
29753109 msgid "Incoming video call"
29763110 msgstr "Chamada de vídeo entrante"
29773111
29783112 # rever
2979 #: ../src/empathy-event-manager.c:473
3113 #: ../src/empathy-event-manager.c:471
29803114 msgid "Incoming call"
29813115 msgstr "Chamada entrante"
29823116
29833117 # rever
2984 #: ../src/empathy-event-manager.c:477
3118 #: ../src/empathy-event-manager.c:475
29853119 #, c-format
29863120 msgid "%s is video calling you. Do you want to answer?"
29873121 msgstr "%s solicítalle unha videochamada. Desexa responderlle?"
29883122
29893123 # rever
2990 #: ../src/empathy-event-manager.c:478
3124 #: ../src/empathy-event-manager.c:476
29913125 #, c-format
29923126 msgid "%s is calling you. Do you want to answer?"
29933127 msgstr "%s estao chamando. Quérelle responder?"
29943128
2995 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
3129 #: ../src/empathy-event-manager.c:479 ../src/empathy-event-manager.c:621
29963130 #, c-format
29973131 msgid "Incoming call from %s"
29983132 msgstr "Chamada entrante de %s"
29993133
3000 #: ../src/empathy-event-manager.c:506
3134 #: ../src/empathy-event-manager.c:504
30013135 msgid "_Reject"
30023136 msgstr "_Rexeitar"
30033137
30043138 # rever
3005 #: ../src/empathy-event-manager.c:512
3139 #: ../src/empathy-event-manager.c:510
30063140 msgid "_Answer"
30073141 msgstr "_Responder"
30083142
3009 #: ../src/empathy-event-manager.c:623
3143 #: ../src/empathy-event-manager.c:621
30103144 #, c-format
30113145 msgid "Incoming video call from %s"
30123146 msgstr "Videochamada entrante de %s"
30133147
30143148 # rever
3015 #: ../src/empathy-event-manager.c:700
3149 #: ../src/empathy-event-manager.c:698
30163150 msgid "Room invitation"
30173151 msgstr "Convite para unha sala"
30183152
30193153 # rever
3020 #: ../src/empathy-event-manager.c:702
3154 #: ../src/empathy-event-manager.c:700
30213155 #, c-format
30223156 msgid "Invitation to join %s"
30233157 msgstr "Invitación a unirse a %s"
30243158
30253159 # rever
3026 #: ../src/empathy-event-manager.c:709
3160 #: ../src/empathy-event-manager.c:707
30273161 #, c-format
30283162 msgid "%s is inviting you to join %s"
30293163 msgstr "%s estao convidando a unirse a %s"
30303164
3031 #: ../src/empathy-event-manager.c:717
3165 #: ../src/empathy-event-manager.c:715
30323166 msgid "_Decline"
30333167 msgstr "_Declinar"
30343168
3035 #: ../src/empathy-event-manager.c:722
3169 #: ../src/empathy-event-manager.c:720
30363170 #: ../src/empathy-new-chatroom-dialog.ui.h:7
30373171 msgid "_Join"
30383172 msgstr "_Unirse"
30393173
30403174 # rever
3041 #: ../src/empathy-event-manager.c:760
3175 #: ../src/empathy-event-manager.c:758
30423176 #, c-format
30433177 msgid "%s invited you to join %s"
30443178 msgstr "%s convidouno a unirse a %s"
30453179
30463180 # rever
3047 #: ../src/empathy-event-manager.c:787
3181 #: ../src/empathy-event-manager.c:785
30483182 #, c-format
30493183 msgid "Incoming file transfer from %s"
30503184 msgstr "Transferencia de ficheiro entrante de %s"
30513185
30523186 # rever
3053 #: ../src/empathy-event-manager.c:988
3187 #: ../src/empathy-event-manager.c:986
30543188 #, c-format
30553189 msgid "Subscription requested by %s"
30563190 msgstr "Subscrición solicitada por %s"
30573191
3058 #: ../src/empathy-event-manager.c:992
3192 #: ../src/empathy-event-manager.c:990
30593193 #, c-format
30603194 msgid ""
30613195 "\n"
30643198 "\n"
30653199 "Mensaxe: %s"
30663200
3067 #: ../src/empathy-event-manager.c:1035
3201 #: ../src/empathy-event-manager.c:1033
30683202 #, c-format
30693203 msgid "%s is now offline."
30703204 msgstr "%s está agora desconectado."
30713205
3072 #: ../src/empathy-event-manager.c:1055
3206 #: ../src/empathy-event-manager.c:1053
30733207 #, c-format
30743208 msgid "%s is now online."
30753209 msgstr "%s está agora conectado."
31753309 msgid "Hashing \"%s\""
31763310 msgstr "Aplicando o hash «%s»"
31773311
3178 #: ../src/empathy-ft-manager.c:990
3312 #: ../src/empathy-ft-manager.c:996
31793313 msgid "%"
31803314 msgstr "%"
31813315
3182 #: ../src/empathy-ft-manager.c:1002
3316 #: ../src/empathy-ft-manager.c:1008
31833317 msgid "File"
31843318 msgstr "Ficheiro"
31853319
3186 #: ../src/empathy-ft-manager.c:1024
3320 #: ../src/empathy-ft-manager.c:1030
31873321 msgid "Remaining"
31883322 msgstr "Restantes"
31893323
32253359 msgid "Source"
32263360 msgstr "Orixe"
32273361
3228 #: ../src/empathy-main-window.c:476
3362 # rever
3363 #. Labels for empty contact list
3364 #: ../src/empathy-main-window.c:95
3365 msgid "No match found"
3366 msgstr "Non se encontrou ningunha coincidencia."
3367
3368 #: ../src/empathy-main-window.c:519
32293369 msgid "Reconnect"
32303370 msgstr "Reconectar"
32313371
3232 #: ../src/empathy-main-window.c:482
3372 #: ../src/empathy-main-window.c:525
32333373 msgid "Edit Account"
32343374 msgstr "Editar a conta"
32353375
3236 #: ../src/empathy-main-window.c:488
3376 #: ../src/empathy-main-window.c:531
32373377 msgid "Close"
32383378 msgstr "Pechar"
32393379
3240 #: ../src/empathy-main-window.c:1177
3380 #: ../src/empathy-main-window.c:1213
32413381 msgid "Contact"
32423382 msgstr "Contacto"
32433383
3244 #: ../src/empathy-main-window.c:1501
3384 #: ../src/empathy-main-window.c:1538
32453385 msgid "Contact List"
32463386 msgstr "Lista de contactos"
32473387
32483388 # rever
3249 #: ../src/empathy-main-window.c:1608
3389 #: ../src/empathy-main-window.c:1647
32503390 msgid "Show and edit accounts"
32513391 msgstr "Mostrar e editar contas"
32523392
34053545 msgid "_Room:"
34063546 msgstr "Sa_la:"
34073547
3408 #: ../src/empathy-preferences.c:136
3548 #: ../src/empathy-preferences.c:138
34093549 msgid "Message received"
34103550 msgstr "Mensaxe recibida"
34113551
3412 #: ../src/empathy-preferences.c:137
3552 #: ../src/empathy-preferences.c:139
34133553 msgid "Message sent"
34143554 msgstr "Mensaxe enviada"
34153555
3416 #: ../src/empathy-preferences.c:138
3556 #: ../src/empathy-preferences.c:140
34173557 msgid "New conversation"
34183558 msgstr "Conversa nova"
34193559
34203560 # rever
3421 #: ../src/empathy-preferences.c:139
3561 #: ../src/empathy-preferences.c:141
34223562 msgid "Contact goes online"
34233563 msgstr "O contacto conéctase"
34243564
34253565 # rever
3426 #: ../src/empathy-preferences.c:140
3566 #: ../src/empathy-preferences.c:142
34273567 msgid "Contact goes offline"
34283568 msgstr "O contacto desconéctase"
34293569
34303570 # rever
3431 #: ../src/empathy-preferences.c:141
3571 #: ../src/empathy-preferences.c:143
34323572 msgid "Account connected"
34333573 msgstr "Conta conectada"
34343574
34353575 # rever
3436 #: ../src/empathy-preferences.c:142
3576 #: ../src/empathy-preferences.c:144
34373577 msgid "Account disconnected"
34383578 msgstr "Conta desconectada"
34393579
3440 #: ../src/empathy-preferences.c:437
3580 #: ../src/empathy-preferences.c:445
34413581 msgid "Language"
34423582 msgstr "Idioma"
34433583
3444 #: ../src/empathy-preferences.c:873
3584 #: ../src/empathy-preferences.c:882
34453585 msgid "Preferences"
34463586 msgstr "Preferencias"
34473587
35013641 msgstr "Fontes de localización:"
35023642
35033643 #: ../src/empathy-preferences.ui.h:14
3644 msgid "Log conversations"
3645 msgstr "Rexistrar conversas"
3646
3647 #: ../src/empathy-preferences.ui.h:15
35043648 msgid "Notifications"
35053649 msgstr "Notificacións"
35063650
35073651 # rever
3508 #: ../src/empathy-preferences.ui.h:15
3652 #: ../src/empathy-preferences.ui.h:16
35093653 msgid "Play sound for events"
35103654 msgstr "Reproducir un son para os eventos"
35113655
3512 #: ../src/empathy-preferences.ui.h:16
3656 #: ../src/empathy-preferences.ui.h:17
35133657 msgid "Privacy"
35143658 msgstr "Privacidade"
35153659
3516 #: ../src/empathy-preferences.ui.h:17
3660 #: ../src/empathy-preferences.ui.h:18
35173661 msgid ""
35183662 "Reduced location accuracy means that nothing more precise than your city, "
35193663 "state and country will be published. GPS coordinates will be accurate to 1 "
35243668 "aproximadas a 1 valor decimal."
35253669
35263670 # rever
3527 #: ../src/empathy-preferences.ui.h:18
3671 #: ../src/empathy-preferences.ui.h:19
35283672 msgid "Show _smileys as images"
35293673 msgstr "Mostrar as _emoticonas como imaxes"
35303674
35313675 # rever
3532 #: ../src/empathy-preferences.ui.h:19
3676 #: ../src/empathy-preferences.ui.h:20
35333677 msgid "Show contact _list in rooms"
35343678 msgstr "Mostrar a _lista de contactos nas salas"
35353679
3536 #: ../src/empathy-preferences.ui.h:20
3680 #: ../src/empathy-preferences.ui.h:21
35373681 msgid "Sounds"
35383682 msgstr "Sons"
35393683
3540 #: ../src/empathy-preferences.ui.h:21
3684 #: ../src/empathy-preferences.ui.h:22
35413685 msgid "Spell Checking"
35423686 msgstr "Verificación ortográfica"
35433687
35443688 # rever
3545 #: ../src/empathy-preferences.ui.h:22
3689 #: ../src/empathy-preferences.ui.h:23
35463690 msgid ""
35473691 "The list of languages reflects only the languages for which you have a "
35483692 "dictionary installed."
35503694 "A lista de idiomas reflicte só naqueles idiomas para os que ten un "
35513695 "dicionario instalado."
35523696
3553 #: ../src/empathy-preferences.ui.h:23
3697 #: ../src/empathy-preferences.ui.h:24
35543698 msgid "Themes"
35553699 msgstr "Temas"
35563700
35573701 # rever
3558 #: ../src/empathy-preferences.ui.h:24
3702 #: ../src/empathy-preferences.ui.h:25
35593703 msgid "_Automatically connect on startup"
35603704 msgstr "_Conectar automaticamente ao iniciar"
35613705
35623706 # rever
3563 #: ../src/empathy-preferences.ui.h:25
3707 #: ../src/empathy-preferences.ui.h:26
35643708 msgid "_Cellphone"
35653709 msgstr "_Teléfono móbil"
35663710
35673711 # rever
3568 #: ../src/empathy-preferences.ui.h:26
3712 #: ../src/empathy-preferences.ui.h:27
35693713 msgid "_Enable bubble notifications"
35703714 msgstr "_Activar as burbullas de notificación"
35713715
35723716 # rever
3573 #: ../src/empathy-preferences.ui.h:27
3717 #: ../src/empathy-preferences.ui.h:28
35743718 msgid "_Enable sound notifications"
35753719 msgstr "_Activar as notificacións de son"
35763720
3577 #: ../src/empathy-preferences.ui.h:28
3721 #: ../src/empathy-preferences.ui.h:29
35783722 msgid "_GPS"
35793723 msgstr "_GPS"
35803724
3581 #: ../src/empathy-preferences.ui.h:29
3725 #: ../src/empathy-preferences.ui.h:30
35823726 msgid "_Network (IP, Wi-Fi)"
35833727 msgstr "_Rede (IP, Wifi)"
35843728
35853729 # rever
3586 #: ../src/empathy-preferences.ui.h:30
3730 #: ../src/empathy-preferences.ui.h:31
35873731 msgid "_Open new chats in separate windows"
35883732 msgstr "A_brir as conversas novas en xanelas separadas"
35893733
3590 #: ../src/empathy-preferences.ui.h:31
3734 #: ../src/empathy-preferences.ui.h:32
35913735 msgid "_Publish location to my contacts"
35923736 msgstr "_Publicar a miña localización aos meus contactos"
35933737
3594 #: ../src/empathy-preferences.ui.h:32
3738 #. 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.
3739 #: ../src/empathy-preferences.ui.h:34
35953740 msgid "_Reduce location accuracy"
35963741 msgstr "_Reducir a precisión de localización"
35973742
36243769 msgid "_Quit"
36253770 msgstr "_Saír"
36263771
3627 #: ../src/empathy-map-view.ui.h:1
3772 #: ../src/empathy-map-view.c:452
36283773 msgid "Contact Map View"
36293774 msgstr "Vista de mapa de contactos"
36303775
37363881 #: ../src/empathy-debugger.c:40
37373882 msgid "Empathy Debugger"
37383883 msgstr "Depurador de Empathy"
3884
3885 # rever
3886 #~ msgid "Your contact list is empty"
3887 #~ msgstr "A súa lista de contactos está baleira"
37393888
37403889 # rever
37413890 #~ msgid "Send and receive messages"
+359
-225
po/he.po less more
55 msgstr ""
66 "Project-Id-Version: empathy\n"
77 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2010-07-24 13:14+0300\n"
9 "PO-Revision-Date: 2010-07-24 13:26+0200\n"
8 "POT-Creation-Date: 2010-08-17 01:58+0300\n"
9 "PO-Revision-Date: 2010-08-17 02:00+0200\n"
1010 "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
1111 "Language-Team: \n"
1212 "MIME-Version: 1.0\n"
453453 msgid "Messaging and VoIP Accounts"
454454 msgstr "חשבונות התכתבות ו־VoIP"
455455
456 #: ../libempathy/empathy-ft-handler.c:843
456 #: ../libempathy/empathy-ft-handler.c:851
457457 msgid "The hash of the received file and the sent one do not match"
458458 msgstr "סכום גיבוב של הקובץ הנשלח והקובץ שהתקבל אינו תואם"
459459
460 #: ../libempathy/empathy-ft-handler.c:1103
460 #: ../libempathy/empathy-ft-handler.c:1111
461461 msgid "File transfer not supported by remote contact"
462462 msgstr "העברת קבצים לא נתמכת על ידי איש הקשר המרוחק"
463463
464 #: ../libempathy/empathy-ft-handler.c:1161
464 #: ../libempathy/empathy-ft-handler.c:1169
465465 msgid "The selected file is not a regular file"
466466 msgstr "הקובץ הנבחר אינו קובץ רגיל"
467467
468 #: ../libempathy/empathy-ft-handler.c:1170
468 #: ../libempathy/empathy-ft-handler.c:1178
469469 msgid "The selected file is empty"
470470 msgstr "הקובץ הנבחר ריק"
471471
472 #: ../libempathy/empathy-tp-file.c:281
472 #: ../libempathy/empathy-tp-file.c:283
473473 msgid "Socket type not supported"
474474 msgstr "סוג השקע אינו נתמך"
475475
476 #: ../libempathy/empathy-tp-file.c:400
476 #: ../libempathy/empathy-tp-file.c:402
477477 msgid "No reason was specified"
478478 msgstr "לא צוינה סיבה"
479479
480 #: ../libempathy/empathy-tp-file.c:403
480 #: ../libempathy/empathy-tp-file.c:405
481481 msgid "The change in state was requested"
482482 msgstr "התבקש שינוי המצב"
483483
484 #: ../libempathy/empathy-tp-file.c:406
484 #: ../libempathy/empathy-tp-file.c:408
485485 msgid "You canceled the file transfer"
486486 msgstr "ביטלת את ההעברה"
487487
488 #: ../libempathy/empathy-tp-file.c:409
488 #: ../libempathy/empathy-tp-file.c:411
489489 msgid "The other participant canceled the file transfer"
490490 msgstr "המשתתף האחר ביטל את העברת הקובץ"
491491
492 #: ../libempathy/empathy-tp-file.c:412
492 #: ../libempathy/empathy-tp-file.c:414
493493 msgid "Error while trying to transfer the file"
494494 msgstr "התרחשה שגיאה בזמן ניסיון העברת הקובץ"
495495
496 #: ../libempathy/empathy-tp-file.c:415
496 #: ../libempathy/empathy-tp-file.c:417
497497 msgid "The other participant is unable to transfer the file"
498498 msgstr "המשתתף האחר לא יכול להעביר את הקובץ"
499499
500 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:320
500 #: ../libempathy/empathy-tp-file.c:420 ../libempathy/empathy-utils.c:320
501501 msgid "Unknown reason"
502502 msgstr "סיבה לא ידועה"
503503
504 #: ../libempathy/empathy-utils.c:243
504 #: ../libempathy/empathy-utils.c:242
505505 msgid "Available"
506506 msgstr "זמין"
507507
508 #: ../libempathy/empathy-utils.c:245
508 #: ../libempathy/empathy-utils.c:244
509509 msgid "Busy"
510510 msgstr "עסוק"
511511
512 #: ../libempathy/empathy-utils.c:248
512 #: ../libempathy/empathy-utils.c:247
513513 msgid "Away"
514514 msgstr "מרוחק"
515515
516 #: ../libempathy/empathy-utils.c:250
516 #: ../libempathy/empathy-utils.c:249
517517 msgid "Invisible"
518518 msgstr "בלתי נראה"
519519
520 #: ../libempathy/empathy-utils.c:252
520 #: ../libempathy/empathy-utils.c:251
521521 msgid "Offline"
522522 msgstr "לא מחובר"
523523
524 #: ../libempathy/empathy-utils.c:254 ../src/empathy-call-window.c:1763
525 #: ../src/empathy-call-window.c:1764 ../src/empathy-call-window.c:1765
526 #: ../src/empathy-call-window.c:1766 ../src/empathy-call-window.ui.h:16
524 #: ../libempathy/empathy-utils.c:253 ../src/empathy-call-window.c:1883
525 #: ../src/empathy-call-window.c:1884 ../src/empathy-call-window.c:1885
526 #: ../src/empathy-call-window.c:1886 ../src/empathy-call-window.ui.h:18
527527 msgid "Unknown"
528528 msgstr "לא ידוע"
529529
531531 msgid "No reason specified"
532532 msgstr "לא צויינה סיבה"
533533
534 #: ../libempathy/empathy-utils.c:294
534 #: ../libempathy/empathy-utils.c:294 ../libempathy/empathy-utils.c:350
535535 msgid "Status is set to offline"
536536 msgstr "המצב מוגדר כמנותק"
537537
538 #: ../libempathy/empathy-utils.c:296
538 #: ../libempathy/empathy-utils.c:296 ../libempathy/empathy-utils.c:330
539539 msgid "Network error"
540540 msgstr "שגיאת רשת"
541541
542 #: ../libempathy/empathy-utils.c:298
542 #: ../libempathy/empathy-utils.c:298 ../libempathy/empathy-utils.c:332
543543 msgid "Authentication failed"
544544 msgstr "האימות נכשל"
545545
546 #: ../libempathy/empathy-utils.c:300
546 #: ../libempathy/empathy-utils.c:300 ../libempathy/empathy-utils.c:334
547547 msgid "Encryption error"
548548 msgstr "שגיאת הצפנה"
549549
551551 msgid "Name in use"
552552 msgstr "השם בשימוש"
553553
554 #: ../libempathy/empathy-utils.c:304
554 #: ../libempathy/empathy-utils.c:304 ../libempathy/empathy-utils.c:336
555555 msgid "Certificate not provided"
556556 msgstr "לא סופקה תעודה"
557557
558 #: ../libempathy/empathy-utils.c:306
558 #: ../libempathy/empathy-utils.c:306 ../libempathy/empathy-utils.c:338
559559 msgid "Certificate untrusted"
560560 msgstr "התעודה אינה מאובטחת"
561561
562 #: ../libempathy/empathy-utils.c:308
562 #: ../libempathy/empathy-utils.c:308 ../libempathy/empathy-utils.c:340
563563 msgid "Certificate expired"
564564 msgstr "התעודה לא תקפה"
565565
566 #: ../libempathy/empathy-utils.c:310
566 #: ../libempathy/empathy-utils.c:310 ../libempathy/empathy-utils.c:342
567567 msgid "Certificate not activated"
568568 msgstr "התעודה אינה פעילה"
569569
570 #: ../libempathy/empathy-utils.c:312
570 #: ../libempathy/empathy-utils.c:312 ../libempathy/empathy-utils.c:344
571571 msgid "Certificate hostname mismatch"
572572 msgstr "שם המארח בתעודה לא תואם"
573573
574 #: ../libempathy/empathy-utils.c:314
574 #: ../libempathy/empathy-utils.c:314 ../libempathy/empathy-utils.c:346
575575 msgid "Certificate fingerprint mismatch"
576576 msgstr "טביעת האצבע של התעודה אינה תואמת"
577577
578 #: ../libempathy/empathy-utils.c:316
578 #: ../libempathy/empathy-utils.c:316 ../libempathy/empathy-utils.c:348
579579 msgid "Certificate self-signed"
580580 msgstr "תעודה בחתימה עצמית"
581581
583583 msgid "Certificate error"
584584 msgstr "שגיאת תעודה"
585585
586 #: ../libempathy/empathy-utils.c:435
586 #: ../libempathy/empathy-utils.c:352
587 msgid "Encryption is not available"
588 msgstr "אין הצפנה זמינה"
589
590 #: ../libempathy/empathy-utils.c:354
591 msgid "Certificate is invalid"
592 msgstr "התעודה שגויה"
593
594 #: ../libempathy/empathy-utils.c:356
595 msgid "Connection has been refused"
596 msgstr "החיבור נתקל בסירוב"
597
598 #: ../libempathy/empathy-utils.c:358
599 msgid "Connection can't be established"
600 msgstr "לא ניתן לקיים את החיבור"
601
602 #: ../libempathy/empathy-utils.c:360
603 msgid "Connection has been lost"
604 msgstr "החיבור נקטע"
605
606 #: ../libempathy/empathy-utils.c:362
607 msgid "This resource is already connected to the server"
608 msgstr "המשאב כבר מחובר לשרת"
609
610 #: ../libempathy/empathy-utils.c:364
611 msgid ""
612 "Connection has been replaced by a new connection using the same resource"
613 msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
614
615 #: ../libempathy/empathy-utils.c:367
616 msgid "The account already exists on the server"
617 msgstr "החשבון כבר קיים בשרת"
618
619 #: ../libempathy/empathy-utils.c:369
620 msgid "Server is currently too busy to handle the connection"
621 msgstr "השרת עסוק מכדי לטפל בחיבור"
622
623 #: ../libempathy/empathy-utils.c:371
624 msgid "Certificate has been revoked"
625 msgstr "התעודה נשללה"
626
627 #: ../libempathy/empathy-utils.c:373
628 msgid ""
629 "Certificate uses an insecure cipher algorithm or is cryptographically weak"
630 msgstr ""
631 "התעודה משתמש באלגוריתם הצפנה בלתי מאובטח או שהוא חלש מבחינה קריפטוגרפית"
632
633 #: ../libempathy/empathy-utils.c:376
634 msgid ""
635 "The length of the server certificate, or the depth of the server certificate "
636 "chain exceed the limits imposed by the crypto library"
637 msgstr ""
638 "אורך תעודת השרת או עומק מחרוזת תעודת השרת חורגת מהמגבלות שהוצבו על ידי "
639 "הספרייה crypto"
640
641 #: ../libempathy/empathy-utils.c:529
587642 msgid "People Nearby"
588643 msgstr "אנשים קרובים"
589644
590 #: ../libempathy/empathy-utils.c:440
645 #: ../libempathy/empathy-utils.c:534
591646 msgid "Yahoo! Japan"
592647 msgstr "‏Yahoo! יפן"
593648
594 #: ../libempathy/empathy-utils.c:441
649 #: ../libempathy/empathy-utils.c:535
595650 msgid "Facebook Chat"
596651 msgstr "צ'ט Facebook"
597652
646701 msgstr "הכל"
647702
648703 #: ../libempathy-gtk/empathy-account-widget.c:549
649 #: ../libempathy-gtk/empathy-account-widget.c:605
704 #: ../libempathy-gtk/empathy-account-widget.c:606
650705 #, c-format
651706 msgid "%s:"
652707 msgstr "%s:"
653708
654 #: ../libempathy-gtk/empathy-account-widget.c:1136
709 #: ../libempathy-gtk/empathy-account-widget.c:1137
655710 msgid "Username:"
656711 msgstr "ש_ם משתמש:"
657712
658 #: ../libempathy-gtk/empathy-account-widget.c:1479
713 #: ../libempathy-gtk/empathy-account-widget.c:1480
659714 msgid "L_og in"
660715 msgstr "_כניסה"
661716
662 #: ../libempathy-gtk/empathy-account-widget.c:1547
717 #: ../libempathy-gtk/empathy-account-widget.c:1548
663718 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
664719 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
665720 #: ../src/empathy-chatrooms-window.ui.h:1
667722 msgid "Account:"
668723 msgstr "חשבון:"
669724
670 #: ../libempathy-gtk/empathy-account-widget.c:1558
725 #: ../libempathy-gtk/empathy-account-widget.c:1559
671726 msgid "Enabled"
672727 msgstr "מופעל"
673728
674 #: ../libempathy-gtk/empathy-account-widget.c:1623
729 #: ../libempathy-gtk/empathy-account-widget.c:1624
675730 msgid "This account already exists on the server"
676731 msgstr "חשבון זה כבר קיים על השרת"
677732
678 #: ../libempathy-gtk/empathy-account-widget.c:1626
733 #: ../libempathy-gtk/empathy-account-widget.c:1627
679734 msgid "Create a new account on the server"
680735 msgstr "צור חשבון חדש על השרת"
681736
684739 #. * like: "MyUserName on chat.freenode.net".
685740 #. * You should reverse the order of these arguments if the
686741 #. * server should come before the login id in your locale.
687 #: ../libempathy-gtk/empathy-account-widget.c:1995
742 #: ../libempathy-gtk/empathy-account-widget.c:1996
688743 #, c-format
689744 msgid "%1$s on %2$s"
690745 msgstr "‏%1$s על גבי %2$s"
691746
692747 #. To translators: The parameter is the protocol name. The resulting
693748 #. * string will be something like: "Jabber Account"
694 #: ../libempathy-gtk/empathy-account-widget.c:2021
749 #: ../libempathy-gtk/empathy-account-widget.c:2022
695750 #, c-format
696751 msgid "%s Account"
697752 msgstr "%s"
698753
699 #: ../libempathy-gtk/empathy-account-widget.c:2025
754 #: ../libempathy-gtk/empathy-account-widget.c:2026
700755 msgid "New account"
701756 msgstr "חשבון חדש"
702757
797852 msgid "_Character set:"
798853 msgstr "קידוד _תווים:"
799854
800 #: ../libempathy-gtk/empathy-account-widget-irc.c:245
855 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
801856 msgid "New Network"
802857 msgstr "רשת חדשה"
803858
11001155 msgid "All Files"
11011156 msgstr "כל הקבצים"
11021157
1103 #: ../libempathy-gtk/empathy-avatar-image.c:325
1158 #: ../libempathy-gtk/empathy-avatar-image.c:323
11041159 msgid "Click to enlarge"
11051160 msgstr "יש ללחוץ כדי להגדיל"
11061161
1107 #: ../libempathy-gtk/empathy-chat.c:645
1162 #: ../libempathy-gtk/empathy-chat.c:639
11081163 msgid "Failed to open private chat"
11091164 msgstr "ארע כשל בפתיחת שיחה פרטית"
11101165
1111 #: ../libempathy-gtk/empathy-chat.c:685
1166 #: ../libempathy-gtk/empathy-chat.c:679
11121167 msgid "Topic not supported on this conversation"
11131168 msgstr "אין תמיכה בשימוש בנושא בדיון זה"
11141169
1115 #: ../libempathy-gtk/empathy-chat.c:691
1170 #: ../libempathy-gtk/empathy-chat.c:685
11161171 msgid "You are not allowed to change the topic"
11171172 msgstr "אין לך הרשאה לשנות את הנושא"
11181173
1119 #: ../libempathy-gtk/empathy-chat.c:825
1174 #: ../libempathy-gtk/empathy-chat.c:819
11201175 msgid "/clear: clear all messages from the current conversation"
11211176 msgstr "/clear: פינוי כל ההודעות מהדיון הנוכחי"
11221177
1123 #: ../libempathy-gtk/empathy-chat.c:828
1178 #: ../libempathy-gtk/empathy-chat.c:822
11241179 msgid "/topic <topic>: set the topic of the current conversation"
11251180 msgstr "/topic <נושא>:‎ הגדרת נושא השיחה הנוכחית"
11261181
1127 #: ../libempathy-gtk/empathy-chat.c:831
1182 #: ../libempathy-gtk/empathy-chat.c:825
11281183 msgid "/join <chat room ID>: join a new chat room"
11291184 msgstr "/join <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
11301185
1131 #: ../libempathy-gtk/empathy-chat.c:834
1186 #: ../libempathy-gtk/empathy-chat.c:828
11321187 msgid "/j <chat room ID>: join a new chat room"
11331188 msgstr "/j <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
11341189
1135 #: ../libempathy-gtk/empathy-chat.c:839
1190 #: ../libempathy-gtk/empathy-chat.c:833
11361191 msgid "/query <contact ID> [<message>]: open a private chat"
11371192 msgstr "/query <זיהוי איש הקשר> ‎[<הודעה>]:‎ פתיחת צ'אט אישי"
11381193
1139 #: ../libempathy-gtk/empathy-chat.c:842
1194 #: ../libempathy-gtk/empathy-chat.c:836
11401195 msgid "/msg <contact ID> <message>: open a private chat"
11411196 msgstr "/msg <זיהוי איש הקשר>‎ <הודעה>:‎ פתיחת צ'אט פרטי"
11421197
1143 #: ../libempathy-gtk/empathy-chat.c:846
1198 #: ../libempathy-gtk/empathy-chat.c:840
11441199 msgid "/nick <nickname>: change your nickname on the current server"
11451200 msgstr "/nick <כינוי>:‎ שינוי הכינוי שלך בשרת הנוכחי"
11461201
1147 #: ../libempathy-gtk/empathy-chat.c:849
1202 #: ../libempathy-gtk/empathy-chat.c:843
11481203 msgid "/me <message>: send an ACTION message to the current conversation"
11491204 msgstr "/me <הודעה>:‎ שליחת הודעת ACTION לדיון הנוכחי"
11501205
1151 #: ../libempathy-gtk/empathy-chat.c:852
1206 #: ../libempathy-gtk/empathy-chat.c:846
11521207 msgid ""
11531208 "/say <message>: send <message> to the current conversation. This is used to "
11541209 "send a message starting with a '/'. For example: \"/say /join is used to "
11571212 "/say <הודעה>:‎ שליחת <הודעה> לדיון הנוכחי. פקודה זו משמשת לשליחת הודעות "
11581213 "המתחילות ב־'/'. לדוגמה: \"/say /join משמשת לצורך התחברות לחדר שיחה חדש\""
11591214
1160 #: ../libempathy-gtk/empathy-chat.c:857
1215 #: ../libempathy-gtk/empathy-chat.c:851
11611216 msgid ""
11621217 "/help [<command>]: show all supported commands. If <command> is defined, "
11631218 "show its usage."
11651220 "/help [<פקודה>]:‎ הצגת כל הפקודות הנתמכות. אם יש הגדרה ל־<פקודה> יוצג אופן "
11661221 "הפעלתה."
11671222
1168 #: ../libempathy-gtk/empathy-chat.c:867
1223 #: ../libempathy-gtk/empathy-chat.c:861
11691224 #, c-format
11701225 msgid "Usage: %s"
11711226 msgstr "שימוש: %s"
11721227
1173 #: ../libempathy-gtk/empathy-chat.c:896
1228 #: ../libempathy-gtk/empathy-chat.c:890
11741229 msgid "Unknown command"
11751230 msgstr "פקודה לא ידועה"
11761231
1177 #: ../libempathy-gtk/empathy-chat.c:1017
1232 #: ../libempathy-gtk/empathy-chat.c:1011
11781233 msgid "Unknown command; see /help for the available commands"
11791234 msgstr "פקודה בלתי מוכרת; יש לעיין ב־‎/help לצפייה בפקודות הזמינות"
11801235
1181 #: ../libempathy-gtk/empathy-chat.c:1155
1236 #: ../libempathy-gtk/empathy-chat.c:1149
11821237 msgid "offline"
11831238 msgstr "לא מחובר"
11841239
1185 #: ../libempathy-gtk/empathy-chat.c:1158
1240 #: ../libempathy-gtk/empathy-chat.c:1152
11861241 msgid "invalid contact"
11871242 msgstr "איש קשר לא תקין"
11881243
1189 #: ../libempathy-gtk/empathy-chat.c:1161
1244 #: ../libempathy-gtk/empathy-chat.c:1155
11901245 msgid "permission denied"
11911246 msgstr "איש קשר לא תקין"
11921247
1193 #: ../libempathy-gtk/empathy-chat.c:1164
1248 #: ../libempathy-gtk/empathy-chat.c:1158
11941249 msgid "too long message"
11951250 msgstr "הודעה ארוכה מדי"
11961251
1197 #: ../libempathy-gtk/empathy-chat.c:1167
1252 #: ../libempathy-gtk/empathy-chat.c:1161
11981253 msgid "not implemented"
11991254 msgstr "לא ממומש"
12001255
1201 #: ../libempathy-gtk/empathy-chat.c:1170
1256 #: ../libempathy-gtk/empathy-chat.c:1165
12021257 msgid "unknown"
12031258 msgstr "לא ידוע"
12041259
1205 #: ../libempathy-gtk/empathy-chat.c:1174
1260 #: ../libempathy-gtk/empathy-chat.c:1169
12061261 #, c-format
12071262 msgid "Error sending message '%s': %s"
12081263 msgstr "שגיאה בשליחת ההודעה '%s': ‏%s"
12091264
1210 #: ../libempathy-gtk/empathy-chat.c:1284 ../src/empathy-chat-window.c:691
1265 #: ../libempathy-gtk/empathy-chat.c:1279 ../src/empathy-chat-window.c:691
12111266 msgid "Topic:"
12121267 msgstr "נושא:"
12131268
1214 #: ../libempathy-gtk/empathy-chat.c:1296
1269 #: ../libempathy-gtk/empathy-chat.c:1291
12151270 #, c-format
12161271 msgid "Topic set to: %s"
12171272 msgstr "הנושא נקבע ל: %s"
12181273
1219 #: ../libempathy-gtk/empathy-chat.c:1298
1274 #: ../libempathy-gtk/empathy-chat.c:1293
12201275 msgid "No topic defined"
12211276 msgstr "לא נקבע נושא"
12221277
1223 #: ../libempathy-gtk/empathy-chat.c:1777
1278 #: ../libempathy-gtk/empathy-chat.c:1772
12241279 msgid "(No Suggestions)"
12251280 msgstr "(אין הצעות)"
12261281
1227 #: ../libempathy-gtk/empathy-chat.c:1831
1282 #: ../libempathy-gtk/empathy-chat.c:1826
12281283 msgid "Insert Smiley"
12291284 msgstr "הכנס סמיילי"
12301285
12311286 #. send button
1232 #: ../libempathy-gtk/empathy-chat.c:1849
1233 #: ../libempathy-gtk/empathy-ui-utils.c:1799
1287 #: ../libempathy-gtk/empathy-chat.c:1844
1288 #: ../libempathy-gtk/empathy-ui-utils.c:1800
12341289 msgid "_Send"
12351290 msgstr "_שלח"
12361291
1237 #: ../libempathy-gtk/empathy-chat.c:1883
1292 #: ../libempathy-gtk/empathy-chat.c:1878
12381293 msgid "_Spelling Suggestions"
12391294 msgstr "הצעות _איות"
12401295
1241 #: ../libempathy-gtk/empathy-chat.c:1960
1296 #: ../libempathy-gtk/empathy-chat.c:1955
12421297 msgid "Failed to retrieve recent logs"
12431298 msgstr "ארע כשל בקבלת הדוחות האחרונים"
12441299
1245 #: ../libempathy-gtk/empathy-chat.c:2066
1300 #: ../libempathy-gtk/empathy-chat.c:2061
12461301 #, c-format
12471302 msgid "%s has disconnected"
12481303 msgstr "‏%s התנתק"
12501305 #. translators: reverse the order of these arguments
12511306 #. * if the kicked should come before the kicker in your locale.
12521307 #.
1253 #: ../libempathy-gtk/empathy-chat.c:2073
1308 #: ../libempathy-gtk/empathy-chat.c:2068
12541309 #, c-format
12551310 msgid "%1$s was kicked by %2$s"
12561311 msgstr "‏%1$s סולק על ידי %2$s"
12571312
1258 #: ../libempathy-gtk/empathy-chat.c:2076
1313 #: ../libempathy-gtk/empathy-chat.c:2071
12591314 #, c-format
12601315 msgid "%s was kicked"
12611316 msgstr "‏%s סולק"
12631318 #. translators: reverse the order of these arguments
12641319 #. * if the banned should come before the banner in your locale.
12651320 #.
1266 #: ../libempathy-gtk/empathy-chat.c:2084
1321 #: ../libempathy-gtk/empathy-chat.c:2079
12671322 #, c-format
12681323 msgid "%1$s was banned by %2$s"
12691324 msgstr "‏%1$s נחסם על ידי %2$s"
12701325
1271 #: ../libempathy-gtk/empathy-chat.c:2087
1326 #: ../libempathy-gtk/empathy-chat.c:2082
12721327 #, c-format
12731328 msgid "%s was banned"
12741329 msgstr "‏%s נחסם"
12751330
1276 #: ../libempathy-gtk/empathy-chat.c:2091
1331 #: ../libempathy-gtk/empathy-chat.c:2086
12771332 #, c-format
12781333 msgid "%s has left the room"
12791334 msgstr "‏%s עזב את החדר"
12831338 #. * given by the user living the room. If this poses a problem,
12841339 #. * please let us know. :-)
12851340 #.
1286 #: ../libempathy-gtk/empathy-chat.c:2100
1341 #: ../libempathy-gtk/empathy-chat.c:2095
12871342 #, c-format
12881343 msgid " (%s)"
12891344 msgstr " (%s)"
12901345
1291 #: ../libempathy-gtk/empathy-chat.c:2125
1346 #: ../libempathy-gtk/empathy-chat.c:2120
12921347 #, c-format
12931348 msgid "%s has joined the room"
12941349 msgstr "‏%s הצטרף לחדר"
12951350
1296 #: ../libempathy-gtk/empathy-chat.c:2150
1351 #: ../libempathy-gtk/empathy-chat.c:2145
12971352 #, c-format
12981353 msgid "%s is now known as %s"
12991354 msgstr "‏%s ידוע כעת כ-%s"
13001355
1301 #: ../libempathy-gtk/empathy-chat.c:2289 ../src/empathy-call-window.c:1802
1356 #: ../libempathy-gtk/empathy-chat.c:2284 ../src/empathy-call-window.c:1922
13021357 msgid "Disconnected"
13031358 msgstr "מנותק"
13041359
1305 #: ../libempathy-gtk/empathy-chat.c:2927
1360 #: ../libempathy-gtk/empathy-chat.c:2922
13061361 msgid "Wrong password; please try again:"
13071362 msgstr "ססמה שגויה; נא לנסות שוב:"
13081363
1309 #: ../libempathy-gtk/empathy-chat.c:2928
1364 #: ../libempathy-gtk/empathy-chat.c:2923
13101365 msgid "Retry"
13111366 msgstr "ניסיון חוזר"
13121367
1313 #: ../libempathy-gtk/empathy-chat.c:2933
1368 #: ../libempathy-gtk/empathy-chat.c:2928
13141369 msgid "This room is protected by a password:"
13151370 msgstr "חדר זה מוגן בססמה:"
13161371
1317 #: ../libempathy-gtk/empathy-chat.c:2934
1372 #: ../libempathy-gtk/empathy-chat.c:2929
13181373 msgid "Join"
13191374 msgstr "הצטרפות"
13201375
1321 #: ../libempathy-gtk/empathy-chat.c:3074
1376 #: ../libempathy-gtk/empathy-chat.c:3069
13221377 msgid "Connected"
13231378 msgstr "מחובר"
13241379
1325 #: ../libempathy-gtk/empathy-chat.c:3127
1326 #: ../libempathy-gtk/empathy-log-window.c:639
1380 #: ../libempathy-gtk/empathy-chat.c:3122
1381 #: ../libempathy-gtk/empathy-log-window.c:653
13271382 msgid "Conversation"
13281383 msgstr "שיחה"
13291384
13301385 #. Copy Link Address menu item
13311386 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1332 #: ../libempathy-gtk/empathy-theme-adium.c:785
1387 #: ../libempathy-gtk/empathy-theme-adium.c:791
13331388 msgid "_Copy Link Address"
13341389 msgstr "העתקת _מיקום הקישור"
13351390
13361391 #. Open Link menu item
13371392 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1338 #: ../libempathy-gtk/empathy-theme-adium.c:792
1393 #: ../libempathy-gtk/empathy-theme-adium.c:798
13391394 msgid "_Open Link"
13401395 msgstr "_פתיחת קישור"
13411396
13661421 msgid "Subscription Request"
13671422 msgstr "בקשת הצטרפות"
13681423
1369 #: ../libempathy-gtk/empathy-contact-list-view.c:1984
1370 #: ../libempathy-gtk/empathy-individual-view.c:1948
1424 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1425 #: ../libempathy-gtk/empathy-individual-view.c:2025
13711426 #, c-format
13721427 msgid "Do you really want to remove the group '%s'?"
13731428 msgstr "האם להסיר את הקבוצה '%s'?"
13741429
1375 #: ../libempathy-gtk/empathy-contact-list-view.c:1986
1376 #: ../libempathy-gtk/empathy-individual-view.c:1951
1430 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1431 #: ../libempathy-gtk/empathy-individual-view.c:2028
13771432 msgid "Removing group"
13781433 msgstr "הקבוצה מוסרת"
13791434
13801435 #. Remove
1381 #: ../libempathy-gtk/empathy-contact-list-view.c:2035
1382 #: ../libempathy-gtk/empathy-contact-list-view.c:2112
1383 #: ../libempathy-gtk/empathy-individual-view.c:2005
1384 #: ../libempathy-gtk/empathy-individual-view.c:2090
1436 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1437 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1438 #: ../libempathy-gtk/empathy-individual-view.c:2082
1439 #: ../libempathy-gtk/empathy-individual-view.c:2167
13851440 #: ../src/empathy-accounts-dialog.ui.h:6
13861441 msgid "_Remove"
13871442 msgstr "ה_סרה"
13881443
1389 #: ../libempathy-gtk/empathy-contact-list-view.c:2065
1390 #: ../libempathy-gtk/empathy-individual-view.c:2036
1444 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1445 #: ../libempathy-gtk/empathy-individual-view.c:2113
13911446 #, c-format
13921447 msgid "Do you really want to remove the contact '%s'?"
13931448 msgstr "להסיר את איש הקשר '%s'?"
13941449
1395 #: ../libempathy-gtk/empathy-contact-list-view.c:2067
1396 #: ../libempathy-gtk/empathy-individual-view.c:2038
1450 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1451 #: ../libempathy-gtk/empathy-individual-view.c:2115
13971452 msgid "Removing contact"
13981453 msgstr "מסיר איש קשר"
13991454
14001455 #: ../libempathy-gtk/empathy-contact-menu.c:203
1401 #: ../libempathy-gtk/empathy-individual-menu.c:223
1456 #: ../libempathy-gtk/empathy-individual-menu.c:359
14021457 #: ../src/empathy-main-window.ui.h:13
14031458 msgid "_Add Contact…"
14041459 msgstr "הוספת _איש קשר..."
14051460
1406 #: ../libempathy-gtk/empathy-contact-menu.c:231
1407 #: ../libempathy-gtk/empathy-individual-menu.c:264
1461 #: ../libempathy-gtk/empathy-contact-menu.c:230
1462 #: ../libempathy-gtk/empathy-individual-menu.c:462
14081463 #: ../src/empathy-main-window.ui.h:14
14091464 msgid "_Chat"
14101465 msgstr "_שיחה"
14111466
1412 #: ../libempathy-gtk/empathy-contact-menu.c:261
1413 #: ../libempathy-gtk/empathy-individual-menu.c:306
1467 #: ../libempathy-gtk/empathy-contact-menu.c:260
1468 #: ../libempathy-gtk/empathy-individual-menu.c:503
14141469 msgctxt "menu item"
14151470 msgid "_Audio Call"
14161471 msgstr "שיחה _קולית"
14171472
1418 #: ../libempathy-gtk/empathy-contact-menu.c:291
1419 #: ../libempathy-gtk/empathy-individual-menu.c:351
1473 #: ../libempathy-gtk/empathy-contact-menu.c:290
1474 #: ../libempathy-gtk/empathy-individual-menu.c:545
14201475 msgctxt "menu item"
14211476 msgid "_Video Call"
14221477 msgstr "שיחת _וידאו"
14231478
1424 #: ../libempathy-gtk/empathy-contact-menu.c:331
1425 #: ../libempathy-gtk/empathy-individual-menu.c:403
1479 #: ../libempathy-gtk/empathy-contact-menu.c:330
1480 #: ../libempathy-gtk/empathy-individual-menu.c:603
14261481 #: ../src/empathy-main-window.ui.h:25
14271482 msgid "_Previous Conversations"
14281483 msgstr "שיחות _קודמות"
14291484
1430 #: ../libempathy-gtk/empathy-contact-menu.c:353
1431 #: ../libempathy-gtk/empathy-individual-menu.c:444
1485 #: ../libempathy-gtk/empathy-contact-menu.c:352
1486 #: ../libempathy-gtk/empathy-individual-menu.c:644
14321487 msgid "Send File"
14331488 msgstr "שליחת קובץ"
14341489
1435 #: ../libempathy-gtk/empathy-contact-menu.c:376
1436 #: ../libempathy-gtk/empathy-individual-menu.c:486
1490 #: ../libempathy-gtk/empathy-contact-menu.c:375
1491 #: ../libempathy-gtk/empathy-individual-menu.c:686
14371492 msgid "Share My Desktop"
14381493 msgstr "שיתוף שולחן העבודה שלי"
14391494
1440 #: ../libempathy-gtk/empathy-contact-menu.c:416
1495 #: ../libempathy-gtk/empathy-contact-menu.c:415
14411496 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1442 #: ../libempathy-gtk/empathy-individual-menu.c:515
1497 #: ../libempathy-gtk/empathy-individual-menu.c:720
14431498 msgid "Favorite"
14441499 msgstr "מועדף"
14451500
1446 #: ../libempathy-gtk/empathy-contact-menu.c:445
1447 #: ../libempathy-gtk/empathy-individual-menu.c:547
1501 #: ../libempathy-gtk/empathy-contact-menu.c:444
1502 #: ../libempathy-gtk/empathy-individual-menu.c:747
14481503 msgid "Infor_mation"
14491504 msgstr "_מידע"
14501505
1451 #: ../libempathy-gtk/empathy-contact-menu.c:491
1506 #: ../libempathy-gtk/empathy-contact-menu.c:490
14521507 msgctxt "Edit contact (contextual menu)"
14531508 msgid "_Edit"
14541509 msgstr "ע_ריכה"
14551510
1456 #: ../libempathy-gtk/empathy-contact-menu.c:545
1457 #: ../libempathy-gtk/empathy-individual-menu.c:664
1511 #: ../libempathy-gtk/empathy-contact-menu.c:544
1512 #: ../libempathy-gtk/empathy-individual-menu.c:938
14581513 #: ../src/empathy-chat-window.c:903
14591514 msgid "Inviting you to this room"
14601515 msgstr "מזמין אותך לחדר זה"
14611516
1462 #: ../libempathy-gtk/empathy-contact-menu.c:576
1463 #: ../libempathy-gtk/empathy-individual-menu.c:702
1517 #: ../libempathy-gtk/empathy-contact-menu.c:575
1518 #: ../libempathy-gtk/empathy-individual-menu.c:985
14641519 msgid "_Invite to Chat Room"
14651520 msgstr "ה_זמנה לחדר שיחה"
14661521
14931548 msgstr "בחירה"
14941549
14951550 #: ../libempathy-gtk/empathy-contact-widget.c:612
1496 #: ../src/empathy-main-window.c:1195
1551 #: ../src/empathy-main-window.c:1231
14971552 msgid "Group"
14981553 msgstr "קבוצה"
14991554
16671722 msgid "_Add Group"
16681723 msgstr "הוס_פת קבוצה"
16691724
1670 #: ../libempathy-gtk/empathy-individual-menu.c:603
1725 #: ../libempathy-gtk/empathy-individual-linker.c:250
1726 msgid "Select contacts to link"
1727 msgstr "בחירת אנשי קשר לקישור"
1728
1729 #: ../libempathy-gtk/empathy-individual-linker.c:298
1730 msgid "New contact preview"
1731 msgstr "תצוגה מקדימה של איש קשר חדש"
1732
1733 #: ../libempathy-gtk/empathy-individual-menu.c:107
1734 #, c-format
1735 msgid "%s (%s)"
1736 msgstr "%s (%s)"
1737
1738 #: ../libempathy-gtk/empathy-individual-menu.c:803
16711739 msgctxt "Edit individual (contextual menu)"
16721740 msgid "_Edit"
16731741 msgstr "ע_ריכה"
16741742
1743 #: ../libempathy-gtk/empathy-individual-menu.c:833
1744 msgctxt "Link individual (contextual menu)"
1745 msgid "_Link…"
1746 msgstr "_קישור..."
1747
16751748 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16761749 msgid "new server"
16771750 msgstr "שרת חדש"
16881761 msgid "SSL"
16891762 msgstr "SSL"
16901763
1691 #: ../libempathy-gtk/empathy-log-window.c:632
1764 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1765 msgid "Link Contacts"
1766 msgstr "קישור בין אנשי קשר"
1767
1768 #. Add button
1769 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1770 msgid "_Link"
1771 msgstr "_קישור"
1772
1773 #: ../libempathy-gtk/empathy-log-window.c:646
16921774 #: ../src/empathy-import-widget.c:312
16931775 msgid "Account"
16941776 msgstr "חשבון"
16951777
1696 #: ../libempathy-gtk/empathy-log-window.c:649
1778 #: ../libempathy-gtk/empathy-log-window.c:663
16971779 msgid "Date"
16981780 msgstr "תאריך"
16991781
1700 #: ../libempathy-gtk/empathy-log-window.ui.h:1
1782 #. Tab Label
1783 #: ../libempathy-gtk/empathy-log-window.ui.h:2
17011784 msgid "Conversations"
17021785 msgstr "שיחות"
17031786
1704 #: ../libempathy-gtk/empathy-log-window.ui.h:2
1787 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1788 msgid "Find next"
1789 msgstr "חיפוש הבא"
1790
1791 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1792 msgid "Find previous"
1793 msgstr "חיפוש הקודם"
1794
1795 #: ../libempathy-gtk/empathy-log-window.ui.h:5
17051796 msgid "Previous Conversations"
17061797 msgstr "שיחות קודמות"
17071798
1708 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1799 #. Tab Label
1800 #: ../libempathy-gtk/empathy-log-window.ui.h:7
17091801 msgid "Search"
17101802 msgstr "חיפוש"
17111803
1712 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1804 #. Searching *for* something
1805 #: ../libempathy-gtk/empathy-log-window.ui.h:9
17131806 msgid "_For:"
17141807 msgstr "_ערך:"
17151808
17281821 msgstr "שיחה חדשה"
17291822
17301823 #. add video toggle
1731 #: ../libempathy-gtk/empathy-new-call-dialog.c:190
1824 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
17321825 msgid "Send _Video"
17331826 msgstr "שליחת _וידאו"
17341827
17351828 #. add chat button
1736 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1737 #: ../src/empathy-call-window.ui.h:22
1829 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
1830 #: ../src/empathy-call-window.ui.h:24
17381831 msgid "_Call"
17391832 msgstr "_שיחה"
17401833
17411834 #. Tweak the dialog
1742 #: ../libempathy-gtk/empathy-new-call-dialog.c:208
1835 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
17431836 msgid "New Call"
17441837 msgstr "שיחה חדשה"
17451838
18641957 msgid "Blue"
18651958 msgstr "כחול"
18661959
1867 #: ../libempathy-gtk/empathy-ui-utils.c:1696
1960 #: ../libempathy-gtk/empathy-ui-utils.c:1697
18681961 msgid "Unable to open URI"
18691962 msgstr "לא ניתן לפתוח את הכתובת"
18701963
1871 #: ../libempathy-gtk/empathy-ui-utils.c:1791
1964 #: ../libempathy-gtk/empathy-ui-utils.c:1792
18721965 msgid "Select a file"
18731966 msgstr "בחירת קובץ"
18741967
1875 #: ../libempathy-gtk/empathy-ui-utils.c:1860
1968 #: ../libempathy-gtk/empathy-ui-utils.c:1861
18761969 #, c-format
18771970 msgid "Incoming file from %s"
18781971 msgstr "קובץ נכנס מ־%s"
20612154 msgid "Instant Message (Empathy)"
20622155 msgstr "הודעה מיידית (Empathy)"
20632156
2064 #: ../src/empathy.c:474
2157 #: ../src/empathy.c:414
20652158 msgid "Don't connect on startup"
20662159 msgstr "לא להתחבר בהפעלה"
20672160
2068 #: ../src/empathy.c:478
2161 #: ../src/empathy.c:418
20692162 msgid "Don't display the contact list or any other dialogs on startup"
20702163 msgstr "אין להציג את רשימת אנשי הקשר או כל דו־שיח אחר בהפעלה"
20712164
2072 #: ../src/empathy.c:490
2165 #: ../src/empathy.c:435
20732166 msgid "- Empathy IM Client"
20742167 msgstr "- לקוח המסרים המידיים Empathy"
20752168
21502243 "חשבונות מאוחר יותר מתפריט העריכה."
21512244
21522245 #: ../src/empathy-account-assistant.c:220
2153 #: ../src/empathy-account-assistant.c:1315
2246 #: ../src/empathy-account-assistant.c:1311
21542247 msgid "An error occurred"
21552248 msgstr "התרחשה שגיאה."
21562249
22332326 msgid "No, that's all for now"
22342327 msgstr "לא, זה הכול לעכשיו"
22352328
2236 #: ../src/empathy-account-assistant.c:1129
2329 #: ../src/empathy-account-assistant.c:1125
22372330 msgid ""
22382331 "Empathy can automatically discover and chat with the people connected on the "
22392332 "same network as you. If you want to use this feature, please check that the "
22442337 "ברצונך להשתמש בתכונה זו, נא לבדוק שהפרטים שלהלן נכונים. ניתן לשנות פרטים אלה "
22452338 "בקלות מאוחר יותר או לבטל תכונה זו באמצעות הדו־שיח 'חשבונות'"
22462339
2247 #: ../src/empathy-account-assistant.c:1135
2248 #: ../src/empathy-account-assistant.c:1191
2340 #: ../src/empathy-account-assistant.c:1131
2341 #: ../src/empathy-account-assistant.c:1187
22492342 msgid "Edit->Accounts"
22502343 msgstr "עריכה->חשבונות"
22512344
2252 #: ../src/empathy-account-assistant.c:1151
2345 #: ../src/empathy-account-assistant.c:1147
22532346 msgid "I don't want to enable this feature for now"
22542347 msgstr "אין לי כל עניין לאפשר את התכונה הזו כעת"
22552348
2256 #: ../src/empathy-account-assistant.c:1187
2349 #: ../src/empathy-account-assistant.c:1183
22572350 msgid ""
22582351 "You won't be able to chat with people connected to your local network, as "
22592352 "telepathy-salut is not installed. If you want to enable this feature, please "
22642357 "salut אינה מותקנת, אם ברצונך להפעיל תכונה זו עליך להתקין את החבילה telepathy-"
22652358 "salut וליצור חשבון ב'אנשים בקרבתי' מדו־שיח החשבונות"
22662359
2267 #: ../src/empathy-account-assistant.c:1193
2360 #: ../src/empathy-account-assistant.c:1189
22682361 msgid "telepathy-salut not installed"
22692362 msgstr "telepathy-salut אינה מותקנת"
22702363
2271 #: ../src/empathy-account-assistant.c:1239
2364 #: ../src/empathy-account-assistant.c:1235
22722365 msgid "Messaging and VoIP Accounts Assistant"
22732366 msgstr "מסייע חשבונות ההתכתבות וה־VoIP"
22742367
2275 #: ../src/empathy-account-assistant.c:1273
2368 #: ../src/empathy-account-assistant.c:1269
22762369 msgid "Welcome to Empathy"
22772370 msgstr "ברוך בואך אל Empathy"
22782371
2279 #: ../src/empathy-account-assistant.c:1282
2372 #: ../src/empathy-account-assistant.c:1278
22802373 msgid "Import your existing accounts"
22812374 msgstr "ייבוא חשבונות קיימים"
22822375
2283 #: ../src/empathy-account-assistant.c:1300
2376 #: ../src/empathy-account-assistant.c:1296
22842377 msgid "Please enter personal details"
22852378 msgstr "נא להזין פרטים אישיים"
22862379
22972390 msgid "Your new account has not been saved yet."
22982391 msgstr "החשבון החדש שלך לא נשמר עדיין."
22992392
2300 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
2393 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:808
23012394 msgid "Connecting…"
23022395 msgstr "בהתחברות..."
23032396
23912484 msgid "Empathy Audio/Video Client"
23922485 msgstr "לקוח השמע/הווידאו Empathy"
23932486
2394 #: ../src/empathy-call-window.c:470
2487 #: ../src/empathy-call-window.c:479
23952488 msgid "Contrast"
23962489 msgstr "ניגוד"
23972490
2398 #: ../src/empathy-call-window.c:473
2491 #: ../src/empathy-call-window.c:482
23992492 msgid "Brightness"
24002493 msgstr "בהירות"
24012494
2402 #: ../src/empathy-call-window.c:476
2495 #: ../src/empathy-call-window.c:485
24032496 msgid "Gamma"
24042497 msgstr "גאמה"
24052498
2406 #: ../src/empathy-call-window.c:581
2499 #: ../src/empathy-call-window.c:590
24072500 msgid "Volume"
24082501 msgstr "עצמה"
24092502
2410 #: ../src/empathy-call-window.c:1146
2503 #: ../src/empathy-call-window.c:1163
24112504 msgid "_Sidebar"
24122505 msgstr "_סרגל צד"
24132506
2414 #: ../src/empathy-call-window.c:1165
2507 #: ../src/empathy-call-window.c:1182
24152508 msgid "Audio input"
24162509 msgstr "קלט שמע"
24172510
2418 #: ../src/empathy-call-window.c:1169
2511 #: ../src/empathy-call-window.c:1186
24192512 msgid "Video input"
24202513 msgstr "קלט וידאו"
24212514
2422 #: ../src/empathy-call-window.c:1173
2515 #: ../src/empathy-call-window.c:1190
24232516 msgid "Dialpad"
24242517 msgstr "מקשי חיוג"
24252518
2426 #: ../src/empathy-call-window.c:1178
2519 #: ../src/empathy-call-window.c:1195
24272520 msgid "Details"
24282521 msgstr "פרטים"
24292522
24302523 #. translators: Call is a noun and %s is the contact name. This string
24312524 #. * is used in the window title
2432 #: ../src/empathy-call-window.c:1246
2525 #: ../src/empathy-call-window.c:1263
24332526 #, c-format
24342527 msgid "Call with %s"
24352528 msgstr "שיחה עם %s"
24362529
24372530 #. translators: Call is a noun. This string is used in the window
24382531 #. * title
2439 #: ../src/empathy-call-window.c:1325
2532 #: ../src/empathy-call-window.c:1342
24402533 msgid "Call"
24412534 msgstr "שיחה"
24422535
2536 #: ../src/empathy-call-window.c:1496
2537 msgid "The IP address as seen by the machine"
2538 msgstr "כתובת ה־IP כפי שנראית על ידי המחשב"
2539
2540 #: ../src/empathy-call-window.c:1498
2541 msgid "The IP address as seen by a server on the Internet"
2542 msgstr "כתובת ה־IP כפי שנראית על ידי שרת באינטרנט"
2543
2544 #: ../src/empathy-call-window.c:1500
2545 msgid "The IP address of the peer as seen by the other side"
2546 msgstr "כתובת ה־IP כדי שנראית על ידי עמית מהצד השני"
2547
2548 #: ../src/empathy-call-window.c:1502
2549 msgid "The IP address of a relay server"
2550 msgstr "כתובת ה־IP של שרת הממסר"
2551
2552 #: ../src/empathy-call-window.c:1504
2553 msgid "The IP address of the multicast group"
2554 msgstr "כתובת ה־IP של קבוצת התשדורת"
2555
24432556 #. Translators: number of minutes:seconds the caller has been connected
2444 #: ../src/empathy-call-window.c:2117
2557 #: ../src/empathy-call-window.c:2237
24452558 #, c-format
24462559 msgid "Connected — %d:%02dm"
24472560 msgstr "מחובר — %d:%02d דק'"
24482561
2449 #: ../src/empathy-call-window.c:2178
2562 #: ../src/empathy-call-window.c:2298
24502563 msgid "Technical Details"
24512564 msgstr "פרטים טכניים"
24522565
2453 #: ../src/empathy-call-window.c:2216
2566 #: ../src/empathy-call-window.c:2336
24542567 #, c-format
24552568 msgid ""
24562569 "%s's software does not understand any of the audio formats supported by your "
24572570 "computer"
24582571 msgstr "התכנה של %s אינה מבינה את מבני השמע הנתמכים על ידי המחשב שלך"
24592572
2460 #: ../src/empathy-call-window.c:2221
2573 #: ../src/empathy-call-window.c:2341
24612574 #, c-format
24622575 msgid ""
24632576 "%s's software does not understand any of the video formats supported by your "
24642577 "computer"
24652578 msgstr "התכנה של %s אינה מבינה את מבני הווידאו הנתמכים על ידי המחשב שלך"
24662579
2467 #: ../src/empathy-call-window.c:2227
2580 #: ../src/empathy-call-window.c:2347
24682581 #, c-format
24692582 msgid ""
24702583 "Can't establish a connection to %s. One of you might be on a network that "
24732586 "לא ניתן להפעיל את החיבור אל %s. כנראה אחד ממשתתפי השיחה מחובר לרשת שאינה "
24742587 "מאפשרת חיבורים ישירים."
24752588
2476 #: ../src/empathy-call-window.c:2233
2589 #: ../src/empathy-call-window.c:2353
24772590 msgid "There was a failure on the network"
24782591 msgstr "ארעה שגיאה ברשת"
24792592
2480 #: ../src/empathy-call-window.c:2237
2593 #: ../src/empathy-call-window.c:2357
24812594 msgid ""
24822595 "The audio formats necessary for this call are not installed on your computer"
24832596 msgstr "מבני השמע הדרושים לקיום שיחה זו אינם מותקנים במחשבך"
24842597
2485 #: ../src/empathy-call-window.c:2240
2598 #: ../src/empathy-call-window.c:2360
24862599 msgid ""
24872600 "The video formats necessary for this call are not installed on your computer"
24882601 msgstr "מבני הווידאו הדרושים לקיום שיחה זו אינם מותקנים במחשבך"
24892602
2490 #: ../src/empathy-call-window.c:2250
2603 #: ../src/empathy-call-window.c:2370
24912604 #, c-format
24922605 msgid ""
24932606 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
24972610 "משהו בלתי צפוי ארע ברכיב של Telepathy. נא <a href=\"%s\">לדווח על באג זה</a> "
24982611 "ולהוסיף דוחות שנאספו מחלון 'ניפוי השגיאות' שבתפריט העזרה."
24992612
2500 #: ../src/empathy-call-window.c:2258
2613 #: ../src/empathy-call-window.c:2378
25012614 msgid "There was a failure in the call engine"
25022615 msgstr "ארעה שגיאה במנוע הקריאה"
25032616
2504 #: ../src/empathy-call-window.c:2297
2617 #: ../src/empathy-call-window.c:2381
2618 msgid "The end of the stream was reached"
2619 msgstr "התזרים הגיע לסיומו"
2620
2621 #: ../src/empathy-call-window.c:2421
25052622 msgid "Can't establish audio stream"
25062623 msgstr "לא ניתן לקיים תזרים שמע"
25072624
2508 #: ../src/empathy-call-window.c:2307
2625 #: ../src/empathy-call-window.c:2431
25092626 msgid "Can't establish video stream"
25102627 msgstr "לא ניתן לקיים תזרים וידאו"
25112628
25542671 msgstr "ניתוק השיחה הנוכחית"
25552672
25562673 #: ../src/empathy-call-window.ui.h:12
2674 msgid "Local Candidate:"
2675 msgstr "מועמד מקומי:"
2676
2677 #: ../src/empathy-call-window.ui.h:13
25572678 msgid "Preview"
25582679 msgstr "תצוגה מקדימה"
25592680
2560 #: ../src/empathy-call-window.ui.h:13
2681 #: ../src/empathy-call-window.ui.h:14
25612682 msgid "Redial"
25622683 msgstr "חיוג חוזר"
25632684
2564 #: ../src/empathy-call-window.ui.h:14
2685 #: ../src/empathy-call-window.ui.h:15
2686 msgid "Remote Candidate:"
2687 msgstr "מועמד מרוחק:"
2688
2689 #: ../src/empathy-call-window.ui.h:16
25652690 msgid "Send Audio"
25662691 msgstr "שלח צליל"
25672692
2568 #: ../src/empathy-call-window.ui.h:15
2693 #: ../src/empathy-call-window.ui.h:17
25692694 msgid "Toggle audio transmission"
25702695 msgstr "החלפה בין העברה ואי העברה של שמע"
25712696
2572 #: ../src/empathy-call-window.ui.h:17
2697 #: ../src/empathy-call-window.ui.h:19
25732698 msgid "V_ideo"
25742699 msgstr "_וידאו"
25752700
2576 #: ../src/empathy-call-window.ui.h:18
2701 #: ../src/empathy-call-window.ui.h:20
25772702 msgid "Video"
25782703 msgstr "וידאו"
25792704
2580 #: ../src/empathy-call-window.ui.h:19
2705 #: ../src/empathy-call-window.ui.h:21
25812706 msgid "Video Off"
25822707 msgstr "וידאו כבוי"
25832708
2584 #: ../src/empathy-call-window.ui.h:20
2709 #: ../src/empathy-call-window.ui.h:22
25852710 msgid "Video On"
25862711 msgstr "וידאו מופעל"
25872712
2588 #: ../src/empathy-call-window.ui.h:21
2713 #: ../src/empathy-call-window.ui.h:23
25892714 msgid "Video Preview"
25902715 msgstr "תצוגה מקדימה לווידאו"
25912716
2592 #: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:27
2717 #: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:27
25932718 msgid "_View"
25942719 msgstr "_תצוגה"
25952720
27172842 msgid "Manage Favorite Rooms"
27182843 msgstr "ניהול חדרי שיחה מועדפים"
27192844
2720 #: ../src/empathy-event-manager.c:473
2845 #: ../src/empathy-event-manager.c:471
27212846 msgid "Incoming video call"
27222847 msgstr "שיחה קולית נכנסת"
27232848
2724 #: ../src/empathy-event-manager.c:473
2849 #: ../src/empathy-event-manager.c:471
27252850 msgid "Incoming call"
27262851 msgstr "שיחה נכנסת"
27272852
2728 #: ../src/empathy-event-manager.c:477
2853 #: ../src/empathy-event-manager.c:475
27292854 #, c-format
27302855 msgid "%s is video calling you. Do you want to answer?"
27312856 msgstr "‏%s מתקשר אליך עם וידאו, האם ברצונך לענות?"
27322857
2733 #: ../src/empathy-event-manager.c:478
2858 #: ../src/empathy-event-manager.c:476
27342859 #, c-format
27352860 msgid "%s is calling you. Do you want to answer?"
27362861 msgstr "‏%s מתקשר אליך, האם ברצונך לענות?"
27372862
2738 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
2863 #: ../src/empathy-event-manager.c:479 ../src/empathy-event-manager.c:621
27392864 #, c-format
27402865 msgid "Incoming call from %s"
27412866 msgstr "שיחה נכנסת מ־%s"
27422867
2743 #: ../src/empathy-event-manager.c:506
2868 #: ../src/empathy-event-manager.c:504
27442869 msgid "_Reject"
27452870 msgstr "_דחייה"
27462871
2747 #: ../src/empathy-event-manager.c:512
2872 #: ../src/empathy-event-manager.c:510
27482873 msgid "_Answer"
27492874 msgstr "_מענה"
27502875
2751 #: ../src/empathy-event-manager.c:623
2876 #: ../src/empathy-event-manager.c:621
27522877 #, c-format
27532878 msgid "Incoming video call from %s"
27542879 msgstr "שיחת וידאו נכנסת מ־%s"
27552880
2756 #: ../src/empathy-event-manager.c:700
2881 #: ../src/empathy-event-manager.c:698
27572882 msgid "Room invitation"
27582883 msgstr "הזמנה לחדר"
27592884
2760 #: ../src/empathy-event-manager.c:702
2885 #: ../src/empathy-event-manager.c:700
27612886 #, c-format
27622887 msgid "Invitation to join %s"
27632888 msgstr "הזמנה להצטרף ל־%s"
27642889
2765 #: ../src/empathy-event-manager.c:709
2890 #: ../src/empathy-event-manager.c:707
27662891 #, c-format
27672892 msgid "%s is inviting you to join %s"
27682893 msgstr "‏%s מזמין אותך להצטרף אל %s"
27692894
2770 #: ../src/empathy-event-manager.c:717
2895 #: ../src/empathy-event-manager.c:715
27712896 msgid "_Decline"
27722897 msgstr "_סירוב"
27732898
2774 #: ../src/empathy-event-manager.c:722
2899 #: ../src/empathy-event-manager.c:720
27752900 #: ../src/empathy-new-chatroom-dialog.ui.h:7
27762901 msgid "_Join"
27772902 msgstr "ה_צטרפות"
27782903
2779 #: ../src/empathy-event-manager.c:760
2904 #: ../src/empathy-event-manager.c:758
27802905 #, c-format
27812906 msgid "%s invited you to join %s"
27822907 msgstr "‏%s הזמין אותך להצטרף אל %s"
27832908
2784 #: ../src/empathy-event-manager.c:787
2909 #: ../src/empathy-event-manager.c:785
27852910 #, c-format
27862911 msgid "Incoming file transfer from %s"
27872912 msgstr "העברת קבצים נכנסת מ־%s"
27882913
2789 #: ../src/empathy-event-manager.c:988
2914 #: ../src/empathy-event-manager.c:986
27902915 #, c-format
27912916 msgid "Subscription requested by %s"
27922917 msgstr "בקשת ההצטרפות התבקשה על ידי %s"
27932918
2794 #: ../src/empathy-event-manager.c:992
2919 #: ../src/empathy-event-manager.c:990
27952920 #, c-format
27962921 msgid ""
27972922 "\n"
28002925 "\n"
28012926 "הודעה: %s"
28022927
2803 #: ../src/empathy-event-manager.c:1035
2928 #: ../src/empathy-event-manager.c:1033
28042929 #, c-format
28052930 msgid "%s is now offline."
28062931 msgstr "‏%s מנותק כעת."
28072932
2808 #: ../src/empathy-event-manager.c:1055
2933 #: ../src/empathy-event-manager.c:1053
28092934 #, c-format
28102935 msgid "%s is now online."
28112936 msgstr "‏%s מחובר כעת."
29013026 msgid "Hashing \"%s\""
29023027 msgstr "מתבצע גיבוב ל־\"%s\""
29033028
2904 #: ../src/empathy-ft-manager.c:990
3029 #: ../src/empathy-ft-manager.c:996
29053030 msgid "%"
29063031 msgstr "%"
29073032
2908 #: ../src/empathy-ft-manager.c:1002
3033 #: ../src/empathy-ft-manager.c:1008
29093034 msgid "File"
29103035 msgstr "קובץ"
29113036
2912 #: ../src/empathy-ft-manager.c:1024
3037 #: ../src/empathy-ft-manager.c:1030
29133038 msgid "Remaining"
29143039 msgstr "נותר"
29153040
29453070 msgid "Source"
29463071 msgstr "מקור"
29473072
2948 #: ../src/empathy-main-window.c:476
3073 #. Labels for empty contact list
3074 #: ../src/empathy-main-window.c:95
3075 msgid "No match found"
3076 msgstr "לא נמצאה התאמה"
3077
3078 #: ../src/empathy-main-window.c:519
29493079 msgid "Reconnect"
29503080 msgstr "התחברות מחדש"
29513081
2952 #: ../src/empathy-main-window.c:482
3082 #: ../src/empathy-main-window.c:525
29533083 msgid "Edit Account"
29543084 msgstr "עריכת חשבון"
29553085
2956 #: ../src/empathy-main-window.c:488
3086 #: ../src/empathy-main-window.c:531
29573087 msgid "Close"
29583088 msgstr "סגירה"
29593089
2960 #: ../src/empathy-main-window.c:1177
3090 #: ../src/empathy-main-window.c:1213
29613091 msgid "Contact"
29623092 msgstr "איש קשר"
29633093
2964 #: ../src/empathy-main-window.c:1501
3094 #: ../src/empathy-main-window.c:1538
29653095 msgid "Contact List"
29663096 msgstr "רשימת אנשי קשר"
29673097
2968 #: ../src/empathy-main-window.c:1608
3098 #: ../src/empathy-main-window.c:1647
29693099 msgid "Show and edit accounts"
29703100 msgstr "הצגה ועריכה של חשבונות"
29713101
32783408 msgid "_Publish location to my contacts"
32793409 msgstr "_פרסום המיקום שלי לאנשי הקשר שלי"
32803410
3281 #: ../src/empathy-preferences.ui.h:32
3411 #. 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.
3412 #: ../src/empathy-preferences.ui.h:33
32823413 msgid "_Reduce location accuracy"
32833414 msgstr "ה_פחתת דיוק המיקום"
32843415
33103441 msgid "_Quit"
33113442 msgstr "יצי_אה"
33123443
3313 #: ../src/empathy-map-view.ui.h:1
3444 #: ../src/empathy-map-view.c:452
33143445 msgid "Contact Map View"
33153446 msgstr "מפת אנשי קשר"
33163447
34183549 #: ../src/empathy-debugger.c:40
34193550 msgid "Empathy Debugger"
34203551 msgstr "מנפה השגיאות של Empathy"
3552
3553 #~ msgid "Your contact list is empty"
3554 #~ msgstr "רשימת אנשי הקשר שלך ריקה"
34213555
34223556 #~ msgid "Send and receive messages"
34233557 #~ msgstr "שליחה וקבלה של מסרים מידיים"
+257
-204
po/nb.po less more
55 msgstr ""
66 "Project-Id-Version: empathy 2.31.x\n"
77 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2010-07-11 16:22+0200\n"
9 "PO-Revision-Date: 2010-07-11 16:24+0200\n"
8 "POT-Creation-Date: 2010-08-04 14:02+0200\n"
9 "PO-Revision-Date: 2010-08-04 14:05+0200\n"
1010 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
1111 "Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
1212 "Language: no\n"
1717
1818 #: ../data/empathy.desktop.in.in.h:1
1919 msgid "Chat on Google Talk, Facebook, MSN, and many other chat services"
20 msgstr ""
20 msgstr "Prat på Google Talk, Facebook, MSN og mange andre pratetjenester"
2121
2222 #: ../data/empathy.desktop.in.in.h:2
2323 msgid "Empathy"
8080
8181 #: ../data/org.gnome.Empathy.gschema.xml.in.h:11
8282 msgid "Display incoming events in the status area"
83 msgstr ""
83 msgstr "Vis innkommende hendelser i statusområdet"
8484
8585 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
8686 msgid ""
9898
9999 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
100100 msgid "Empathy can use the cellular network to guess the location"
101 msgstr ""
101 msgstr "Empathy kan bruke mobilnettverk til å gjette lokasjon"
102102
103103 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
104104 msgid "Empathy can use the network to guess the location"
105 msgstr ""
105 msgstr "Empathy kan bruke nettverket til å gjette lokasjon"
106106
107107 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
108108 msgid "Empathy default download folder"
114114
115115 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
116116 msgid "Empathy has migrated butterfly logs"
117 msgstr ""
117 msgstr "Empathy har migrert logger fra butterfly"
118118
119119 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
120120 msgid "Empathy should auto-away when idle"
243243
244244 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
245245 msgid "The position for the chat window side pane"
246 msgstr ""
246 msgstr "Posisjon for pratevinduets sidelinje"
247247
248248 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
249249 msgid "The stored position (in pixels) of the chat window side pane."
448448
449449 #. Tweak the dialog
450450 #: ../data/empathy-accounts.desktop.in.in.h:2
451 #: ../src/empathy-accounts-dialog.c:2094 ../src/cc-empathy-accounts-page.c:244
452 #: ../src/cc-empathy-accounts-panel.c:91
451 #: ../src/empathy-accounts-dialog.c:2092
453452 msgid "Messaging and VoIP Accounts"
454453 msgstr "Meldings- og VoIP-kontoer"
455454
497496 msgid "The other participant is unable to transfer the file"
498497 msgstr "Avsender kan ikke overføre filen"
499498
500 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:315
499 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:320
501500 msgid "Unknown reason"
502501 msgstr "Ukjent årsak"
503502
504 #: ../libempathy/empathy-utils.c:238
503 #: ../libempathy/empathy-utils.c:243
505504 msgid "Available"
506505 msgstr "Tilgjengelig"
507506
508 #: ../libempathy/empathy-utils.c:240
507 #: ../libempathy/empathy-utils.c:245
509508 msgid "Busy"
510509 msgstr "Opptatt"
511510
512 #: ../libempathy/empathy-utils.c:243
511 #: ../libempathy/empathy-utils.c:248
513512 msgid "Away"
514513 msgstr "Borte"
515514
516 #: ../libempathy/empathy-utils.c:245
515 #: ../libempathy/empathy-utils.c:250
517516 msgid "Invisible"
518517 msgstr "Usynlig"
519518
520 #: ../libempathy/empathy-utils.c:247
519 #: ../libempathy/empathy-utils.c:252
521520 msgid "Offline"
522521 msgstr "Frakoblet"
523522
524 #: ../libempathy/empathy-utils.c:249
523 #: ../libempathy/empathy-utils.c:254 ../src/empathy-call-window.c:1763
524 #: ../src/empathy-call-window.c:1764 ../src/empathy-call-window.c:1765
525 #: ../src/empathy-call-window.c:1766 ../src/empathy-call-window.ui.h:16
525526 msgid "Unknown"
526527 msgstr "Ukjent"
527528
528 #: ../libempathy/empathy-utils.c:287
529 #: ../libempathy/empathy-utils.c:292
529530 msgid "No reason specified"
530531 msgstr "Ingen årsak oppgitt"
531532
532 #: ../libempathy/empathy-utils.c:289
533 #: ../libempathy/empathy-utils.c:294
533534 msgid "Status is set to offline"
534535 msgstr "Status er satt til frakoblet"
535536
536 #: ../libempathy/empathy-utils.c:291
537 #: ../libempathy/empathy-utils.c:296
537538 msgid "Network error"
538539 msgstr "Nettverksfeil"
539540
540 #: ../libempathy/empathy-utils.c:293
541 #: ../libempathy/empathy-utils.c:298
541542 msgid "Authentication failed"
542543 msgstr "Autentiseringen feilet"
543544
544 #: ../libempathy/empathy-utils.c:295
545 #: ../libempathy/empathy-utils.c:300
545546 msgid "Encryption error"
546547 msgstr "Krypteringsfeil"
547548
548 #: ../libempathy/empathy-utils.c:297
549 #: ../libempathy/empathy-utils.c:302
549550 msgid "Name in use"
550551 msgstr "Navn i bruk"
551552
552 #: ../libempathy/empathy-utils.c:299
553 #: ../libempathy/empathy-utils.c:304
553554 msgid "Certificate not provided"
554555 msgstr "Sertifikat ikke oppgitt"
555556
556 #: ../libempathy/empathy-utils.c:301
557 #: ../libempathy/empathy-utils.c:306
557558 msgid "Certificate untrusted"
558559 msgstr "Stoler ikke på sertifikat"
559560
560 #: ../libempathy/empathy-utils.c:303
561 #: ../libempathy/empathy-utils.c:308
561562 msgid "Certificate expired"
562563 msgstr "Sertifikat utgått"
563564
564 #: ../libempathy/empathy-utils.c:305
565 #: ../libempathy/empathy-utils.c:310
565566 msgid "Certificate not activated"
566567 msgstr "Sertifikat ikke aktivert"
567568
568 #: ../libempathy/empathy-utils.c:307
569 #: ../libempathy/empathy-utils.c:312
569570 msgid "Certificate hostname mismatch"
570571 msgstr "Feil vertsnavn i forhold til sertifikat"
571572
572 #: ../libempathy/empathy-utils.c:309
573 #: ../libempathy/empathy-utils.c:314
573574 msgid "Certificate fingerprint mismatch"
574575 msgstr "Fingeravtrykk stemmer ikke for sertifikat"
575576
576 #: ../libempathy/empathy-utils.c:311
577 #: ../libempathy/empathy-utils.c:316
577578 msgid "Certificate self-signed"
578579 msgstr "Selvsignert sertifikat"
579580
580 #: ../libempathy/empathy-utils.c:313
581 #: ../libempathy/empathy-utils.c:318
581582 msgid "Certificate error"
582583 msgstr "Sertifikatsfeil"
583584
584 #: ../libempathy/empathy-utils.c:430
585 #: ../libempathy/empathy-utils.c:435
585586 msgid "People Nearby"
586587 msgstr "Personer i nærheten"
587588
588 #: ../libempathy/empathy-utils.c:435
589 #: ../libempathy/empathy-utils.c:440
589590 msgid "Yahoo! Japan"
590591 msgstr "Yahoo! Japan"
591592
592 #: ../libempathy/empathy-utils.c:436
593 #: ../libempathy/empathy-utils.c:441
593594 msgid "Facebook Chat"
594595 msgstr "Facebook-prat"
595596
11021103 msgid "Click to enlarge"
11031104 msgstr "Klikk for å forstørre"
11041105
1105 #: ../libempathy-gtk/empathy-chat.c:644
1106 #: ../libempathy-gtk/empathy-chat.c:645
11061107 msgid "Failed to open private chat"
11071108 msgstr "Klarte ikke å åpne privat prat"
11081109
1109 #: ../libempathy-gtk/empathy-chat.c:683
1110 #: ../libempathy-gtk/empathy-chat.c:685
11101111 msgid "Topic not supported on this conversation"
11111112 msgstr "Emne er ikke støttet for denne samtalen"
11121113
1113 #: ../libempathy-gtk/empathy-chat.c:689
1114 #: ../libempathy-gtk/empathy-chat.c:691
11141115 msgid "You are not allowed to change the topic"
11151116 msgstr "Du har ikke lov til å bytte emne"
11161117
1117 #: ../libempathy-gtk/empathy-chat.c:821
1118 #: ../libempathy-gtk/empathy-chat.c:825
11181119 msgid "/clear: clear all messages from the current conversation"
11191120 msgstr "/clear: tøm alle meldinger fra aktiv samtale"
11201121
1121 #: ../libempathy-gtk/empathy-chat.c:824
1122 #: ../libempathy-gtk/empathy-chat.c:828
11221123 msgid "/topic <topic>: set the topic of the current conversation"
11231124 msgstr "/topic <emne>: sett emne for aktiv samtale"
11241125
1125 #: ../libempathy-gtk/empathy-chat.c:827
1126 #: ../libempathy-gtk/empathy-chat.c:831
11261127 msgid "/join <chat room ID>: join a new chat room"
11271128 msgstr "/join <ID for praterom>: bli med i et nytt praterom"
11281129
1129 #: ../libempathy-gtk/empathy-chat.c:830
1130 #: ../libempathy-gtk/empathy-chat.c:834
11301131 msgid "/j <chat room ID>: join a new chat room"
11311132 msgstr "/j <prateroms-ID>: bli med i et nytt praterom"
11321133
1133 #: ../libempathy-gtk/empathy-chat.c:833
1134 #: ../libempathy-gtk/empathy-chat.c:839
11341135 msgid "/query <contact ID> [<message>]: open a private chat"
11351136 msgstr "/query <kontakt-ID> [<melding>]: åpne en privat samtale"
11361137
1137 #: ../libempathy-gtk/empathy-chat.c:836
1138 #: ../libempathy-gtk/empathy-chat.c:842
11381139 msgid "/msg <contact ID> <message>: open a private chat"
11391140 msgstr "/msg <kontakt-ID> <melding>: åpne en privat samtale"
11401141
1141 #: ../libempathy-gtk/empathy-chat.c:839
1142 #: ../libempathy-gtk/empathy-chat.c:846
11421143 msgid "/nick <nickname>: change your nickname on the current server"
11431144 msgstr "/nick <kallenavn>: bytt kallenavn på denne tjeneren"
11441145
1145 #: ../libempathy-gtk/empathy-chat.c:842
1146 #: ../libempathy-gtk/empathy-chat.c:849
11461147 msgid "/me <message>: send an ACTION message to the current conversation"
11471148 msgstr "/me <melding>: send en HANDLINGS-melding til aktiv samtale"
11481149
1149 #: ../libempathy-gtk/empathy-chat.c:845
1150 #: ../libempathy-gtk/empathy-chat.c:852
11501151 msgid ""
11511152 "/say <message>: send <message> to the current conversation. This is used to "
11521153 "send a message starting with a '/'. For example: \"/say /join is used to "
11531154 "join a new chat room\""
11541155 msgstr ""
11551156
1156 #: ../libempathy-gtk/empathy-chat.c:850
1157 #: ../libempathy-gtk/empathy-chat.c:857
11571158 msgid ""
11581159 "/help [<command>]: show all supported commands. If <command> is defined, "
11591160 "show its usage."
11601161 msgstr ""
11611162
1162 #: ../libempathy-gtk/empathy-chat.c:860
1163 #: ../libempathy-gtk/empathy-chat.c:867
11631164 #, c-format
11641165 msgid "Usage: %s"
11651166 msgstr "Bruk: %s"
11661167
1167 #: ../libempathy-gtk/empathy-chat.c:889
1168 #: ../libempathy-gtk/empathy-chat.c:896
11681169 msgid "Unknown command"
11691170 msgstr "Ukjent kommando"
11701171
1171 #: ../libempathy-gtk/empathy-chat.c:1010
1172 #: ../libempathy-gtk/empathy-chat.c:1017
11721173 msgid "Unknown command; see /help for the available commands"
11731174 msgstr "Ukjent kommando; se /help for tilgjengelige kommandoer"
11741175
1175 #: ../libempathy-gtk/empathy-chat.c:1148
1176 #: ../libempathy-gtk/empathy-chat.c:1155
11761177 msgid "offline"
11771178 msgstr "frakoblet"
11781179
1179 #: ../libempathy-gtk/empathy-chat.c:1151
1180 #: ../libempathy-gtk/empathy-chat.c:1158
11801181 msgid "invalid contact"
11811182 msgstr "ugyldig kontakt"
11821183
1183 #: ../libempathy-gtk/empathy-chat.c:1154
1184 #: ../libempathy-gtk/empathy-chat.c:1161
11841185 msgid "permission denied"
11851186 msgstr "tilgang nektet"
11861187
1187 #: ../libempathy-gtk/empathy-chat.c:1157
1188 #: ../libempathy-gtk/empathy-chat.c:1164
11881189 msgid "too long message"
11891190 msgstr "meldingen er for lang"
11901191
1191 #: ../libempathy-gtk/empathy-chat.c:1160
1192 #: ../libempathy-gtk/empathy-chat.c:1167
11921193 msgid "not implemented"
11931194 msgstr "ikke implementert"
11941195
1195 #: ../libempathy-gtk/empathy-chat.c:1163
1196 #: ../libempathy-gtk/empathy-chat.c:1170
11961197 msgid "unknown"
11971198 msgstr "ukjent"
11981199
1199 #: ../libempathy-gtk/empathy-chat.c:1167
1200 #: ../libempathy-gtk/empathy-chat.c:1174
12001201 #, c-format
12011202 msgid "Error sending message '%s': %s"
12021203 msgstr "Feil ved sending av melding «%s»: %s"
12031204
1204 #: ../libempathy-gtk/empathy-chat.c:1277 ../src/empathy-chat-window.c:691
1205 #: ../libempathy-gtk/empathy-chat.c:1284 ../src/empathy-chat-window.c:691
12051206 msgid "Topic:"
12061207 msgstr "Emne:"
12071208
1208 #: ../libempathy-gtk/empathy-chat.c:1289
1209 #: ../libempathy-gtk/empathy-chat.c:1296
12091210 #, c-format
12101211 msgid "Topic set to: %s"
12111212 msgstr "Emnet er satt til: %s"
12121213
1213 #: ../libempathy-gtk/empathy-chat.c:1291
1214 #: ../libempathy-gtk/empathy-chat.c:1298
12141215 msgid "No topic defined"
12151216 msgstr "Emne ikke definert"
12161217
1217 #: ../libempathy-gtk/empathy-chat.c:1770
1218 #: ../libempathy-gtk/empathy-chat.c:1777
12181219 msgid "(No Suggestions)"
12191220 msgstr "(Ingen forslag)"
12201221
1221 #: ../libempathy-gtk/empathy-chat.c:1824
1222 #: ../libempathy-gtk/empathy-chat.c:1831
12221223 msgid "Insert Smiley"
12231224 msgstr "Sett inn smilefjes"
12241225
12251226 #. send button
1226 #: ../libempathy-gtk/empathy-chat.c:1842
1227 #: ../libempathy-gtk/empathy-ui-utils.c:1619
1227 #: ../libempathy-gtk/empathy-chat.c:1849
1228 #: ../libempathy-gtk/empathy-ui-utils.c:1799
12281229 msgid "_Send"
12291230 msgstr "_Send"
12301231
1231 #: ../libempathy-gtk/empathy-chat.c:1876
1232 #: ../libempathy-gtk/empathy-chat.c:1883
12321233 msgid "_Spelling Suggestions"
12331234 msgstr "_Staveforslag"
12341235
1235 #: ../libempathy-gtk/empathy-chat.c:1953
1236 #: ../libempathy-gtk/empathy-chat.c:1960
12361237 msgid "Failed to retrieve recent logs"
12371238 msgstr "Klarte ikke å hente siste logger"
12381239
1239 #: ../libempathy-gtk/empathy-chat.c:2059
1240 #: ../libempathy-gtk/empathy-chat.c:2066
12401241 #, c-format
12411242 msgid "%s has disconnected"
12421243 msgstr "%s har koblet fra"
12441245 #. translators: reverse the order of these arguments
12451246 #. * if the kicked should come before the kicker in your locale.
12461247 #.
1247 #: ../libempathy-gtk/empathy-chat.c:2066
1248 #: ../libempathy-gtk/empathy-chat.c:2073
12481249 #, c-format
12491250 msgid "%1$s was kicked by %2$s"
12501251 msgstr "%1$s ble sparket av %2$s"
12511252
1252 #: ../libempathy-gtk/empathy-chat.c:2069
1253 #: ../libempathy-gtk/empathy-chat.c:2076
12531254 #, c-format
12541255 msgid "%s was kicked"
12551256 msgstr "%s ble sparket"
12571258 #. translators: reverse the order of these arguments
12581259 #. * if the banned should come before the banner in your locale.
12591260 #.
1260 #: ../libempathy-gtk/empathy-chat.c:2077
1261 #: ../libempathy-gtk/empathy-chat.c:2084
12611262 #, c-format
12621263 msgid "%1$s was banned by %2$s"
12631264 msgstr "%1$s ble bannlyst av %2$s"
12641265
1265 #: ../libempathy-gtk/empathy-chat.c:2080
1266 #: ../libempathy-gtk/empathy-chat.c:2087
12661267 #, c-format
12671268 msgid "%s was banned"
12681269 msgstr "%s ble bannlyst"
12691270
1270 #: ../libempathy-gtk/empathy-chat.c:2084
1271 #: ../libempathy-gtk/empathy-chat.c:2091
12711272 #, c-format
12721273 msgid "%s has left the room"
12731274 msgstr "%s har forlatt rommet"
12771278 #. * given by the user living the room. If this poses a problem,
12781279 #. * please let us know. :-)
12791280 #.
1280 #: ../libempathy-gtk/empathy-chat.c:2093
1281 #: ../libempathy-gtk/empathy-chat.c:2100
12811282 #, c-format
12821283 msgid " (%s)"
12831284 msgstr " (%s)"
12841285
1285 #: ../libempathy-gtk/empathy-chat.c:2118
1286 #: ../libempathy-gtk/empathy-chat.c:2125
12861287 #, c-format
12871288 msgid "%s has joined the room"
12881289 msgstr "%s har blitt med i rommet"
12891290
1290 #: ../libempathy-gtk/empathy-chat.c:2143
1291 #: ../libempathy-gtk/empathy-chat.c:2150
12911292 #, c-format
12921293 msgid "%s is now known as %s"
12931294 msgstr "%s er nå kjent som %s"
12941295
1295 #: ../libempathy-gtk/empathy-chat.c:2282 ../src/empathy-call-window.c:1655
1296 #: ../libempathy-gtk/empathy-chat.c:2289 ../src/empathy-call-window.c:1802
12961297 msgid "Disconnected"
12971298 msgstr "Koblet fra"
12981299
1299 #: ../libempathy-gtk/empathy-chat.c:2920
1300 #: ../libempathy-gtk/empathy-chat.c:2927
13001301 msgid "Wrong password; please try again:"
13011302 msgstr "Feil passord; vennligst prøv igjen:"
13021303
1303 #: ../libempathy-gtk/empathy-chat.c:2921
1304 #: ../libempathy-gtk/empathy-chat.c:2928
13041305 msgid "Retry"
13051306 msgstr "Prøv igjen"
13061307
1307 #: ../libempathy-gtk/empathy-chat.c:2926
1308 #: ../libempathy-gtk/empathy-chat.c:2933
13081309 msgid "This room is protected by a password:"
13091310 msgstr "Dette rommet er beskyttet med et passord:"
13101311
1311 #: ../libempathy-gtk/empathy-chat.c:2927
1312 #: ../libempathy-gtk/empathy-chat.c:2934
13121313 msgid "Join"
13131314 msgstr "Bli med"
13141315
1315 #: ../libempathy-gtk/empathy-chat.c:3067
1316 #: ../libempathy-gtk/empathy-chat.c:3074
13161317 msgid "Connected"
13171318 msgstr "Koblet til"
13181319
1319 #: ../libempathy-gtk/empathy-chat.c:3120
1320 #: ../libempathy-gtk/empathy-chat.c:3127
13201321 #: ../libempathy-gtk/empathy-log-window.c:639
13211322 msgid "Conversation"
13221323 msgstr "Samtale"
13231324
13241325 #. Copy Link Address menu item
13251326 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1326 #: ../libempathy-gtk/empathy-theme-adium.c:785
1327 #: ../libempathy-gtk/empathy-theme-adium.c:791
13271328 msgid "_Copy Link Address"
13281329 msgstr "_Kopier lenkens adresse"
13291330
13301331 #. Open Link menu item
13311332 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1332 #: ../libempathy-gtk/empathy-theme-adium.c:792
1333 #: ../libempathy-gtk/empathy-theme-adium.c:798
13331334 msgid "_Open Link"
13341335 msgstr "_Åpne lenke"
13351336
13481349 msgstr "Personlig informasjon"
13491350
13501351 #: ../libempathy-gtk/empathy-contact-dialogs.c:401
1352 #: ../libempathy-gtk/empathy-individual-dialogs.c:112
13511353 msgid "New Contact"
13521354 msgstr "Ny kontakt"
13531355
13591361 msgid "Subscription Request"
13601362 msgstr "Abonnementsforespørsel"
13611363
1362 #: ../libempathy-gtk/empathy-contact-list-view.c:1984
1364 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1365 #: ../libempathy-gtk/empathy-individual-view.c:2017
13631366 #, c-format
13641367 msgid "Do you really want to remove the group '%s'?"
13651368 msgstr "Vil du virkelig fjerne gruppen «%s»?"
13661369
1367 #: ../libempathy-gtk/empathy-contact-list-view.c:1986
1370 #: ../libempathy-gtk/empathy-contact-list-view.c:2008
1371 #: ../libempathy-gtk/empathy-individual-view.c:2020
13681372 msgid "Removing group"
13691373 msgstr "Fjerner gruppe"
13701374
13711375 #. Remove
1372 #: ../libempathy-gtk/empathy-contact-list-view.c:2035
1373 #: ../libempathy-gtk/empathy-contact-list-view.c:2112
1376 #: ../libempathy-gtk/empathy-contact-list-view.c:2057
1377 #: ../libempathy-gtk/empathy-contact-list-view.c:2134
1378 #: ../libempathy-gtk/empathy-individual-view.c:2074
1379 #: ../libempathy-gtk/empathy-individual-view.c:2159
13741380 #: ../src/empathy-accounts-dialog.ui.h:6
13751381 msgid "_Remove"
13761382 msgstr "Fje_rn"
13771383
1378 #: ../libempathy-gtk/empathy-contact-list-view.c:2065
1384 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1385 #: ../libempathy-gtk/empathy-individual-view.c:2105
13791386 #, c-format
13801387 msgid "Do you really want to remove the contact '%s'?"
13811388 msgstr "Vil du virkelig fjerne kontakten «%s»?"
13821389
1383 #: ../libempathy-gtk/empathy-contact-list-view.c:2067
1390 #: ../libempathy-gtk/empathy-contact-list-view.c:2089
1391 #: ../libempathy-gtk/empathy-individual-view.c:2107
13841392 msgid "Removing contact"
13851393 msgstr "Fjerner kontakt"
13861394
13871395 #: ../libempathy-gtk/empathy-contact-menu.c:203
1396 #: ../libempathy-gtk/empathy-individual-menu.c:223
13881397 #: ../src/empathy-main-window.ui.h:13
13891398 msgid "_Add Contact…"
13901399 msgstr "_Legg til kontakt..."
13911400
13921401 #: ../libempathy-gtk/empathy-contact-menu.c:231
1402 #: ../libempathy-gtk/empathy-individual-menu.c:264
13931403 #: ../src/empathy-main-window.ui.h:14
13941404 msgid "_Chat"
13951405 msgstr "_Prat"
13961406
13971407 #: ../libempathy-gtk/empathy-contact-menu.c:261
1408 #: ../libempathy-gtk/empathy-individual-menu.c:306
13981409 msgctxt "menu item"
13991410 msgid "_Audio Call"
14001411 msgstr "_Lydsamtale"
14011412
14021413 #: ../libempathy-gtk/empathy-contact-menu.c:291
1414 #: ../libempathy-gtk/empathy-individual-menu.c:351
14031415 msgctxt "menu item"
14041416 msgid "_Video Call"
14051417 msgstr "_Videosamtale"
14061418
14071419 #: ../libempathy-gtk/empathy-contact-menu.c:331
1420 #: ../libempathy-gtk/empathy-individual-menu.c:403
14081421 #: ../src/empathy-main-window.ui.h:25
14091422 msgid "_Previous Conversations"
14101423 msgstr "_Tidligere samtaler"
14111424
14121425 #: ../libempathy-gtk/empathy-contact-menu.c:353
1426 #: ../libempathy-gtk/empathy-individual-menu.c:444
14131427 msgid "Send File"
14141428 msgstr "Send fil"
14151429
14161430 #: ../libempathy-gtk/empathy-contact-menu.c:376
1431 #: ../libempathy-gtk/empathy-individual-menu.c:486
14171432 msgid "Share My Desktop"
14181433 msgstr "Del mitt skrivebord"
14191434
14201435 #: ../libempathy-gtk/empathy-contact-menu.c:416
1421 #: ../libempathy-gtk/empathy-contact-widget.c:1819
1436 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1437 #: ../libempathy-gtk/empathy-individual-menu.c:515
14221438 msgid "Favorite"
14231439 msgstr "Favoritt"
14241440
14251441 #: ../libempathy-gtk/empathy-contact-menu.c:445
1442 #: ../libempathy-gtk/empathy-individual-menu.c:547
14261443 msgid "Infor_mation"
14271444 msgstr "Infor_masjon"
14281445
14321449 msgstr "R_ediger"
14331450
14341451 #: ../libempathy-gtk/empathy-contact-menu.c:545
1452 #: ../libempathy-gtk/empathy-individual-menu.c:664
14351453 #: ../src/empathy-chat-window.c:903
14361454 msgid "Inviting you to this room"
14371455 msgstr "Inviterer deg til dette rommet"
14381456
14391457 #: ../libempathy-gtk/empathy-contact-menu.c:576
1458 #: ../libempathy-gtk/empathy-individual-menu.c:702
14401459 msgid "_Invite to Chat Room"
14411460 msgstr "_Inviter til praterom"
14421461
14641483 msgid "Birthday:"
14651484 msgstr "Fødselsdag:"
14661485
1467 #: ../libempathy-gtk/empathy-contact-widget.c:614
1486 #: ../libempathy-gtk/empathy-contact-widget.c:603
14681487 msgid "Select"
14691488 msgstr "Velg"
14701489
1471 #: ../libempathy-gtk/empathy-contact-widget.c:623
1472 #: ../src/empathy-main-window.c:1171
1490 #: ../libempathy-gtk/empathy-contact-widget.c:612
1491 #: ../src/empathy-main-window.c:1192
14731492 msgid "Group"
14741493 msgstr "Gruppe"
14751494
1476 #: ../libempathy-gtk/empathy-contact-widget.c:854
1495 #: ../libempathy-gtk/empathy-contact-widget.c:841
14771496 msgid "Country ISO Code:"
14781497 msgstr "ISO-kode for land:"
14791498
1480 #: ../libempathy-gtk/empathy-contact-widget.c:856
1499 #: ../libempathy-gtk/empathy-contact-widget.c:843
14811500 msgid "Country:"
14821501 msgstr "Land:"
14831502
1484 #: ../libempathy-gtk/empathy-contact-widget.c:858
1503 #: ../libempathy-gtk/empathy-contact-widget.c:845
14851504 msgid "State:"
14861505 msgstr "Tilstand:"
14871506
1488 #: ../libempathy-gtk/empathy-contact-widget.c:860
1507 #: ../libempathy-gtk/empathy-contact-widget.c:847
14891508 msgid "City:"
14901509 msgstr "By:"
14911510
1492 #: ../libempathy-gtk/empathy-contact-widget.c:862
1511 #: ../libempathy-gtk/empathy-contact-widget.c:849
14931512 msgid "Area:"
14941513 msgstr "Område:"
14951514
1496 #: ../libempathy-gtk/empathy-contact-widget.c:864
1515 #: ../libempathy-gtk/empathy-contact-widget.c:851
14971516 msgid "Postal Code:"
14981517 msgstr "Postkode:"
14991518
1500 #: ../libempathy-gtk/empathy-contact-widget.c:866
1519 #: ../libempathy-gtk/empathy-contact-widget.c:853
15011520 msgid "Street:"
15021521 msgstr "Gate:"
15031522
1504 #: ../libempathy-gtk/empathy-contact-widget.c:868
1523 #: ../libempathy-gtk/empathy-contact-widget.c:855
15051524 msgid "Building:"
15061525 msgstr "Bygning:"
15071526
1508 #: ../libempathy-gtk/empathy-contact-widget.c:870
1527 #: ../libempathy-gtk/empathy-contact-widget.c:857
15091528 msgid "Floor:"
15101529 msgstr "Etasje:"
15111530
1512 #: ../libempathy-gtk/empathy-contact-widget.c:872
1531 #: ../libempathy-gtk/empathy-contact-widget.c:859
15131532 msgid "Room:"
15141533 msgstr "Rom:"
15151534
1516 #: ../libempathy-gtk/empathy-contact-widget.c:874
1535 #: ../libempathy-gtk/empathy-contact-widget.c:861
15171536 msgid "Text:"
15181537 msgstr "Tekst:"
15191538
1520 #: ../libempathy-gtk/empathy-contact-widget.c:876
1539 #: ../libempathy-gtk/empathy-contact-widget.c:863
15211540 msgid "Description:"
15221541 msgstr "Beskrivelse:"
15231542
1524 #: ../libempathy-gtk/empathy-contact-widget.c:878
1543 #: ../libempathy-gtk/empathy-contact-widget.c:865
15251544 msgid "URI:"
15261545 msgstr "URI:"
15271546
1528 #: ../libempathy-gtk/empathy-contact-widget.c:880
1547 #: ../libempathy-gtk/empathy-contact-widget.c:867
15291548 msgid "Accuracy Level:"
15301549 msgstr "Nøyaktighetsnivå:"
15311550
1532 #: ../libempathy-gtk/empathy-contact-widget.c:882
1551 #: ../libempathy-gtk/empathy-contact-widget.c:869
15331552 msgid "Error:"
15341553 msgstr "Feil:"
15351554
1536 #: ../libempathy-gtk/empathy-contact-widget.c:884
1555 #: ../libempathy-gtk/empathy-contact-widget.c:871
15371556 msgid "Vertical Error (meters):"
15381557 msgstr "Vertikal feil (meter):"
15391558
1540 #: ../libempathy-gtk/empathy-contact-widget.c:886
1559 #: ../libempathy-gtk/empathy-contact-widget.c:873
15411560 msgid "Horizontal Error (meters):"
15421561 msgstr "Horisontal feil (meter):"
15431562
1544 #: ../libempathy-gtk/empathy-contact-widget.c:888
1563 #: ../libempathy-gtk/empathy-contact-widget.c:875
15451564 msgid "Speed:"
15461565 msgstr "Hastighet:"
15471566
1548 #: ../libempathy-gtk/empathy-contact-widget.c:890
1567 #: ../libempathy-gtk/empathy-contact-widget.c:877
15491568 msgid "Bearing:"
15501569 msgstr "Retning:"
15511570
1552 #: ../libempathy-gtk/empathy-contact-widget.c:892
1571 #: ../libempathy-gtk/empathy-contact-widget.c:879
15531572 msgid "Climb Speed:"
15541573 msgstr "Klatrehastighet:"
15551574
1556 #: ../libempathy-gtk/empathy-contact-widget.c:894
1575 #: ../libempathy-gtk/empathy-contact-widget.c:881
15571576 msgid "Last Updated on:"
15581577 msgstr "Sist oppdatert:"
15591578
1560 #: ../libempathy-gtk/empathy-contact-widget.c:896
1579 #: ../libempathy-gtk/empathy-contact-widget.c:883
15611580 msgid "Longitude:"
15621581 msgstr "Lengdegrad:"
15631582
1564 #: ../libempathy-gtk/empathy-contact-widget.c:898
1583 #: ../libempathy-gtk/empathy-contact-widget.c:885
15651584 msgid "Latitude:"
15661585 msgstr "Breddegrad:"
15671586
1568 #: ../libempathy-gtk/empathy-contact-widget.c:900
1587 #: ../libempathy-gtk/empathy-contact-widget.c:887
15691588 msgid "Altitude:"
15701589 msgstr "Høyde:"
15711590
1572 #: ../libempathy-gtk/empathy-contact-widget.c:963
1591 #: ../libempathy-gtk/empathy-contact-widget.c:950
15731592 #: ../src/empathy-preferences.ui.h:12
15741593 msgid "Location"
15751594 msgstr "Sted"
15761595
1577 #: ../libempathy-gtk/empathy-contact-widget.c:979
1596 #: ../libempathy-gtk/empathy-contact-widget.c:966
15781597 msgid "<b>Location</b>, "
15791598 msgstr "<b>Lokasjon</b>, "
15801599
1581 #: ../libempathy-gtk/empathy-contact-widget.c:1030
1600 #: ../libempathy-gtk/empathy-contact-widget.c:1017
15821601 msgid "%B %e, %Y at %R UTC"
15831602 msgstr "%B %e, %Y, %R UTC"
15841603
1585 #: ../libempathy-gtk/empathy-contact-widget.c:1113
1604 #: ../libempathy-gtk/empathy-contact-widget.c:1100
15861605 msgid "Save Avatar"
15871606 msgstr "Lagre personbilder"
15881607
1589 #: ../libempathy-gtk/empathy-contact-widget.c:1169
1608 #: ../libempathy-gtk/empathy-contact-widget.c:1156
15901609 msgid "Unable to save avatar"
15911610 msgstr "Kan ikke lagre personbilde"
15921611
16431662 msgid "_Add Group"
16441663 msgstr "_Legg til gruppe"
16451664
1665 #: ../libempathy-gtk/empathy-individual-menu.c:603
1666 msgctxt "Edit individual (contextual menu)"
1667 msgid "_Edit"
1668 msgstr "R_ediger"
1669
16461670 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16471671 msgid "new server"
16481672 msgstr "ny tjener"
17051729
17061730 #. add chat button
17071731 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1708 #: ../src/empathy-call-window.ui.h:17
1732 #: ../src/empathy-call-window.ui.h:22
17091733 msgid "_Call"
17101734 msgstr "_Ring"
17111735
18351859 msgid "Blue"
18361860 msgstr "Blå"
18371861
1838 #: ../libempathy-gtk/empathy-ui-utils.c:1516
1862 #: ../libempathy-gtk/empathy-ui-utils.c:1696
18391863 msgid "Unable to open URI"
18401864 msgstr "Kan ikke åpne URI"
18411865
1842 #: ../libempathy-gtk/empathy-ui-utils.c:1611
1866 #: ../libempathy-gtk/empathy-ui-utils.c:1791
18431867 msgid "Select a file"
18441868 msgstr "Velg en fil"
18451869
1846 #: ../libempathy-gtk/empathy-ui-utils.c:1680
1870 #: ../libempathy-gtk/empathy-ui-utils.c:1860
18471871 #, c-format
18481872 msgid "Incoming file from %s"
18491873 msgstr "Innkommende fil fra %s"
21272151 #. To translator: %s is the name of the protocol, such as "Google Talk" or
21282152 #. * "Yahoo!"
21292153 #.
2130 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:606
2154 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:604
21312155 #, c-format
21322156 msgid "New %s account"
21332157 msgstr "Ny %s-konto"
22682292 msgid "Your new account has not been saved yet."
22692293 msgstr "Din nye konto er ikke lagret ennå."
22702294
2271 #: ../src/empathy-accounts-dialog.c:273 ../src/empathy-call-window.c:792
2295 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
22722296 msgid "Connecting…"
22732297 msgstr "Kobler til..."
22742298
2275 #: ../src/empathy-accounts-dialog.c:314
2299 #: ../src/empathy-accounts-dialog.c:312
22762300 #, c-format
22772301 msgid "Offline — %s"
22782302 msgstr "Frakoblet - %s"
22792303
2280 #: ../src/empathy-accounts-dialog.c:326
2304 #: ../src/empathy-accounts-dialog.c:324
22812305 #, c-format
22822306 msgid "Disconnected — %s"
22832307 msgstr "Koblet fra - %s"
22842308
2285 #: ../src/empathy-accounts-dialog.c:337
2309 #: ../src/empathy-accounts-dialog.c:335
22862310 msgid "Offline — No Network Connection"
22872311 msgstr "Frakoblet - Ingen nettverkstilkobling"
22882312
2289 #: ../src/empathy-accounts-dialog.c:344
2313 #: ../src/empathy-accounts-dialog.c:342
22902314 msgid "Unknown Status"
22912315 msgstr "Ukjent status"
22922316
2293 #: ../src/empathy-accounts-dialog.c:356
2317 #: ../src/empathy-accounts-dialog.c:354
22942318 msgid "Offline — Account Disabled"
22952319 msgstr "Frakoblet - Konto deaktivert"
22962320
2297 #: ../src/empathy-accounts-dialog.c:797
2321 #: ../src/empathy-accounts-dialog.c:795
22982322 msgid ""
22992323 "You are about to create a new account, which will discard\n"
23002324 "your changes. Are you sure you want to proceed?"
23022326 "Du er i ferd med å lage en ny konto hvilket vil forkaste\n"
23032327 "dine endringer. Er du sikker på at du vil fortsette?"
23042328
2305 #: ../src/empathy-accounts-dialog.c:1144
2329 #: ../src/empathy-accounts-dialog.c:1142
23062330 #, c-format
23072331 msgid "Do you want to remove %s from your computer?"
23082332 msgstr "Vil du fjerne %s fra din datamaskin?"
23092333
2310 #: ../src/empathy-accounts-dialog.c:1148
2334 #: ../src/empathy-accounts-dialog.c:1146
23112335 msgid "This will not remove your account on the server."
23122336 msgstr "Dette vil ikke fjerne din konto på tjeneren."
23132337
2314 #: ../src/empathy-accounts-dialog.c:1385
2338 #: ../src/empathy-accounts-dialog.c:1383
23152339 msgid ""
23162340 "You are about to select another account, which will discard\n"
23172341 "your changes. Are you sure you want to proceed?"
23192343 "Du er i ferd med å velge en annen konto hvilket vil forkaste\n"
23202344 "dine endringer. Er du sikker på at du vil fortsette?"
23212345
2322 #: ../src/empathy-accounts-dialog.c:1962
2346 #: ../src/empathy-accounts-dialog.c:1960
23232347 msgid ""
23242348 "You are about to close the window, which will discard\n"
23252349 "your changes. Are you sure you want to proceed?"
23552379 msgid "People nearby"
23562380 msgstr "Personer i nærheten"
23572381
2358 #: ../src/empathy-call-window.c:463
2382 #: ../src/empathy-av.c:133
2383 msgid "- Empathy Audio/Video Client"
2384 msgstr "- Empathy lyd-/bildeklient"
2385
2386 #: ../src/empathy-av.c:149
2387 msgid "Empathy Audio/Video Client"
2388 msgstr "Empathy lyd-/bildeklient"
2389
2390 #: ../src/empathy-call-window.c:470
23592391 msgid "Contrast"
23602392 msgstr "Kontrast"
23612393
2362 #: ../src/empathy-call-window.c:466
2394 #: ../src/empathy-call-window.c:473
23632395 msgid "Brightness"
23642396 msgstr "Lysstyrke"
23652397
2366 #: ../src/empathy-call-window.c:469
2398 #: ../src/empathy-call-window.c:476
23672399 msgid "Gamma"
23682400 msgstr "Gamma"
23692401
2370 #: ../src/empathy-call-window.c:574
2402 #: ../src/empathy-call-window.c:581
23712403 msgid "Volume"
23722404 msgstr "Volum"
23732405
2374 #: ../src/empathy-call-window.c:1134
2406 #: ../src/empathy-call-window.c:1146
23752407 msgid "_Sidebar"
23762408 msgstr "_Sidelinje"
23772409
2378 #: ../src/empathy-call-window.c:1153
2410 #: ../src/empathy-call-window.c:1165
23792411 msgid "Audio input"
23802412 msgstr "Lydinngang"
23812413
2382 #: ../src/empathy-call-window.c:1157
2414 #: ../src/empathy-call-window.c:1169
23832415 msgid "Video input"
23842416 msgstr "Videoinngang"
23852417
2386 #: ../src/empathy-call-window.c:1161
2418 #: ../src/empathy-call-window.c:1173
23872419 msgid "Dialpad"
23882420 msgstr "Nummertavle"
23892421
2422 #: ../src/empathy-call-window.c:1178
2423 msgid "Details"
2424 msgstr "Detaljer"
2425
23902426 #. translators: Call is a noun and %s is the contact name. This string
23912427 #. * is used in the window title
2392 #: ../src/empathy-call-window.c:1232
2428 #: ../src/empathy-call-window.c:1246
23932429 #, c-format
23942430 msgid "Call with %s"
23952431 msgstr "Samtale med %s"
23962432
23972433 #. translators: Call is a noun. This string is used in the window
23982434 #. * title
2399 #: ../src/empathy-call-window.c:1311
2435 #: ../src/empathy-call-window.c:1325
24002436 msgid "Call"
24012437 msgstr "Ring"
24022438
24032439 #. Translators: number of minutes:seconds the caller has been connected
2404 #: ../src/empathy-call-window.c:1968
2440 #: ../src/empathy-call-window.c:2117
24052441 #, c-format
24062442 msgid "Connected — %d:%02dm"
24072443 msgstr "Koblet til - %d:%02dm"
24082444
2409 #: ../src/empathy-call-window.c:2029
2445 #: ../src/empathy-call-window.c:2178
24102446 msgid "Technical Details"
24112447 msgstr "Tekniske detaljer"
24122448
2413 #: ../src/empathy-call-window.c:2067
2449 #: ../src/empathy-call-window.c:2216
24142450 #, c-format
24152451 msgid ""
24162452 "%s's software does not understand any of the audio formats supported by your "
24192455 "Programvaren til %s forstår ikke noen av lydformatene som støttes av din "
24202456 "datamaskin"
24212457
2422 #: ../src/empathy-call-window.c:2072
2458 #: ../src/empathy-call-window.c:2221
24232459 #, c-format
24242460 msgid ""
24252461 "%s's software does not understand any of the video formats supported by your "
24282464 "Programvaren til %s forstår ikke noen av videoformatene som støttes av din "
24292465 "datamaskin"
24302466
2431 #: ../src/empathy-call-window.c:2078
2467 #: ../src/empathy-call-window.c:2227
24322468 #, c-format
24332469 msgid ""
24342470 "Can't establish a connection to %s. One of you might be on a network that "
24372473 "Kan ikke etablere tilkobling til %s. En av dere kan være på et nettverk som "
24382474 "ikke tillater direkte tilkoblinger."
24392475
2440 #: ../src/empathy-call-window.c:2084
2476 #: ../src/empathy-call-window.c:2233
24412477 msgid "There was a failure on the network"
24422478 msgstr "Det oppsto en feil på nettverket"
24432479
2444 #: ../src/empathy-call-window.c:2088
2480 #: ../src/empathy-call-window.c:2237
24452481 msgid ""
24462482 "The audio formats necessary for this call are not installed on your computer"
24472483 msgstr ""
24482484 "Lydformatene som kreves for denne samtalen er ikke installert på din "
24492485 "datamaskin"
24502486
2451 #: ../src/empathy-call-window.c:2091
2487 #: ../src/empathy-call-window.c:2240
24522488 msgid ""
24532489 "The video formats necessary for this call are not installed on your computer"
24542490 msgstr ""
24552491 "Videoformatene som kreves for denne samtalen er ikke installert på din "
24562492 "datamaskin"
24572493
2458 #: ../src/empathy-call-window.c:2101
2494 #: ../src/empathy-call-window.c:2250
24592495 #, c-format
24602496 msgid ""
24612497 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
24662502 "\">rapporter denne feilen</a> og legg ved loggene som samles inn i "
24672503 "«Feilsøking»-vinduet i Hjelp-menyen."
24682504
2469 #: ../src/empathy-call-window.c:2109
2505 #: ../src/empathy-call-window.c:2258
24702506 msgid "There was a failure in the call engine"
24712507 msgstr "Det oppsto en feil i samtalemotoren"
24722508
2473 #: ../src/empathy-call-window.c:2148
2509 #: ../src/empathy-call-window.c:2297
24742510 msgid "Can't establish audio stream"
24752511 msgstr "Kan ikke etablere lydstrøm"
24762512
2477 #: ../src/empathy-call-window.c:2158
2513 #: ../src/empathy-call-window.c:2307
24782514 msgid "Can't establish video stream"
24792515 msgstr "Kan ikke etablere videostrøm"
24802516
24812517 #: ../src/empathy-call-window.ui.h:1
2518 msgid "Audio"
2519 msgstr "Lyd"
2520
2521 #: ../src/empathy-call-window.ui.h:2
24822522 msgid "Call the contact again"
24832523 msgstr "Ring kontakten igjen"
24842524
2485 #: ../src/empathy-call-window.ui.h:2
2525 #: ../src/empathy-call-window.ui.h:3
24862526 msgid "Camera Off"
24872527 msgstr "Kamera av"
24882528
2489 #: ../src/empathy-call-window.ui.h:3
2529 #: ../src/empathy-call-window.ui.h:4
24902530 msgid "Camera On"
24912531 msgstr "Kamera på"
24922532
2493 #: ../src/empathy-call-window.ui.h:4
2533 #: ../src/empathy-call-window.ui.h:5
2534 msgid "Decoding Codec:"
2535 msgstr "Kodek for dekoding:"
2536
2537 #: ../src/empathy-call-window.ui.h:6
24942538 msgid "Disable camera and stop sending video"
24952539 msgstr "Slå av kamera og stopp sending av video"
24962540
2497 #: ../src/empathy-call-window.ui.h:5
2541 #: ../src/empathy-call-window.ui.h:7
24982542 msgid "Enable camera and send video"
24992543 msgstr "Slå på kamera og send video"
25002544
2501 #: ../src/empathy-call-window.ui.h:6
2545 #: ../src/empathy-call-window.ui.h:8
25022546 msgid "Enable camera but don't send video"
25032547 msgstr "Slå på kamera men ikke send video"
25042548
2505 #: ../src/empathy-call-window.ui.h:7
2549 #: ../src/empathy-call-window.ui.h:9
2550 msgid "Encoding Codec:"
2551 msgstr "Kodek for koding:"
2552
2553 #: ../src/empathy-call-window.ui.h:10
25062554 msgid "Hang up"
25072555 msgstr "Legg på"
25082556
2509 #: ../src/empathy-call-window.ui.h:8
2557 #: ../src/empathy-call-window.ui.h:11
25102558 msgid "Hang up current call"
25112559 msgstr "Legg på denne samtalen"
25122560
2513 #: ../src/empathy-call-window.ui.h:9
2561 #: ../src/empathy-call-window.ui.h:12
25142562 msgid "Preview"
25152563 msgstr "Forhåndsvis"
25162564
2517 #: ../src/empathy-call-window.ui.h:10
2565 #: ../src/empathy-call-window.ui.h:13
25182566 msgid "Redial"
25192567 msgstr "Ring på nytt"
25202568
2521 #: ../src/empathy-call-window.ui.h:11
2569 #: ../src/empathy-call-window.ui.h:14
25222570 msgid "Send Audio"
25232571 msgstr "Send lyd"
25242572
2525 #: ../src/empathy-call-window.ui.h:12
2573 #: ../src/empathy-call-window.ui.h:15
25262574 msgid "Toggle audio transmission"
25272575 msgstr "Slå av/på overføring av lyd"
25282576
2529 #: ../src/empathy-call-window.ui.h:13
2577 #: ../src/empathy-call-window.ui.h:17
25302578 msgid "V_ideo"
25312579 msgstr "V_ideo"
25322580
2533 #: ../src/empathy-call-window.ui.h:14
2581 #: ../src/empathy-call-window.ui.h:18
2582 msgid "Video"
2583 msgstr "Video"
2584
2585 #: ../src/empathy-call-window.ui.h:19
25342586 msgid "Video Off"
25352587 msgstr "Video av"
25362588
2537 #: ../src/empathy-call-window.ui.h:15
2589 #: ../src/empathy-call-window.ui.h:20
25382590 msgid "Video On"
25392591 msgstr "Video på"
25402592
2541 #: ../src/empathy-call-window.ui.h:16
2593 #: ../src/empathy-call-window.ui.h:21
25422594 msgid "Video Preview"
25432595 msgstr "Forhåndsvis video"
25442596
2545 #: ../src/empathy-call-window.ui.h:18 ../src/empathy-main-window.ui.h:27
2597 #: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:27
25462598 msgid "_View"
25472599 msgstr "_Vis"
25482600
26702722 msgid "Manage Favorite Rooms"
26712723 msgstr "Håndter favorittrom"
26722724
2673 #: ../src/empathy-event-manager.c:471
2725 #: ../src/empathy-event-manager.c:473
26742726 msgid "Incoming video call"
26752727 msgstr "Innkommende videosamtale"
26762728
2677 #: ../src/empathy-event-manager.c:471
2729 #: ../src/empathy-event-manager.c:473
26782730 msgid "Incoming call"
26792731 msgstr "Innkommende samtale"
26802732
2681 #: ../src/empathy-event-manager.c:475
2733 #: ../src/empathy-event-manager.c:477
26822734 #, c-format
26832735 msgid "%s is video calling you. Do you want to answer?"
26842736 msgstr "%s ringer deg med video. Vil du svare?"
26852737
2686 #: ../src/empathy-event-manager.c:476
2738 #: ../src/empathy-event-manager.c:478
26872739 #, c-format
26882740 msgid "%s is calling you. Do you want to answer?"
26892741 msgstr "%s ringer deg. Vil du svare?"
26902742
2691 #: ../src/empathy-event-manager.c:479 ../src/empathy-event-manager.c:621
2743 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
26922744 #, c-format
26932745 msgid "Incoming call from %s"
26942746 msgstr "Innkommende samtale fra %s"
26952747
2696 #: ../src/empathy-event-manager.c:504
2748 #: ../src/empathy-event-manager.c:506
26972749 msgid "_Reject"
26982750 msgstr "Av_vis"
26992751
2700 #: ../src/empathy-event-manager.c:510
2752 #: ../src/empathy-event-manager.c:512
27012753 msgid "_Answer"
27022754 msgstr "Sv_ar"
27032755
2704 #: ../src/empathy-event-manager.c:621
2756 #: ../src/empathy-event-manager.c:623
27052757 #, c-format
27062758 msgid "Incoming video call from %s"
27072759 msgstr "Innkommende videosamtale fra %s"
27082760
2709 #: ../src/empathy-event-manager.c:698
2761 #: ../src/empathy-event-manager.c:700
27102762 msgid "Room invitation"
27112763 msgstr "Invitasjon til rom"
27122764
2713 #: ../src/empathy-event-manager.c:700
2765 #: ../src/empathy-event-manager.c:702
27142766 #, c-format
27152767 msgid "Invitation to join %s"
27162768 msgstr "Invitasjon til å bli med i %s"
27172769
2718 #: ../src/empathy-event-manager.c:707
2770 #: ../src/empathy-event-manager.c:709
27192771 #, c-format
27202772 msgid "%s is inviting you to join %s"
27212773 msgstr "%s inviterer deg til å bli med i %s"
27222774
2723 #: ../src/empathy-event-manager.c:715
2775 #: ../src/empathy-event-manager.c:717
27242776 msgid "_Decline"
27252777 msgstr "_Avslå"
27262778
2727 #: ../src/empathy-event-manager.c:720
2779 #: ../src/empathy-event-manager.c:722
27282780 #: ../src/empathy-new-chatroom-dialog.ui.h:7
27292781 msgid "_Join"
27302782 msgstr "_Bli med"
27312783
2732 #: ../src/empathy-event-manager.c:758
2784 #: ../src/empathy-event-manager.c:760
27332785 #, c-format
27342786 msgid "%s invited you to join %s"
27352787 msgstr "%s inviterte deg til å bli med i %s"
27362788
2737 #: ../src/empathy-event-manager.c:785
2789 #: ../src/empathy-event-manager.c:787
27382790 #, c-format
27392791 msgid "Incoming file transfer from %s"
27402792 msgstr "Innkommende filoverføring fra %s"
27412793
2742 #: ../src/empathy-event-manager.c:986
2794 #: ../src/empathy-event-manager.c:988
27432795 #, c-format
27442796 msgid "Subscription requested by %s"
27452797 msgstr "Abonnement forespurt av %s"
27462798
2747 #: ../src/empathy-event-manager.c:990
2799 #: ../src/empathy-event-manager.c:992
27482800 #, c-format
27492801 msgid ""
27502802 "\n"
27532805 "\n"
27542806 "Melding: %s"
27552807
2756 #: ../src/empathy-event-manager.c:1033
2808 #: ../src/empathy-event-manager.c:1035
27572809 #, c-format
27582810 msgid "%s is now offline."
27592811 msgstr "%s er nå frakoblet."
27602812
2761 #: ../src/empathy-event-manager.c:1053
2813 #: ../src/empathy-event-manager.c:1055
27622814 #, c-format
27632815 msgid "%s is now online."
27642816 msgstr "%s er nå tilkoblet."
28972949 msgid "Source"
28982950 msgstr "Kilde"
28992951
2900 #: ../src/empathy-main-window.c:457
2952 #: ../src/empathy-main-window.c:476
29012953 msgid "Reconnect"
29022954 msgstr "Koble til på nytt"
29032955
2904 #: ../src/empathy-main-window.c:463
2956 #: ../src/empathy-main-window.c:482
29052957 msgid "Edit Account"
29062958 msgstr "Rediger konto"
29072959
2908 #: ../src/empathy-main-window.c:469
2960 #: ../src/empathy-main-window.c:488
29092961 msgid "Close"
29102962 msgstr "Lukk"
29112963
2912 #: ../src/empathy-main-window.c:1154
2964 #: ../src/empathy-main-window.c:1174
29132965 msgid "Contact"
29142966 msgstr "Kontakt"
29152967
2916 #: ../src/empathy-main-window.c:1476
2968 #: ../src/empathy-main-window.c:1498
29172969 msgid "Contact List"
29182970 msgstr "Kontaktliste"
29192971
2920 #: ../src/empathy-main-window.c:1583
2972 #: ../src/empathy-main-window.c:1605
29212973 msgid "Show and edit accounts"
29222974 msgstr "Vis og rediger kontoer"
29232975
32303282 msgid "_Publish location to my contacts"
32313283 msgstr "_Publiser lokasjon til mine kontakter"
32323284
3233 #: ../src/empathy-preferences.ui.h:32
3285 #. 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.
3286 #: ../src/empathy-preferences.ui.h:33
32343287 msgid "_Reduce location accuracy"
32353288 msgstr "_Reduser nøyaktighet for lokasjon"
32363289
32623315 msgid "_Quit"
32633316 msgstr "_Avslutt"
32643317
3265 #: ../src/empathy-map-view.ui.h:1
3318 #: ../src/empathy-map-view.c:452
32663319 msgid "Contact Map View"
32673320 msgstr "Kartvisning for kontakter"
32683321
+904
-672
po/pa.po less more
77 msgstr ""
88 "Project-Id-Version: empathy.HEAD\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&component=general\n"
10 "POT-Creation-Date: 2010-03-17 10:38+0000\n"
11 "PO-Revision-Date: 2010-03-23 08:09+0530\n"
10 "POT-Creation-Date: 2010-08-11 16:40+0000\n"
11 "PO-Revision-Date: 2010-08-17 07:11+0530\n"
1212 "Last-Translator: A S Alam <aalam@users.sf.net>\n"
13 "Language-Team: Punjabi/Panjabi <punjab-l10n@lists.sf.net>\n"
13 "Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
1414 "MIME-Version: 1.0\n"
1515 "Content-Type: text/plain; charset=UTF-8\n"
1616 "Content-Transfer-Encoding: 8bit\n"
2121 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
2222
2323 #: ../data/empathy.desktop.in.in.h:1
24 msgid "Chat on Google Talk, Facebook, MSN, and many other chat services"
25 msgstr "ਗੂਗਲ ਟਾਕ, ਫੇਸਬੁੱਕ, MSN ਤੇ ਹੋਰ ਕਈ ਚੈੱਟ ਸਰਵਿਸਾਂ ਉੱਤੇ ਗੱਲਾਂ ਕਰੋ"
26
27 #: ../data/empathy.desktop.in.in.h:2
2428 msgid "Empathy"
2529 msgstr "ਇੰਪੈਥੀ"
2630
27 #: ../data/empathy.desktop.in.in.h:2
28 msgid "Empathy IM Client"
29 msgstr "ਇੰਪੈਥੀ IM ਕਲਾਇਟ"
30
3131 #: ../data/empathy.desktop.in.in.h:3
32 msgid "Empathy Internet Messaging"
33 msgstr "ਇੰਪੈਥੀ ਇੰਟਰਨੈੱਟ ਮੈੱਸਜ਼ਿੰਗ"
34
35 #: ../data/empathy.desktop.in.in.h:4
3236 msgid "IM Client"
3337 msgstr "IM ਕਲਾਇਟ"
3438
35 #: ../data/empathy.desktop.in.in.h:4
36 msgid "Send and receive messages"
37 msgstr "ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਲਵੋ"
38
39 #: ../data/empathy.schemas.in.h:1
39 #: ../data/org.gnome.Empathy.gschema.xml.in.h:1
4040 msgid "Always open a separate chat window for new chats."
4141 msgstr "ਨਵੀਆਂ ਗੱਲਾਂ ਲਈ ਹਮੇਸ਼ਾ ਇੱਕ ਵੱਖਰੀ ਗੱਲਬਾਤ ਵਿੰਡੋ ਵਰਤੋਂ।"
4242
43 #: ../data/empathy.schemas.in.h:2
43 #: ../data/org.gnome.Empathy.gschema.xml.in.h:2
4444 msgid ""
4545 "Character to add after nickname when using nick completion (tab) in group "
4646 "chat."
4747 msgstr "ਨਾਂ ਦੇ ਬਾਅਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਅੱਖਰ, ਜਦੋਂ ਗਰੁੱਪ ਗੱਲਬਾਤ ਵਿੱਚ ਨਾਂ ਪੂਰਾ ਕਰਨਾ ਹੋਵੇ (ਟੈਬ)"
4848
49 #: ../data/empathy.schemas.in.h:3
49 #: ../data/org.gnome.Empathy.gschema.xml.in.h:3
5050 msgid "Chat window theme"
5151 msgstr "ਗੱਲਬਾਤ ਵਿੰਡੋ ਥੀਮ"
5252
53 #: ../data/empathy.schemas.in.h:4
53 #: ../data/org.gnome.Empathy.gschema.xml.in.h:4
5454 msgid "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
5555 msgstr "ਸਪੈਲ ਚੈਕਰ ਭਾਸ਼ਾਵਾਂ ਦੀ ਕਾਮਿਆਂ ਨਾਲ ਅੱਡ ਕੀਤੀ ਲਿਸਟ (ਜਿਵੇਂ pa,en,)।"
5656
57 #: ../data/empathy.schemas.in.h:5
57 #: ../data/org.gnome.Empathy.gschema.xml.in.h:5
5858 msgid "Compact contact list"
5959 msgstr "ਸੰਖੇਪ ਸੰਪਰਕ ਲਿਸਟ"
6060
61 #: ../data/empathy.schemas.in.h:6
61 #: ../data/org.gnome.Empathy.gschema.xml.in.h:6
6262 msgid "Connection managers should be used"
6363 msgstr "ਕੁਨੈਕਸ਼ਨ ਮੈਨੇਜਰ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ"
6464
65 #: ../data/empathy.schemas.in.h:7
65 #: ../data/org.gnome.Empathy.gschema.xml.in.h:7
6666 msgid "Contact list sort criterion"
6767 msgstr "ਸੰਪਰਕ ਲਿਸਟ ਲੜੀਬੱਧ ਢੰਗ"
6868
69 #: ../data/empathy.schemas.in.h:8
69 #: ../data/org.gnome.Empathy.gschema.xml.in.h:8
7070 msgid "Default directory to select an avatar image from"
7171 msgstr "ਅਵਤਾਰ ਚਿੱਤਰ ਚੁਣਨ ਵਾਸਤੇ ਡਿਫਾਲਟ ਡਾਇਰੈਕਟਰੀ"
7272
73 #: ../data/empathy.schemas.in.h:9
73 #: ../data/org.gnome.Empathy.gschema.xml.in.h:9
7474 msgid "Disable popup notifications when away"
7575 msgstr "ਦੂਰ ਹੋਵੋ ਤਾਂ ਪੋਪਅੱਪ ਸੂਚਨਾ ਬੰਦ"
7676
77 #: ../data/empathy.schemas.in.h:10
77 #: ../data/org.gnome.Empathy.gschema.xml.in.h:10
7878 msgid "Disable sounds when away"
7979 msgstr "ਦੂਰ ਹੋਵੋ ਤਾਂ ਸਾਊਂਡ ਆਯੋਗ"
8080
81 #: ../data/empathy.schemas.in.h:11
81 #: ../data/org.gnome.Empathy.gschema.xml.in.h:11
82 msgid "Display incoming events in the status area"
83 msgstr "ਹਾਲਤ ਖੇਤਰ 'ਚ ਆ ਰਹੇ ਈਵੈਂਟ ਵੇਖਾਓ"
84
85 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
86 msgid ""
87 "Display incoming events in the status area. If false present them right away "
88 "to the user."
89 msgstr "ਹਾਲਤ ਖੇਤਰ 'ਚ ਆ ਰਹੇ ਈਵੈਂਟ ਲਈ ਜਾਣਕਾਰੀ ਵੇਖਾਉ। ਜੇ ਸੈੱਟ ਨਾ ਕੀਤਾ ਤਾਂ ਉਹ ਯੂਜ਼ਰ ਨੂੰ ਵੇਖਾਈ ਜਾਵੇਗੀ।"
90
91 #: ../data/org.gnome.Empathy.gschema.xml.in.h:13
8292 msgid "Empathy can publish the user's location"
8393 msgstr "ਇੰਪੈਥੀ ਯੂਜ਼ਰ ਦਾ ਟਿਕਾਣਾ ਦੇ ਸਕਦਾ ਹੈ"
8494
85 #: ../data/empathy.schemas.in.h:12
95 #: ../data/org.gnome.Empathy.gschema.xml.in.h:14
8696 msgid "Empathy can use the GPS to guess the location"
8797 msgstr "ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ GPS ਵਰਤ ਸਕਦਾ ਹੈ"
8898
89 #: ../data/empathy.schemas.in.h:13
99 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
90100 msgid "Empathy can use the cellular network to guess the location"
91101 msgstr "ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ ਸੈਲੂਲਰ ਨੈੱਟਵਰਕ ਵਰਤ ਸਕਦਾ ਹੈ"
92102
93 #: ../data/empathy.schemas.in.h:14
103 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
94104 msgid "Empathy can use the network to guess the location"
95105 msgstr "ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ ਨੈੱਟਵਰਕ ਵਰਤ ਸਕਦਾ ਹੈ"
96106
97 #: ../data/empathy.schemas.in.h:15
107 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
98108 msgid "Empathy default download folder"
99109 msgstr "ਇੰਪੈਥੀ ਡਿਫਾਲਟ ਡਾਊਨਲੋਡ ਫੋਲਡਰ"
100110
101 #: ../data/empathy.schemas.in.h:16
111 #: ../data/org.gnome.Empathy.gschema.xml.in.h:18
102112 msgid "Empathy has asked about importing accounts"
103113 msgstr "ਇੰਪੈਥੀ ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਪੁੱਛੇ"
104114
105 #: ../data/empathy.schemas.in.h:17
115 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
106116 msgid "Empathy has migrated butterfly logs"
107117 msgstr "ਇੰਪੈਥੀ ਨੇ ਬਟਰਫਲਾਈ ਲਾਗ ਮਾਈਗਰੇਟ ਕੀਤਾ"
108118
109 #: ../data/empathy.schemas.in.h:18
119 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
120 msgid "Empathy should auto-away when idle"
121 msgstr "ਇੰਪੈਥੀ ਵੇਹਲੇ ਹੋਣ ਉੱਤੇ ਆਟੋਮੈਟਿਕ-ਦੂਰ ਕਰੇ"
122
123 #: ../data/org.gnome.Empathy.gschema.xml.in.h:21
110124 msgid "Empathy should auto-connect on startup"
111125 msgstr "ਇੰਪੈਥੀ ਸ਼ੁਰੂ ਸਮੇਂ ਆਟੋਮੈਟਿਕ ਕੁਨੈਕਟ ਹੋਵੇ"
112126
113 #: ../data/empathy.schemas.in.h:19
127 #: ../data/org.gnome.Empathy.gschema.xml.in.h:22
114128 msgid "Empathy should reduce the location's accuracy"
115129 msgstr "ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦੀ ਸ਼ੁੱਧਤਾ ਘਟਾਵੇ"
116130
117 #: ../data/empathy.schemas.in.h:20
131 #: ../data/org.gnome.Empathy.gschema.xml.in.h:23
118132 msgid "Empathy should use the avatar of the contact as the chat window icon"
119133 msgstr "ਇੰਪੈਥੀ ਗੱਲਬਾਤ ਵਿੰਡੋ ਆਈਕਾਨ ਵਜੋਂ ਸੰਪਰਕ ਦੇ ਅਵਤਾਰ ਨੂੰ ਵਰਤੇ"
120134
121 #: ../data/empathy.schemas.in.h:21
135 #: ../data/org.gnome.Empathy.gschema.xml.in.h:24
122136 msgid "Enable WebKit Developer Tools"
123137 msgstr "ਵੈਬਕਿੱਟ ਡਿਵੈਲਪਰ ਟੂਲ ਚਾਲੂ"
124138
125 #: ../data/empathy.schemas.in.h:22
139 #: ../data/org.gnome.Empathy.gschema.xml.in.h:25
126140 msgid "Enable popup notifications for new messages"
127141 msgstr "ਨਵੇਂ ਸੁਨੇਹਿਆਂ ਲਈ ਪੋਪਅੱਪ ਸੂਚਨਾ ਚਾਲੂ"
128142
129 #: ../data/empathy.schemas.in.h:23
143 #: ../data/org.gnome.Empathy.gschema.xml.in.h:26
130144 msgid "Enable spell checker"
131145 msgstr "ਸ਼ਬਦ-ਜੋੜ ਯੋਗ"
132146
133 #: ../data/empathy.schemas.in.h:24
147 #: ../data/org.gnome.Empathy.gschema.xml.in.h:27
134148 msgid "Hide main window"
135149 msgstr "ਮੁੱਖ ਵਿੰਡੋ ਓਹਲੇ"
136150
137 #: ../data/empathy.schemas.in.h:25
151 #: ../data/org.gnome.Empathy.gschema.xml.in.h:28
138152 msgid "Hide the main window."
139153 msgstr "ਮੁੱਖ ਵਿੰਡੋ ਓਹਲੇ ਕਰੋ"
140154
141 #: ../data/empathy.schemas.in.h:26
142 msgid "MC 4 accounts have been imported"
143 msgstr "MC 4 ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕੀਤੇ ਗਏ।"
144
145 #: ../data/empathy.schemas.in.h:27
146 msgid "MC 4 accounts have been imported."
147 msgstr "MC 4 ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕੀਤੇ ਗਏ।"
148
149 #: ../data/empathy.schemas.in.h:28
155 #: ../data/org.gnome.Empathy.gschema.xml.in.h:29
150156 msgid "Nick completed character"
151157 msgstr "ਨਾਂ ਪੂਰਾ ਅੱਖਰ"
152158
153 #: ../data/empathy.schemas.in.h:29
159 #: ../data/org.gnome.Empathy.gschema.xml.in.h:30
154160 msgid "Open new chats in separate windows"
155161 msgstr "ਨਵੀਆਂ ਗੱਲਬਾਤਾਂ ਵੱਖ ਵੱਖ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ"
156162
157 #: ../data/empathy.schemas.in.h:30
163 #: ../data/org.gnome.Empathy.gschema.xml.in.h:31
158164 msgid "Path of the Adium theme to use"
159 msgstr "ਵਰਤਣ ਵਾਸਤੀ ਅਡੀਓਮ ਥੀਮ ਲਈ ਪਾਥ"
160
161 #: ../data/empathy.schemas.in.h:31
165 msgstr "ਵਰਤਣ ਵਾਸਤੇ ਅਡੀਓਮ ਥੀਮ ਲਈ ਪਾਥ"
166
167 #: ../data/org.gnome.Empathy.gschema.xml.in.h:32
162168 msgid "Path of the Adium theme to use if the theme used for chat is Adium."
163169 msgstr "ਅਡੀਓਮ ਥੀਮ ਲਈ ਪਾਥ, ਜੋ ਕਿ ਵਰਤਣਾ ਹੈ, ਜਦੋਂ ਗੱਲਬਾਤ ਲਈ ਅਡੀਓਮ ਥੀਮ ਚੁਣਿਆ ਹੋਵੇ।"
164170
165 #: ../data/empathy.schemas.in.h:32
171 #: ../data/org.gnome.Empathy.gschema.xml.in.h:33
166172 msgid "Play a sound for incoming messages"
167173 msgstr "ਆ ਰਹੇ ਸੁਨੇਹਿਆਂ ਲਈ ਇੱਕ ਧੁਨੀ ਚਲਾਓ"
168174
169 #: ../data/empathy.schemas.in.h:33
175 #: ../data/org.gnome.Empathy.gschema.xml.in.h:34
170176 msgid "Play a sound for new conversations"
171177 msgstr "ਨਵੀਆਂ ਗੱਲਾਂਬਾਤਾਂ ਲਈ ਧੁਨੀ ਚਲਾਓ"
172178
173 #: ../data/empathy.schemas.in.h:34
179 #: ../data/org.gnome.Empathy.gschema.xml.in.h:35
174180 msgid "Play a sound for outgoing messages"
175181 msgstr "ਬਾਹਰ ਜਾ ਰਹੇ ਸੁਨੇਹਿਆਂ ਲਈ ਆਵਾਜ਼ ਚਲਾਓ"
176182
177 #: ../data/empathy.schemas.in.h:35
183 #: ../data/org.gnome.Empathy.gschema.xml.in.h:36
178184 msgid "Play a sound when a contact logs in"
179185 msgstr "ਜਦੋਂ ਸੰਪਰਕ ਲਾਗਇਨ ਕਰੇ ਤਾਂ ਧੁਨੀ ਚਲਾਓ"
180186
181 #: ../data/empathy.schemas.in.h:36
187 #: ../data/org.gnome.Empathy.gschema.xml.in.h:37
182188 msgid "Play a sound when a contact logs out"
183189 msgstr "ਜਦੋਂ ਸੰਪਰਕ ਲਾਗ-ਆਉਟ ਕਰੇ ਤਾਂ ਧੁਨੀ ਚਲਾਓ"
184190
185 #: ../data/empathy.schemas.in.h:37
191 #: ../data/org.gnome.Empathy.gschema.xml.in.h:38
186192 msgid "Play a sound when we log in"
187193 msgstr "ਜਦੋਂ ਅਸੀਂ ਲਾਗਇਨ ਕਰੀਏ ਤਾਂ ਧੁਨੀ ਚਲਾਓ"
188194
189 #: ../data/empathy.schemas.in.h:38
195 #: ../data/org.gnome.Empathy.gschema.xml.in.h:39
190196 msgid "Play a sound when we log out"
191197 msgstr "ਜਦੋਂ ਅਸੀਂ ਲਾਗ-ਆਉਟ ਕਰਨਾ ਹੋਵੇ ਤਾਂ ਧੁਨੀ ਚਲਾਓ"
192198
193 #: ../data/empathy.schemas.in.h:39
199 #: ../data/org.gnome.Empathy.gschema.xml.in.h:40
194200 msgid "Pop up notifications if the chat isn't focused"
195201 msgstr "ਜੇ ਗੱਲਬਾਤ ਫੋਕਸ ਨਾ ਹੋਵੇ ਤਾਂ ਸੂਚਨਾ ਪੋਪਅੱਪ ਸੂਚਨਾ ਦਿਓ"
196202
197 #: ../data/empathy.schemas.in.h:40
203 #: ../data/org.gnome.Empathy.gschema.xml.in.h:41
198204 msgid "Pop up notifications when a contact logs in"
199205 msgstr "ਜੇ ਸੰਪਰਕ ਲਾਗ ਇਨ ਕਰੇ ਤਾਂ ਸੂਚਨਾ ਪੋਪਅੱਪ ਸੂਚਨਾ ਦਿਓ"
200206
201 #: ../data/empathy.schemas.in.h:41
207 #: ../data/org.gnome.Empathy.gschema.xml.in.h:42
202208 msgid "Pop up notifications when a contact logs out"
203209 msgstr "ਜੇ ਸੰਪਰਕ ਲਾਗ ਆਉਟ ਕਰੇ ਤਾਂ ਸੂਚਨਾ ਪੋਪਅੱਪ ਸੂਚਨਾ ਦਿਓ"
204210
205 #: ../data/empathy.schemas.in.h:42
211 #: ../data/org.gnome.Empathy.gschema.xml.in.h:43
206212 msgid "Show avatars"
207213 msgstr "ਅਵਤਾਰ ਵੇਖੋ"
208214
209 #: ../data/empathy.schemas.in.h:43
215 #: ../data/org.gnome.Empathy.gschema.xml.in.h:44
210216 msgid "Show contact list in rooms"
211217 msgstr "ਰੂਮ ਵਿੱਚ ਸੰਪਰਕ ਲਿਸਟ ਵੇਖੋ"
212218
213 #: ../data/empathy.schemas.in.h:44
219 #: ../data/org.gnome.Empathy.gschema.xml.in.h:45
214220 msgid "Show hint about closing the main window"
215221 msgstr "ਮੁੱਖ ਵਿੰਡੋ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਸੰਕੇਤ ਵੇਖੋ"
216222
217 #: ../data/empathy.schemas.in.h:45
223 #: ../data/org.gnome.Empathy.gschema.xml.in.h:46
218224 msgid "Show offline contacts"
219225 msgstr "ਆਫਲਾਈਨ ਸੰਪਰਕ ਵੇਖੋ"
220226
221 #: ../data/empathy.schemas.in.h:46
227 #: ../data/org.gnome.Empathy.gschema.xml.in.h:47
222228 msgid "Show protocols"
223229 msgstr "ਪਰੋਟੋਕਾਲ ਵੇਖੋ"
224230
225 #: ../data/empathy.schemas.in.h:47
231 #: ../data/org.gnome.Empathy.gschema.xml.in.h:48
226232 msgid "Spell checking languages"
227233 msgstr "ਸ਼ਬਦ-ਜੋੜ ਭਾਸ਼ਾਵਾਂ"
228234
229 #: ../data/empathy.schemas.in.h:48
235 #: ../data/org.gnome.Empathy.gschema.xml.in.h:49
230236 msgid "The default folder to save file transfers in."
231237 msgstr "ਫਾਇਲ ਸੰਚਾਰ ਸੰਭਾਲਣ ਲਈ ਡਿਫਾਲਟ ਫੋਲਡਰ ਹੈ।"
232238
233 #: ../data/empathy.schemas.in.h:49
239 #: ../data/org.gnome.Empathy.gschema.xml.in.h:50
234240 msgid "The last directory that an avatar image was chosen from."
235241 msgstr "ਆਖਰੀ ਡਾਇਰੈਕਟਰੀ, ਜਿੱਥੇ ਅਵਤਾਰ ਚਿੱਤਰ ਚੁਣਿਆ ਗਿਆ ਸੀ।"
236242
237 #: ../data/empathy.schemas.in.h:50
243 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
244 msgid "The position for the chat window side pane"
245 msgstr "ਗੱਲਬਾਤ ਵਿੰਡੋ ਬਾਹੀ ਦੀ ਸਥਿਤੀ"
246
247 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
248 msgid "The stored position (in pixels) of the chat window side pane."
249 msgstr "ਗੱਲਬਾਤ ਵਿੰਡੋ ਬਾਹੀ ਦੀ ਸੰਭਾਲੀ ਸਥਿਤੀ (ਪਿਕਸਲ 'ਚ)।"
250
251 #: ../data/org.gnome.Empathy.gschema.xml.in.h:53
238252 msgid "The theme that is used to display the conversation in chat windows."
239253 msgstr "ਥੀਮ, ਜੋ ਕਿ ਗੱਲਬਾਤ ਵਿੰਡੋ ਵਿੱਚ ਗੱਲਾਂ ਵੇਖਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਵੇ।"
240254
241 #: ../data/empathy.schemas.in.h:51
255 #: ../data/org.gnome.Empathy.gschema.xml.in.h:54
242256 msgid "Use graphical smileys"
243257 msgstr "ਗਰਾਫਿਕਸ ਚਿਹਰੇ ਵਰਤੋਂ"
244258
245 #: ../data/empathy.schemas.in.h:52
259 #: ../data/org.gnome.Empathy.gschema.xml.in.h:55
246260 msgid "Use notification sounds"
247261 msgstr "ਸਾਊਂਡ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵਰਤੋਂ"
248262
249 #: ../data/empathy.schemas.in.h:53
263 #: ../data/org.gnome.Empathy.gschema.xml.in.h:56
250264 msgid "Use theme for chat rooms"
251265 msgstr "ਗੱਲਬਾਤ ਰੂਮ ਲਈ ਥੀਮ ਵਰਤੋਂ"
252266
253 #: ../data/empathy.schemas.in.h:54
267 #: ../data/org.gnome.Empathy.gschema.xml.in.h:57
254268 msgid "Whether Empathy can publish the user's location to their contacts."
255269 msgstr "ਕੀ ਇੰਪੈਥੀ ਯੂਜ਼ਰ ਦੇ ਟਿਕਾਣਿਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਉਸ ਦੇ ਸੰਪਰਕਾਂ ਨਾਲ ਦੇਵੇ।"
256270
257 #: ../data/empathy.schemas.in.h:55
271 #: ../data/org.gnome.Empathy.gschema.xml.in.h:58
258272 msgid "Whether Empathy can use the GPS to guess the location."
259273 msgstr "ਕੀ ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ GPS ਵਰਤੇ।"
260274
261 #: ../data/empathy.schemas.in.h:56
275 #: ../data/org.gnome.Empathy.gschema.xml.in.h:59
262276 msgid "Whether Empathy can use the cellular network to guess the location."
263277 msgstr "ਕੀ ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ ਸੈਲੂਲਰ ਨੈੱਟਵਰਕ ਵਰਤੇ।"
264278
265 #: ../data/empathy.schemas.in.h:57
279 #: ../data/org.gnome.Empathy.gschema.xml.in.h:60
266280 msgid "Whether Empathy can use the network to guess the location."
267281 msgstr "ਕੀ ਇੰਪੈਥੀ ਟਿਕਾਣੇ ਦਾ ਅਨੁਮਾਨ ਲਾਉਣ ਲਈ ਨੈੱਟਵਰਕ ਵਰਤ ਸਕਦਾ ਹੈ।"
268282
269 #: ../data/empathy.schemas.in.h:58
283 #: ../data/org.gnome.Empathy.gschema.xml.in.h:61
270284 msgid "Whether Empathy has asked about importing accounts from other programs."
271285 msgstr "ਕੀ ਇੰਪੈਥੀ ਹੋਰ ਪਰੋਗਰਾਮਾਂ ਤੋਂ ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਪੁੱਛੇ।"
272286
273 #: ../data/empathy.schemas.in.h:59
287 #: ../data/org.gnome.Empathy.gschema.xml.in.h:62
274288 msgid "Whether Empathy has migrated butterfly logs."
275289 msgstr "ਕੀ ਇੰਪੈਥੀ ਬਟਰਫਲਾਈ ਲਾਗ ਕਰ ਚੁੱਕਿਆ ਹੈ।"
276290
277 #: ../data/empathy.schemas.in.h:60
291 #: ../data/org.gnome.Empathy.gschema.xml.in.h:63
278292 msgid "Whether Empathy should automatically log into your accounts on startup."
279293 msgstr "ਕੀ ਇੰਪੈਥੀ ਸ਼ੁਰੂ ਸਮੇਂ ਆਟੋਮੈਟਿਕ ਹੀ ਤੁਹਾਡੇ ਅਕਾਊਂਟਾਂ ਵਿੱਚ ਲਾਗ ਇਨ ਕਰੇ।"
280294
281 #: ../data/empathy.schemas.in.h:61
295 #: ../data/org.gnome.Empathy.gschema.xml.in.h:64
296 msgid "Whether Empathy should go into away mode automatically if user is idle."
297 msgstr "ਯੂਜ਼ਰ ਦੇ ਵੇਹਲੇ ਹੋਣ ਉੱਤੇ ਕੀ ਇੰਪੈਥੀ ਆਟੋਮੈਟਿਕ ਹੀ ਦੂਰ ਸੈੱਟ ਕਰੇ।"
298
299 #: ../data/org.gnome.Empathy.gschema.xml.in.h:65
282300 msgid "Whether Empathy should reduce the location's accuracy for privacy reasons."
283301 msgstr "ਕੀ ਇੰਪੈਥੀ ਪਰਾਈਵੇਸੀ ਕਾਰਨਾਂ ਕਰਕੇ ਟਿਕਾਣੇ ਦੀ ਸ਼ੁੱਧਤਾ ਘਟਾਵੇ।"
284302
285 #: ../data/empathy.schemas.in.h:62
303 #: ../data/org.gnome.Empathy.gschema.xml.in.h:66
286304 msgid "Whether Empathy should use the avatar of the contact as the chat window icon."
287305 msgstr "ਕੀ ਇੰਪੈਥੀ ਗੱਲਬਾਤ ਵਿੰਡੋ ਆਈਕਾਨ ਵਜੋਂ ਸੰਪਰਕ ਦੇ ਅਵਤਾਰ ਨੂੰ ਵਰਤੇ"
288306
289 #: ../data/empathy.schemas.in.h:63
307 #: ../data/org.gnome.Empathy.gschema.xml.in.h:67
290308 msgid "Whether WebKit developer tools, such as the Web Inspector, should be enabled."
291309 msgstr "ਕੀ ਵੈੱਬਕਿੱਟ ਡਿਵੈਲਪਰ ਟੂਲ, ਜਿਵੇਂ ਕਿ ਵੈੱਬ ਇੰਸਪੈਕਟਰ ਆਦਿ ਯੋਗ ਕਰਨੇ ਹਨ।"
292310
293 #: ../data/empathy.schemas.in.h:64
311 #: ../data/org.gnome.Empathy.gschema.xml.in.h:68
294312 msgid ""
295313 "Whether connectivity managers should be used to automatically disconnect/"
296314 "reconnect."
297315 msgstr "ਕੀ ਕੁਨੈਕੁਵਿਟੀ ਮੈਨੇਜਰ ਆਟੋਮੈਟਿਕ ਡਿਸ-ਕੁਨੈਕਟ/ਮੁੜ-ਕੁਨਕੈਟ ਲਈ ਵਰਤਿਆ ਜਾਵੇ"
298316
299 #: ../data/empathy.schemas.in.h:65
317 #: ../data/org.gnome.Empathy.gschema.xml.in.h:69
300318 msgid "Whether to check words typed against the languages you want to check with."
301319 msgstr "ਕੀ ਜਦੋਂ ਤੁਸੀਂ ਲਿਖੋ ਤਾਂ ਸ਼ਬਦਾਂ ਨੂੰ ਭਾਸ਼ਾ ਲਈ ਚੈੱਕ ਕੀਤਾ ਜਾਵੇ"
302320
303 #: ../data/empathy.schemas.in.h:66
321 #: ../data/org.gnome.Empathy.gschema.xml.in.h:70
304322 msgid "Whether to convert smileys into graphical images in conversations."
305323 msgstr "ਕੀ ਸਮਾਈਲੀ ਨੂੰ ਗੱਲਬਾਤ ਵਿੱਚ ਗਰਾਫਿਕਲ ਚਿੱਤਰਾਂ ਵਿੱਚ ਬਦਲਿਆ ਜਾਵੇ"
306324
307 #: ../data/empathy.schemas.in.h:67
325 #: ../data/org.gnome.Empathy.gschema.xml.in.h:71
308326 msgid "Whether to play a sound to notify of contacts logging into the network."
309327 msgstr "ਕੀ ਨੈੱਟਵਰਕ ਉੱਤੇ ਸੰਪਰਕ ਦੇ ਲਾਗ ਇਨ ਕਰਨ ਸਮੇਂ ਸੂਚਨਾ ਲਈ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ"
310328
311 #: ../data/empathy.schemas.in.h:68
329 #: ../data/org.gnome.Empathy.gschema.xml.in.h:72
312330 msgid "Whether to play a sound to notify of contacts logging out of the network."
313331 msgstr "ਕੀ ਨੈੱਟਵਰਕ ਉੱਤੇ ਸੰਪਰਕ ਦੇ ਲਾਗ ਆਫ਼ ਕਰਨ ਸਮੇਂ ਸੂਚਨਾ ਲਈ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ"
314332
315 #: ../data/empathy.schemas.in.h:69
333 #: ../data/org.gnome.Empathy.gschema.xml.in.h:73
316334 msgid "Whether to play a sound to notify of events."
317335 msgstr "ਕੀ ਈਵੈਂਟਾਂ ਲਈ ਸੂਚਨਾ ਵਾਸਤੇ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ"
318336
319 #: ../data/empathy.schemas.in.h:70
337 #: ../data/org.gnome.Empathy.gschema.xml.in.h:74
320338 msgid "Whether to play a sound to notify of incoming messages."
321339 msgstr "ਕੀ ਆ ਰਹੇ ਸੁਨੇਹਿਆਂ ਲਈ ਸੂਚਨਾ ਵਾਸਤੇ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ।"
322340
323 #: ../data/empathy.schemas.in.h:71
341 #: ../data/org.gnome.Empathy.gschema.xml.in.h:75
324342 msgid "Whether to play a sound to notify of new conversations."
325343 msgstr "ਕੀ ਨਵੀਆਂ ਗੱਲਾਬਾਤਾਂ ਦੀ ਸੂਚਨਾ ਲਈ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ।"
326344
327 #: ../data/empathy.schemas.in.h:72
345 #: ../data/org.gnome.Empathy.gschema.xml.in.h:76
328346 msgid "Whether to play a sound to notify of outgoing messages."
329347 msgstr "ਕੀ ਬਾਹਰ ਜਾ ਰਹੇ ਸੁਨੇਹਿਆਂ ਲਈ ਸੂਚਨਾ ਵਾਸਤੇ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ।"
330348
331 #: ../data/empathy.schemas.in.h:73
349 #: ../data/org.gnome.Empathy.gschema.xml.in.h:77
332350 msgid "Whether to play a sound when logging into a network."
333351 msgstr "ਕੀ ਨੈੱਟਵਰਕ ਉੱਤੇ ਲਾਗ ਇਨ ਕਰਨ ਦੌਰਾਨ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ।"
334352
335 #: ../data/empathy.schemas.in.h:74
353 #: ../data/org.gnome.Empathy.gschema.xml.in.h:78
336354 msgid "Whether to play a sound when logging out of a network."
337355 msgstr "ਕੀ ਨੈੱਟਵਰਕ ਤੋਂ ਲਾਗ ਆਫ਼ ਕਰਨ ਦੌਰਾਨ ਸਾਊਂਡ ਚਲਾਈ ਜਾਵੇ"
338356
339 #: ../data/empathy.schemas.in.h:75
357 #: ../data/org.gnome.Empathy.gschema.xml.in.h:79
340358 msgid "Whether to play sound notifications when away or busy."
341359 msgstr "ਜਦੋਂ ਦੂਰ ਜਾਂ ਰੁੱਝੇ ਹੋਵੇ ਤਾਂ ਕੀ ਸਾਊਂਡ ਸੂਚਨਾਵਾਂ ਚਲਾਉਣੀਆਂ ਹਨ।"
342360
343 #: ../data/empathy.schemas.in.h:76
361 #: ../data/org.gnome.Empathy.gschema.xml.in.h:80
344362 msgid "Whether to show a popup notification when a contact goes offline."
345363 msgstr "ਕੀ ਪੋਪਅੱਪ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਏ ਜਾਣ, ਜਦੋਂ ਸੰਪਰਕ ਆਫਲਾਈਨ ਹੋਵੇ।"
346364
347 #: ../data/empathy.schemas.in.h:77
365 #: ../data/org.gnome.Empathy.gschema.xml.in.h:81
348366 msgid "Whether to show a popup notification when a contact goes online."
349367 msgstr "ਕੀ ਪੋਪਅੱਪ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਏ ਜਾਣ, ਜਦੋਂ ਸੰਪਰਕ ਆਨਲਾਈਨ ਹੋਵੇ।"
350368
351 #: ../data/empathy.schemas.in.h:78
369 #: ../data/org.gnome.Empathy.gschema.xml.in.h:82
352370 msgid ""
353371 "Whether to show a popup notification when receiving a new message even if "
354372 "the chat is already opened, but not focused."
356374 "ਕੀ ਪੋਪਅੱਪ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਇਆ ਜਾਵੇ, ਜਦੋਂ ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ ਮਿਲੇ, ਭਾਵੇਂ ਗੱਲਬਾਤ ਪਹਿਲਾਂ ਖੁੱਲ੍ਹੀ ਹੋਵੇ, ਪਰ "
357375 "ਫੋਕਸ ਨਾ ਹੋਵੇ।"
358376
359 #: ../data/empathy.schemas.in.h:79
377 #: ../data/org.gnome.Empathy.gschema.xml.in.h:83
360378 msgid "Whether to show a popup notification when receiving a new message."
361379 msgstr "ਕੀ ਪੋਪਅੱਪ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਇਆ ਜਾਵੇ, ਜਦੋਂ ਨਵਾਂ ਸੁਨੇਹਾ ਮਿਲੇ।"
362380
363 #: ../data/empathy.schemas.in.h:80
381 #: ../data/org.gnome.Empathy.gschema.xml.in.h:84
364382 msgid "Whether to show avatars for contacts in the contact list and chat windows."
365383 msgstr "ਕੀ ਸੰਪਰਕ ਲਿਸਟ ਅਤੇ ਗੱਲਬਾਤ ਵਿੰਡੋਜ਼ ਵਿੱਚ ਸੰਪਰਕਾਂ ਲਈ ਅਵਤਾਰ ਵੇਖਾਏ ਜਾਣ।"
366384
367 #: ../data/empathy.schemas.in.h:81
385 #: ../data/org.gnome.Empathy.gschema.xml.in.h:85
368386 msgid "Whether to show contacts that are offline in the contact list."
369387 msgstr "ਕੀ ਸੰਪਰਕ, ਜੋ ਕਿ ਆਫਲਾਈਨ ਹਨ, ਸੰਪਰਕ ਲਿਸਟ ਵਿੱਚ ਵੇਖਾਏ ਜਾਣ"
370388
371 #: ../data/empathy.schemas.in.h:82
389 #: ../data/org.gnome.Empathy.gschema.xml.in.h:86
372390 msgid "Whether to show popup notifications when away or busy."
373391 msgstr "ਕੀ ਪੋਪਅੱਪ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਏ ਜਾਣ, ਜਦੋਂ ਦੂਰ ਰੁੱਝੇ ਹੋਵੋ"
374392
375 #: ../data/empathy.schemas.in.h:83
393 #: ../data/org.gnome.Empathy.gschema.xml.in.h:87
376394 msgid "Whether to show protocols for contacts in the contact list."
377395 msgstr "ਕੀ ਸੰਪਰਕ ਲਿਸਟ ਵਿੱਚ ਸੰਪਰਕਾਂ ਲਈ ਪਰੋਟੋਕਾਲ ਵੇਖਾਏ ਜਾਣ।"
378396
379 #: ../data/empathy.schemas.in.h:84
397 #: ../data/org.gnome.Empathy.gschema.xml.in.h:88
380398 msgid "Whether to show the contact list in chat rooms."
381399 msgstr "ਕੀ ਗਲੱਬਾਤ ਰੂਮ ਵਿੱਚ ਸੰਪਰਕ ਲਿਸਟ ਵੇਖਣੀ ਹੈ।"
382400
383 #: ../data/empathy.schemas.in.h:85
401 #: ../data/org.gnome.Empathy.gschema.xml.in.h:89
384402 msgid "Whether to show the contact list in compact mode."
385403 msgstr "ਕੀ ਸੰਪਰਕ ਲਿਸਟ ਨੂੰ ਸੰਖੇਪ ਮੋਡ ਵਿੱਚ ਵੇਖਣਾ ਹੈ।"
386404
387 #: ../data/empathy.schemas.in.h:86
405 #: ../data/org.gnome.Empathy.gschema.xml.in.h:90
388406 msgid ""
389407 "Whether to show the message dialog about closing the main window with the "
390408 "'x' button in the title bar."
391409 msgstr "ਕੀ ਟਾਈਟਲ ਬਾਰ ਵਿੱਚ 'x' ਬਟਨ ਦਬਾਉਣ ਨਾਲ ਮੁੱਖ ਵਿੰਡੋ ਬੰਦ ਕਰਨ ਬਾਰੇ ਸੁਨੇਹਾ ਡਾਈਲਾਗ ਵੇਖਾਇਆ ਜਾਵੇ।"
392410
393 #: ../data/empathy.schemas.in.h:87
411 #: ../data/org.gnome.Empathy.gschema.xml.in.h:91
394412 msgid "Whether to use the theme for chat rooms."
395413 msgstr "ਕੀ ਗੱਲਬਾਤ ਰੂਮ ਲਈ ਥੀਮ ਵਰਤਣਾ ਹੈ।"
396414
397 #: ../data/empathy.schemas.in.h:88
415 #: ../data/org.gnome.Empathy.gschema.xml.in.h:92
398416 msgid ""
399417 "Which criterion to use when sorting the contact list. Default is to sort by "
400418 "the contact's name with the value \"name\". A value of \"state\" will sort "
409427
410428 #. Tweak the dialog
411429 #: ../data/empathy-accounts.desktop.in.in.h:2
412 #: ../src/empathy-accounts-dialog.c:2066 ../src/cc-empathy-accounts-page.c:243
413 #: ../src/cc-empathy-accounts-panel.c:91
430 #: ../src/empathy-accounts-dialog.c:2092
414431 msgid "Messaging and VoIP Accounts"
415432 msgstr "ਸੁਨੇਹੇ ਅਤੇ VoIP ਅਕਾਊਂਟ"
416433
417 #: ../libempathy/empathy-ft-handler.c:842
434 #: ../libempathy/empathy-ft-handler.c:851
418435 msgid "The hash of the received file and the sent one do not match"
419436 msgstr "ਮਿਲੀ ਫਾਇਲ ਅਤੇ ਭੇਜੀ ਦਾ ਹੈਸ਼ ਰਲਦਾ ਨਹੀਂ ਹੈ"
420437
421 #: ../libempathy/empathy-ft-handler.c:1102
438 #: ../libempathy/empathy-ft-handler.c:1111
422439 msgid "File transfer not supported by remote contact"
423440 msgstr "ਰਿਮੋਟ ਸੰਪਰਕ ਵਲੋਂ ਫਾਇਲ ਟਰਾਂਸਫਰ ਸਹਾਇਕ ਨਹੀਂ"
424441
425 #: ../libempathy/empathy-ft-handler.c:1160
442 #: ../libempathy/empathy-ft-handler.c:1169
426443 msgid "The selected file is not a regular file"
427444 msgstr "ਚੁਣੀ ਫਾਇਲ ਨਿਯਮਤ ਫਾਇਲ ਨਹੀਂ ਹੈ"
428445
429 #: ../libempathy/empathy-ft-handler.c:1169
446 #: ../libempathy/empathy-ft-handler.c:1178
430447 msgid "The selected file is empty"
431448 msgstr "ਚੁਣੀ ਫਾਇਲ ਖਾਲੀ ਹੈ"
432449
433 #: ../libempathy/empathy-tp-contact-list.c:834
434 #: ../src/empathy-auto-salut-account-helper.c:77
435 msgid "People nearby"
436 msgstr "ਨੇੜਲੇ ਲੋਕ"
437
438 #: ../libempathy/empathy-tp-file.c:280
450 #: ../libempathy/empathy-tp-file.c:283
439451 msgid "Socket type not supported"
440452 msgstr "ਸਾਕਟ ਟਾਈਪ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
441453
442 #: ../libempathy/empathy-tp-file.c:399
454 #: ../libempathy/empathy-tp-file.c:402
443455 msgid "No reason was specified"
444456 msgstr "ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦਿੱਤਾ"
445457
446 #: ../libempathy/empathy-tp-file.c:402
458 #: ../libempathy/empathy-tp-file.c:405
447459 msgid "The change in state was requested"
448460 msgstr "ਹਾਲਤ ਬਦਲਣ ਲਈ ਮੰਗ ਹੈ"
449461
450 #: ../libempathy/empathy-tp-file.c:405
462 #: ../libempathy/empathy-tp-file.c:408
451463 msgid "You canceled the file transfer"
452464 msgstr "ਤੁਸੀਂ ਫਾਇਲ ਸੰਚਾਰ ਰੱਦ ਕੀਤਾ"
453465
454 #: ../libempathy/empathy-tp-file.c:408
466 #: ../libempathy/empathy-tp-file.c:411
455467 msgid "The other participant canceled the file transfer"
456468 msgstr "ਹੋਰ ਯੋਗਦਾਨੀ ਨੇ ਫਾਇਲ ਸੰਚਾਰ ਰੱਦ ਕੀਤਾ"
457469
458 #: ../libempathy/empathy-tp-file.c:411
470 #: ../libempathy/empathy-tp-file.c:414
459471 msgid "Error while trying to transfer the file"
460472 msgstr "ਫਾਇਲ ਸੰਚਾਰ ਦੀ ਕੋਸ਼ਿਸ਼ ਦੌਰਾਨ ਗਲਤੀ"
461473
462 #: ../libempathy/empathy-tp-file.c:414
474 #: ../libempathy/empathy-tp-file.c:417
463475 msgid "The other participant is unable to transfer the file"
464476 msgstr "ਹੋਰ ਯੋਗਦਾਨੀ ਫਾਇਲ ਸੰਚਾਰ ਲਈ ਫੇਲ੍ਹ ਹੈ"
465477
466 #: ../libempathy/empathy-tp-file.c:417 ../libempathy/empathy-utils.c:314
478 #: ../libempathy/empathy-tp-file.c:420 ../libempathy/empathy-utils.c:320
467479 msgid "Unknown reason"
468480 msgstr "ਅਣਜਾਣ ਕਾਰਨ"
469481
470 #: ../libempathy/empathy-utils.c:238
482 #: ../libempathy/empathy-utils.c:242
471483 msgid "Available"
472484 msgstr "ਉਪਲੱਬਧ"
473485
474 #: ../libempathy/empathy-utils.c:240
486 #: ../libempathy/empathy-utils.c:244
475487 msgid "Busy"
476488 msgstr "ਰੁਝੇ"
477489
478 #: ../libempathy/empathy-utils.c:243
490 #: ../libempathy/empathy-utils.c:247
479491 msgid "Away"
480492 msgstr "ਦੂਰ"
481493
482 #: ../libempathy/empathy-utils.c:245
494 #: ../libempathy/empathy-utils.c:249
483495 msgid "Invisible"
484496 msgstr "ਅਦਿੱਖ"
485497
486 #: ../libempathy/empathy-utils.c:247
498 #: ../libempathy/empathy-utils.c:251
487499 msgid "Offline"
488500 msgstr "ਆਫਲਾਈਨ"
489501
490 #: ../libempathy/empathy-utils.c:286
502 #: ../libempathy/empathy-utils.c:253 ../src/empathy-call-window.c:1883
503 #: ../src/empathy-call-window.c:1884 ../src/empathy-call-window.c:1885
504 #: ../src/empathy-call-window.c:1886 ../src/empathy-call-window.ui.h:18
505 msgid "Unknown"
506 msgstr "ਅਣਜਾਣ"
507
508 #: ../libempathy/empathy-utils.c:292
491509 msgid "No reason specified"
492510 msgstr "ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦਿੱਤਾ"
493511
494 #: ../libempathy/empathy-utils.c:288
512 #: ../libempathy/empathy-utils.c:294 ../libempathy/empathy-utils.c:350
495513 msgid "Status is set to offline"
496514 msgstr "ਹਾਲਤ ਆਫਲਾਈਨ ਸੈੱਟ ਕੀਤਾ"
497515
498 #: ../libempathy/empathy-utils.c:290
516 #: ../libempathy/empathy-utils.c:296 ../libempathy/empathy-utils.c:330
499517 msgid "Network error"
500518 msgstr "ਨੈੱਟਵਰਕ ਗਲਤੀ"
501519
502 #: ../libempathy/empathy-utils.c:292
520 #: ../libempathy/empathy-utils.c:298 ../libempathy/empathy-utils.c:332
503521 msgid "Authentication failed"
504522 msgstr "ਪਰਮਾਣਕਿਤਾ ਫੇਲ੍ਹ ਹੈ"
505523
506 #: ../libempathy/empathy-utils.c:294
524 #: ../libempathy/empathy-utils.c:300 ../libempathy/empathy-utils.c:334
507525 msgid "Encryption error"
508526 msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਗਲਤੀ"
509527
510 #: ../libempathy/empathy-utils.c:296
528 #: ../libempathy/empathy-utils.c:302
511529 msgid "Name in use"
512530 msgstr "ਵਰਤਣ ਲਈ ਨਾਂ"
513531
514 #: ../libempathy/empathy-utils.c:298
532 #: ../libempathy/empathy-utils.c:304 ../libempathy/empathy-utils.c:336
515533 msgid "Certificate not provided"
516534 msgstr "ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਦਿੱਤਾ"
517535
518 #: ../libempathy/empathy-utils.c:300
536 #: ../libempathy/empathy-utils.c:306 ../libempathy/empathy-utils.c:338
519537 msgid "Certificate untrusted"
520538 msgstr "ਸਰਟੀਫਿਕੇਟ ਬੇਭਰੋਸੇਯੋਗ"
521539
522 #: ../libempathy/empathy-utils.c:302
540 #: ../libempathy/empathy-utils.c:308 ../libempathy/empathy-utils.c:340
523541 msgid "Certificate expired"
524542 msgstr "ਸਰਟੀਫਿਕੇਟ ਦੀ ਮਿਆਦ ਪੁੱਗੀ"
525543
526 #: ../libempathy/empathy-utils.c:304
544 #: ../libempathy/empathy-utils.c:310 ../libempathy/empathy-utils.c:342
527545 msgid "Certificate not activated"
528546 msgstr "ਸਰਟੀਫਿਕੇਟ ਸਰਗਰਮ ਨਹੀਂ ਹੈ"
529547
530 #: ../libempathy/empathy-utils.c:306
548 #: ../libempathy/empathy-utils.c:312 ../libempathy/empathy-utils.c:344
531549 msgid "Certificate hostname mismatch"
532550 msgstr "ਸਰਟੀਫਿਕੇਟ ਹੋਸਟ-ਨਾਂ ਨਹੀਂ ਮਿਲਦਾ"
533551
534 #: ../libempathy/empathy-utils.c:308
552 #: ../libempathy/empathy-utils.c:314 ../libempathy/empathy-utils.c:346
535553 msgid "Certificate fingerprint mismatch"
536554 msgstr "ਸਰਟੀਫਿਕੇਟ ਫਿੰਗਰ-ਪਰਿੰਟ ਮਿਲਦਾ ਨਹੀਂ"
537555
538 #: ../libempathy/empathy-utils.c:310
556 #: ../libempathy/empathy-utils.c:316 ../libempathy/empathy-utils.c:348
539557 msgid "Certificate self-signed"
540558 msgstr "ਸਰਟੀਫਿਕੇਟ ਖੁਦ-ਦਸਤਖਤੀ ਹੈ"
541559
542 #: ../libempathy/empathy-utils.c:312
560 #: ../libempathy/empathy-utils.c:318
543561 msgid "Certificate error"
544562 msgstr "ਸਰਟੀਫਿਕੇਟ ਗਲਤੀ"
545563
546 #: ../libempathy/empathy-utils.c:429 ../src/empathy-import-mc4-accounts.c:104
564 #: ../libempathy/empathy-utils.c:352
565 msgid "Encryption is not available"
566 msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
567
568 #: ../libempathy/empathy-utils.c:354
569 #| msgid "Certificate not activated"
570 msgid "Certificate is invalid"
571 msgstr "ਸਰਟੀਫਿਕੇਟ ਗਲਤ ਹੈ"
572
573 #: ../libempathy/empathy-utils.c:356
574 #| msgid "Connection managers should be used"
575 msgid "Connection has been refused"
576 msgstr "ਕੁਨੈਕਸ਼ਨ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ"
577
578 #: ../libempathy/empathy-utils.c:358
579 #| msgid "Connection managers should be used"
580 msgid "Connection can't be established"
581 msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
582
583 #: ../libempathy/empathy-utils.c:360
584 #| msgid "Connection managers should be used"
585 msgid "Connection has been lost"
586 msgstr "ਕੁਨੈਕਸ਼ਨ ਖਤਮ ਹੋ ਗਿਆ"
587
588 #: ../libempathy/empathy-utils.c:362
589 #| msgid "This account already exists on the server"
590 msgid "This resource is already connected to the server"
591 msgstr "ਇਹ ਸਰੋਤ ਪਹਿਲਾਂ ਹੀ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਹੈ"
592
593 #: ../libempathy/empathy-utils.c:364
594 msgid "Connection has been replaced by a new connection using the same resource"
595 msgstr "ਉਸੇ ਸਰੋਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਨਵੇਂ ਕੁਨੈਕਸ਼ਨ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੈ"
596
597 #: ../libempathy/empathy-utils.c:367
598 #| msgid "This account already exists on the server"
599 msgid "The account already exists on the server"
600 msgstr "ਅਕਾਊਂਟ ਸਰਵਰ ਉੱਤੇ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"
601
602 #: ../libempathy/empathy-utils.c:369
603 msgid "Server is currently too busy to handle the connection"
604 msgstr "ਸਰਵਰ ਇਸ ਵੇਲੇ ਐਨਾ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ ਕਿ ਕੁਨੈਕਸ਼ਨ ਸੰਭਾਲ ਨਹੀਂ ਸਕਦਾ"
605
606 #: ../libempathy/empathy-utils.c:371
607 #| msgid "Certificate not provided"
608 msgid "Certificate has been revoked"
609 msgstr "ਸਰਟੀਫਿਕੇਟ ਮਨਸੂਖ ਕੀਤਾ ਜਾ ਚੁੱਕਾ ਹੈ"
610
611 #: ../libempathy/empathy-utils.c:373
612 msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
613 msgstr "ਸਰਟੀਫਿਕੇਟ ਅਸੁਰੱਖਿਅਤ ਸੀਫ਼ਰ ਐਲਗੋਰਿਥਮ ਵਰਤਦਾ ਹੈ ਜਾਂ ਕਮਜ਼ੋਰ ਕ੍ਰਿਪਟੋਗਰਾਫਿਕਲ ਵਰਤਦਾ ਹੈ"
614
615 #: ../libempathy/empathy-utils.c:376
616 msgid ""
617 "The length of the server certificate, or the depth of the server certificate "
618 "chain exceed the limits imposed by the crypto library"
619 msgstr ""
620 "ਸਰਵਰ ਸਰਟੀਫਿਕੇਟ ਦੀ ਲੰਬਾਈ ਜਾਂ ਸਰਵਰ ਸਰਟੀਫਿਕੇਟ ਚੇਨ ਦੀ ਡੂੰਘਾਈ ਕ੍ਰਿਪਟੂ ਲਾਇਬਰੇਰੀ ਵਲੋਂ ਰੱਖੀ ਗਈ ਲਿਮਟ "
621 "ਤੋਂ ਵੱਧ ਗਈ ਹੈ।"
622
623 #: ../libempathy/empathy-utils.c:529
547624 msgid "People Nearby"
548625 msgstr "ਨੇੜਲੇ ਲੋਕ"
549626
550 #: ../libempathy/empathy-utils.c:434
627 #: ../libempathy/empathy-utils.c:534
551628 msgid "Yahoo! Japan"
552629 msgstr "ਯਾਹੂ! ਜਾਪਾਨ"
553630
554 #: ../libempathy/empathy-utils.c:435
631 #: ../libempathy/empathy-utils.c:535
555632 msgid "Facebook Chat"
556633 msgstr "ਫੇਸਬੁੱਕ ਚੈਟ"
557634
601678 msgid "in the future"
602679 msgstr "ਭਵਿੱਖ ਵਿੱਚ"
603680
604 #: ../libempathy-gtk/empathy-account-chooser.c:462
681 #: ../libempathy-gtk/empathy-account-chooser.c:463
605682 msgid "All"
606683 msgstr "ਸਭ"
607684
608 #: ../libempathy-gtk/empathy-account-widget.c:538
609 #: ../libempathy-gtk/empathy-account-widget.c:594
685 #: ../libempathy-gtk/empathy-account-widget.c:549
686 #: ../libempathy-gtk/empathy-account-widget.c:606
610687 #, c-format
611688 msgid "%s:"
612689 msgstr "%s:"
613690
614 #: ../libempathy-gtk/empathy-account-widget.c:1126
691 #: ../libempathy-gtk/empathy-account-widget.c:1137
615692 msgid "Username:"
616693 msgstr "ਯੂਜ਼ਰ ਨਾਂ:"
617694
618 #: ../libempathy-gtk/empathy-account-widget.c:1474
695 #: ../libempathy-gtk/empathy-account-widget.c:1480
619696 msgid "L_og in"
620697 msgstr "ਲਾਗਇਨ(_o)"
621698
622 #: ../libempathy-gtk/empathy-account-widget.c:1542
699 #: ../libempathy-gtk/empathy-account-widget.c:1548
623700 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
624701 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
625702 #: ../src/empathy-chatrooms-window.ui.h:1
627704 msgid "Account:"
628705 msgstr "ਅਕਾਊਂਟ:"
629706
630 #: ../libempathy-gtk/empathy-account-widget.c:1553
707 #: ../libempathy-gtk/empathy-account-widget.c:1559
631708 msgid "Enabled"
632709 msgstr "ਚਾਲੂ"
633710
634 #: ../libempathy-gtk/empathy-account-widget.c:1618
711 #: ../libempathy-gtk/empathy-account-widget.c:1624
635712 msgid "This account already exists on the server"
636713 msgstr "ਇਹ ਅਕਾਊਂਟ ਸਰਵਰ ਉੱਤੇ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"
637714
638 #: ../libempathy-gtk/empathy-account-widget.c:1621
715 #: ../libempathy-gtk/empathy-account-widget.c:1627
639716 msgid "Create a new account on the server"
640717 msgstr "ਸਰਵਰ ਉੱਤੇ ਨਵਾਂ ਅਕਾਊਂਟ ਬਣਾਓ"
641718
644721 #. * like: "MyUserName on chat.freenode.net".
645722 #. * You should reverse the order of these arguments if the
646723 #. * server should come before the login id in your locale.
647 #: ../libempathy-gtk/empathy-account-widget.c:2013
724 #: ../libempathy-gtk/empathy-account-widget.c:1996
648725 #, c-format
649726 msgid "%1$s on %2$s"
650727 msgstr "%2$s ਉੱਤੇ %1$s"
651728
652729 #. To translators: The parameter is the protocol name. The resulting
653730 #. * string will be something like: "Jabber Account"
654 #: ../libempathy-gtk/empathy-account-widget.c:2039
731 #: ../libempathy-gtk/empathy-account-widget.c:2022
655732 #, c-format
656733 msgid "%s Account"
657734 msgstr "%s ਅਕਾਊਂਟ"
658735
659 #: ../libempathy-gtk/empathy-account-widget.c:2043
736 #: ../libempathy-gtk/empathy-account-widget.c:2026
660737 msgid "New account"
661738 msgstr "ਨਵਾਂ ਅਕਾਊਂਟ"
662739
681758 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:4
682759 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
683760 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
684 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
761 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
685762 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
686763 msgid "Pass_word:"
687764 msgstr "ਪਾਸਵਰਡ(_w):"
701778 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:7
702779 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:7
703780 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:8
704 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
781 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
705782 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:7
706783 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:10
707784 msgid "_Port:"
710787 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:8
711788 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:8
712789 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:9
713 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
790 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:25
714791 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:8
715792 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:12
716793 #: ../src/empathy-new-chatroom-dialog.ui.h:9
757834 msgid "_Character set:"
758835 msgstr "ਅੱਖਰ ਸੈੱਟ(_C):"
759836
760 #: ../libempathy-gtk/empathy-account-widget-irc.c:244
837 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
761838 msgid "New Network"
762839 msgstr "ਨਵਾਂ ਨੈੱਟਵਰਕ"
763840
764 #: ../libempathy-gtk/empathy-account-widget-sip.c:184
765 #: ../libempathy-gtk/empathy-account-widget-sip.c:217
841 #: ../libempathy-gtk/empathy-account-widget-sip.c:183
842 #: ../libempathy-gtk/empathy-account-widget-sip.c:216
766843 msgid "Auto"
767844 msgstr "ਆਟੋ"
768845
769 #: ../libempathy-gtk/empathy-account-widget-sip.c:187
846 #: ../libempathy-gtk/empathy-account-widget-sip.c:186
770847 msgid "UDP"
771848 msgstr "UDP"
772849
773 #: ../libempathy-gtk/empathy-account-widget-sip.c:190
850 #: ../libempathy-gtk/empathy-account-widget-sip.c:189
774851 msgid "TCP"
775852 msgstr "TCP"
776853
777 #: ../libempathy-gtk/empathy-account-widget-sip.c:193
854 #: ../libempathy-gtk/empathy-account-widget-sip.c:192
778855 msgid "TLS"
779856 msgstr "TLS"
780857
781858 #. translators: this string is very specific to SIP's internal; maybe
782859 #. * best to keep the English version.
783 #: ../libempathy-gtk/empathy-account-widget-sip.c:222
860 #: ../libempathy-gtk/empathy-account-widget-sip.c:221
784861 msgid "Register"
785862 msgstr "ਰਜਿਸਟਰ"
786863
787864 #. translators: this string is very specific to SIP's internal; maybe
788865 #. * best to keep the English version.
789 #: ../libempathy-gtk/empathy-account-widget-sip.c:227
866 #: ../libempathy-gtk/empathy-account-widget-sip.c:226
790867 msgid "Options"
791868 msgstr "ਚੋਣਾਂ"
792869
793 #: ../libempathy-gtk/empathy-account-widget-sip.c:230
870 #: ../libempathy-gtk/empathy-account-widget-sip.c:229
794871 msgid "None"
795872 msgstr "ਕੋਈ ਨਹੀਂ"
796873
846923 msgid "Reso_urce:"
847924 msgstr "ਸਰੋਤ(_u):"
848925
849 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
926 #. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice.
927 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
850928 msgid ""
851929 "This is your username, not your normal Facebook login.\n"
852930 "If you are facebook.com/<b>badger</b>, enter <b>badger</b>.\n"
858936 "ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਫੇਸਬੁੱਕ ਯੂਜ਼ਰ ਨਾਂ ਨਹੀਂ ਹੈ ਤਾਂ ਇਹ ਚੁਣਨ ਵਾਸਤੇ <a href=\"http://www.facebook.com/"
859937 "username/\">ਇਹ ਪੇਜ਼</a> ਵਰਤੋਂ।"
860938
861 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:12
939 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
862940 msgid "Use old SS_L"
863941 msgstr "ਪੁਰਾਣੀ SS_L ਵਰਤੋਂ"
864942
865 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
943 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
866944 msgid "What is your Facebook password?"
867945 msgstr "ਤੁਹਾਡਾ ਫੇਸਬੁੱਕ ਪਾਸਵਰਡ ਕੀ ਹੈ?"
868946
869 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
947 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
870948 msgid "What is your Facebook username?"
871949 msgstr "ਤੁਹਾਡਾ ਫੇਸਬੁੱਕ ਯੂਜ਼ਰ ਨਾਂ ਕੀ ਹੈ?"
872950
873 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
951 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
874952 msgid "What is your Google ID?"
875953 msgstr "ਤੁਹਾਡਾ ਗੂਗਲ ID ਕੀ ਹੈ?"
876954
877 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
955 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
878956 msgid "What is your Google password?"
879957 msgstr "ਤੁਹਾਡਾ ਗੂਗਲ ਪਾਸਵਰਡ ਕੀ ਹੈ?"
880958
881 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
959 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
882960 msgid "What is your Jabber ID?"
883961 msgstr "ਤੁਹਾਡਾ ਜੱਬਰ ID ਕੀ ਹੈ?"
884962
885 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
963 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
886964 msgid "What is your Jabber password?"
887965 msgstr "ਤੁਹਾਡਾ ਜੱਬਰ ਪਾਸਵਰਡ ਕੀ ਹੈ?"
888966
889 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
967 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
890968 msgid "What is your desired Jabber ID?"
891969 msgstr "ਤੁਹਾਡਾ ਚਾਹੀਦਾ ਜੱਬਰ ID ਕੀ ਹੈ?"
892970
893 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
971 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
894972 msgid "What is your desired Jabber password?"
895973 msgstr "ਤੁਹਾਡਾ ਚਾਹੀਦਾ ਜੱਬਰ ਪਾਸਵਰਡ ਕੀ ਹੈ?"
896974
897 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
975 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
898976 msgid "_Encryption required (TLS/SSL)"
899977 msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਚਾਹੀਦੀ ਹੈ (TLS/SSL)(_E)"
900978
901 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
979 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
902980 msgid "_Ignore SSL certificate errors"
903981 msgstr "SSL ਸਰਟੀਫਿਕੇਟ ਗਲਤੀਆਂ ਅਣਡਿੱਠੀਆਂ(_I)"
904982
9551033 msgstr "STUN ਸਰਵਰ ਆਟੋਮੈਟਿਕ ਹੀ ਲੱਭੋ"
9561034
9571035 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
958 msgid "Hostname of the proxy for outbound requests."
959 msgstr "ਆਉਟਬਾਊਂਡ ਮੰਗ ਲਈ ਪਰਾਕਸੀ ਦਾ ਹੋਸਟ-ਨਾਂ।"
960
961 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
9621036 msgid "Interval (seconds)"
9631037 msgstr "ਅੰਤਰਾਲ (ਸਕਿੰਟ)"
9641038
965 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
1039 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
9661040 msgid "Keep-Alive Options"
9671041 msgstr "ਜਾਰੀ ਰੱਖਣ ਚੋਣਾਂ"
9681042
969 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
970 msgid ""
971 "Look up the DNS SRV record at the service's domain for the host name of a "
972 "STUN server."
973 msgstr "STUN ਸਰਵਰ ਦੇ ਹੋਸਟ ਨਾਂ ਲਈ ਸਰਵਿਸ ਦੇ ਡੋਮੇਨ ਦੇ DNS SRV ਰਿਕਾਰਡ ਦੀ ਖੋਜ।"
974
975 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
1043 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
9761044 msgid "Loose Routing"
9771045 msgstr "ਹਲਕਾ ਰੂਟਿੰਗ"
9781046
979 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
1047 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
9801048 msgid "Mechanism:"
9811049 msgstr "ਫੰਘ:"
9821050
983 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
1051 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
9841052 msgid "Miscellaneous Options"
9851053 msgstr "ਫੁਟਕਲ ਚੋਣਾਂ"
9861054
987 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
1055 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
9881056 msgid "NAT Traversal Options"
9891057 msgstr "NAT ਟਰਾਂਸਵਰਸਲ ਚੋਣਾਂ"
9901058
991 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
992 msgid "Port of the proxy for outbound requests."
993 msgstr "ਆਉਟਬਾਊਂਡ ਮੰਗ ਲਈ ਪਰਾਕਸੀ ਲਈ ਪੋਰਟ।"
994
995 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
1059 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
9961060 msgid "Port:"
9971061 msgstr "ਪੋਰਟ:"
9981062
999 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
1063 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
10001064 msgid "Proxy Options"
10011065 msgstr "ਪਰਾਕਸੀ ਚੋਣਾਂ"
10021066
1003 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
1067 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
10041068 msgid "STUN Server:"
10051069 msgstr "STUN ਸਰਵਰ:"
10061070
1007 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
1071 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
10081072 msgid "Server:"
10091073 msgstr "ਸਰਵਰ:"
10101074
1011 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
1012 msgid ""
1013 "The username for SIP authentication, if different from the SIP URI\n"
1014 "username."
1015 msgstr ""
1016 "SIP ਪਰਮਾਣਕਿਤਾ ਲਈ ਯੂਜ਼ਰ ਨਾਂ, ਜੇ SIP URI ਯੂਜ਼ਰ ਨਾਂ ਤੋਂ ਵੱਖਰਾ ਹੈ\n"
1017 "ਤਾਂ।"
1018
1019 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
1075 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
10201076 msgid "Transport:"
10211077 msgstr "ਟਰਾਂਸਪੋਰਟ:"
10221078
1023 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
1024 msgid ""
1025 "Update the registration binding if the external address for the client is "
1026 "discovered to be different from the local binding."
1027 msgstr ""
1028 "ਰਜਿਸਟਰੇਸ਼ਨ ਬਾਈਡਿੰਗ ਅੱਪਡੇਟ ਕਰੋ, ਜੇ ਕਲਾਇਟ ਲਈ ਬਾਹਰੀ ਐਡਰੈੱਸ ਲੋਕਲ ਬਾਈਡਿੰਗ ਤੋਂ ਵੱਖਰਾ "
1029 "ਲੱਭਿਆ ਜਾਵੇ।"
1030
1031 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:24
1032 msgid ""
1033 "Use the loose routing behavior and the Route header as recommended in RFC "
1034 "3261."
1035 msgstr "ਲੂਜ਼ ਰੂਟ ਰਵੱਈਆ ਵਰਤੋਂ ਅਤੇ RFC ੩੨੬੧ ਵਿੱਚ ਕੀਤੀ ਸਿਫਾਰਸ਼ ਵਜੋਂ ਰੂਟ ਹੈੱਡਰ।"
1036
1037 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:25
1079 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
10381080 msgid "What is your SIP account password?"
10391081 msgstr "ਤੁਹਾਡਾ SIP ਅਕਾਊਂਟ ਪਾਸਵਰਡ ਕੀ ਹੈ?"
10401082
1041 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:26
1083 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
10421084 msgid "What is your SIP login ID?"
10431085 msgstr "ਤੁਹਾਡਾ SIP ਲਾਗਇਨ ID ਕੀ ਹੈ?"
10441086
1045 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:27
1087 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
10461088 msgid "_Username:"
10471089 msgstr "ਯੂਜ਼ਰ ਨਾਂ(_U):"
10481090
10701112 msgid "_Room List locale:"
10711113 msgstr "ਰੂਮ ਲਿਸਟ ਭਾਸ਼ਾ(_R):"
10721114
1073 #: ../libempathy-gtk/empathy-avatar-chooser.c:449
1074 #: ../libempathy-gtk/empathy-avatar-chooser.c:525
1115 #: ../libempathy-gtk/empathy-avatar-chooser.c:443
1116 #: ../libempathy-gtk/empathy-avatar-chooser.c:519
10751117 msgid "Couldn't convert image"
10761118 msgstr "ਚਿੱਤਰ ਨਾ ਬਦਲੋ"
10771119
1078 #: ../libempathy-gtk/empathy-avatar-chooser.c:450
1120 #: ../libempathy-gtk/empathy-avatar-chooser.c:444
10791121 msgid "None of the accepted image formats are supported on your system"
10801122 msgstr "ਕੋਈ ਵੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਚਿੱਤਰ ਫਾਰਮੈਟ ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਲੋਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
10811123
1082 #: ../libempathy-gtk/empathy-avatar-chooser.c:915
1124 #: ../libempathy-gtk/empathy-avatar-chooser.c:935
10831125 msgid "Select Your Avatar Image"
10841126 msgstr "ਆਪਣਾ ਅਵਤਾਰ ਲੇਖ ਚੁਣੋ"
10851127
1086 #: ../libempathy-gtk/empathy-avatar-chooser.c:918
1128 #: ../libempathy-gtk/empathy-avatar-chooser.c:938
10871129 msgid "No Image"
10881130 msgstr "ਕੋਈ ਚਿੱਤਰ ਨਹੀਂ"
10891131
1090 #: ../libempathy-gtk/empathy-avatar-chooser.c:980
1132 #: ../libempathy-gtk/empathy-avatar-chooser.c:1000
10911133 msgid "Images"
10921134 msgstr "ਚਿੱਤਰ"
10931135
1094 #: ../libempathy-gtk/empathy-avatar-chooser.c:984
1136 #: ../libempathy-gtk/empathy-avatar-chooser.c:1004
10951137 msgid "All Files"
10961138 msgstr "ਸਭ ਫਾਇਲਾਂ"
10971139
1098 #: ../libempathy-gtk/empathy-avatar-image.c:327
1140 #: ../libempathy-gtk/empathy-avatar-image.c:323
10991141 msgid "Click to enlarge"
11001142 msgstr "ਵੱਡਾ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ"
11011143
1102 #: ../libempathy-gtk/empathy-chat.c:233
1103 msgid "Failed to reconnect this chat"
1104 msgstr "ਇਸ ਗੱਲ ਨਾਲ ਫੇਰ-ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਫੇਲ੍ਹ"
1105
1106 #: ../libempathy-gtk/empathy-chat.c:655
1107 msgid "Failed to join chat room"
1108 msgstr "ਗੱਲਬਾਤ-ਰੂਮ ਜੁਆਇੰਨ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
1109
1110 #: ../libempathy-gtk/empathy-chat.c:673
1144 #: ../libempathy-gtk/empathy-chat.c:639
11111145 msgid "Failed to open private chat"
11121146 msgstr "ਪ੍ਰਾਈਵੇਟ ਗੱਲਬਾਤ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ"
11131147
1114 #: ../libempathy-gtk/empathy-chat.c:712
1148 #: ../libempathy-gtk/empathy-chat.c:679
11151149 msgid "Topic not supported on this conversation"
11161150 msgstr "ਇਹ ਗੱਲਬਾਤ ਲਈ ਵਿਸ਼ਾ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
11171151
1118 #: ../libempathy-gtk/empathy-chat.c:718
1152 #: ../libempathy-gtk/empathy-chat.c:685
11191153 msgid "You are not allowed to change the topic"
11201154 msgstr "ਤੁਹਾਨੂੰ ਵਿਸ਼ਾ ਬਦਲਣ ਦਾ ਅਧਿਕਾਰ ਨਹੀਂ ਹੈ"
11211155
1122 #: ../libempathy-gtk/empathy-chat.c:847
1156 #: ../libempathy-gtk/empathy-chat.c:820
11231157 msgid "/clear: clear all messages from the current conversation"
11241158 msgstr "/clear: ਮੌਜੂਦਾ ਗੱਲਬਾਤ ਤੋਂ ਸਭ ਸੁਨੇਹੇ ਸਾਫ਼ ਕਰੋ"
11251159
1126 #: ../libempathy-gtk/empathy-chat.c:850
1160 #: ../libempathy-gtk/empathy-chat.c:823
11271161 msgid "/topic <topic>: set the topic of the current conversation"
11281162 msgstr "/topic <topic>: ਮੌਜੂਦਾ ਗੱਲਬਾਤ ਦਾ ਵਿਸ਼ਾ ਸੈੱਟ ਕਰੋ"
11291163
1130 #: ../libempathy-gtk/empathy-chat.c:853
1164 #: ../libempathy-gtk/empathy-chat.c:826
11311165 msgid "/join <chat room ID>: join a new chat room"
11321166 msgstr "/join <chat room ID>: ਨਵਾਂ ਗੱਲਬਾਤ ਰੂਮ ਜੁਆਇੰਨ ਕਰੋ"
11331167
1134 #: ../libempathy-gtk/empathy-chat.c:856
1168 #: ../libempathy-gtk/empathy-chat.c:829
11351169 msgid "/j <chat room ID>: join a new chat room"
11361170 msgstr "/j <chat room ID>: ਨਵਾਂ ਗੱਲਬਾਤ ਰੂਮ ਜੁਆਇੰਨ ਕਰੋ"
11371171
1138 #: ../libempathy-gtk/empathy-chat.c:859
1172 #: ../libempathy-gtk/empathy-chat.c:834
11391173 msgid "/query <contact ID> [<message>]: open a private chat"
11401174 msgstr "/query <contact ID> [<message>]: ਪ੍ਰਾਈਵੇਟ ਗੱਲਬਾਤ ਖੋਲ੍ਹੋ"
11411175
1142 #: ../libempathy-gtk/empathy-chat.c:862
1176 #: ../libempathy-gtk/empathy-chat.c:837
11431177 msgid "/msg <contact ID> <message>: open a private chat"
11441178 msgstr "/msg <contact ID> <message>: ਪ੍ਰਾਈਵੇਟ ਗੱਲਬਾਤ ਕਰੋ"
11451179
1146 #: ../libempathy-gtk/empathy-chat.c:865
1180 #: ../libempathy-gtk/empathy-chat.c:841
11471181 msgid "/nick <nickname>: change your nickname on the current server"
11481182 msgstr "/nick <nickname>: ਮੌਜੂਦਾ ਸਰਵਰ ਉੱਤੇ ਆਪਣਾ ਨਾਂ ਬਦਲੋ"
11491183
1150 #: ../libempathy-gtk/empathy-chat.c:868
1184 #: ../libempathy-gtk/empathy-chat.c:844
11511185 msgid "/me <message>: send an ACTION message to the current conversation"
11521186 msgstr "/me <message>:ਇੱਕ ਐਕਸ਼ਨ ਸੁਨੇਹਾ ਮੌਜੂਦਾ ਗੱਲਬਾਤ ਵਿੱਚ ਭੇਜੋ"
11531187
1154 #: ../libempathy-gtk/empathy-chat.c:871
1188 #: ../libempathy-gtk/empathy-chat.c:847
11551189 msgid ""
11561190 "/say <message>: send <message> to the current conversation. This is used to "
11571191 "send a message starting with a '/'. For example: \"/say /join is used to "
11611195 "send a message starting with a '/'. For example: \"/say /join is used to "
11621196 "join a new chat room\""
11631197
1164 #: ../libempathy-gtk/empathy-chat.c:876
1198 #: ../libempathy-gtk/empathy-chat.c:852
11651199 msgid ""
11661200 "/help [<command>]: show all supported commands. If <command> is defined, "
11671201 "show its usage."
11691203 "/help [<command>]: show all supported commands. If <command> is defined, "
11701204 "show its usage."
11711205
1172 #: ../libempathy-gtk/empathy-chat.c:886
1206 #: ../libempathy-gtk/empathy-chat.c:862
11731207 #, c-format
11741208 msgid "Usage: %s"
11751209 msgstr "ਵਰਤੋਂ: %s"
11761210
1177 #: ../libempathy-gtk/empathy-chat.c:915
1211 #: ../libempathy-gtk/empathy-chat.c:891
11781212 msgid "Unknown command"
11791213 msgstr "ਅਣਜਾਣ ਕਮਾਂਡ"
11801214
1181 #: ../libempathy-gtk/empathy-chat.c:1036
1215 #: ../libempathy-gtk/empathy-chat.c:1012
11821216 msgid "Unknown command; see /help for the available commands"
11831217 msgstr "ਅਣਜਾਣ ਕਮਾਂਡ; ਉਪਲੱਬਧ ਕਮਾਂਡ ਵਾਸਤੇ ਮੱਦਦ ਲਈ /help ਵਰਤੋਂ"
11841218
1185 #: ../libempathy-gtk/empathy-chat.c:1174
1219 #: ../libempathy-gtk/empathy-chat.c:1150
11861220 msgid "offline"
11871221 msgstr "ਆਫਲਾਈਨ"
11881222
1189 #: ../libempathy-gtk/empathy-chat.c:1177
1223 #: ../libempathy-gtk/empathy-chat.c:1153
11901224 msgid "invalid contact"
11911225 msgstr "ਗਲਤ ਸੰਪਰਕ"
11921226
1193 #: ../libempathy-gtk/empathy-chat.c:1180
1227 #: ../libempathy-gtk/empathy-chat.c:1156
11941228 msgid "permission denied"
11951229 msgstr "ਅਧਿਕਾਰ ਪਾਬੰਦੀ"
11961230
1197 #: ../libempathy-gtk/empathy-chat.c:1183
1231 #: ../libempathy-gtk/empathy-chat.c:1159
11981232 msgid "too long message"
11991233 msgstr "ਬਹੁਤ ਲੰਮਾ ਸੁਨੇਹਾ"
12001234
1201 #: ../libempathy-gtk/empathy-chat.c:1186
1235 #: ../libempathy-gtk/empathy-chat.c:1162
12021236 msgid "not implemented"
12031237 msgstr "ਸਥਾਪਤ ਨਹੀਂ"
12041238
1205 #: ../libempathy-gtk/empathy-chat.c:1189
1239 #: ../libempathy-gtk/empathy-chat.c:1166
12061240 msgid "unknown"
12071241 msgstr "ਅਣਜਾਣ"
12081242
1209 #: ../libempathy-gtk/empathy-chat.c:1193
1243 #: ../libempathy-gtk/empathy-chat.c:1170
12101244 #, c-format
12111245 msgid "Error sending message '%s': %s"
12121246 msgstr "ਸੁਨੇਹਾ '%s' ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
12131247
1214 #: ../libempathy-gtk/empathy-chat.c:1228
1248 #: ../libempathy-gtk/empathy-chat.c:1280 ../src/empathy-chat-window.c:691
1249 msgid "Topic:"
1250 msgstr "ਵਿਸ਼ਾ:"
1251
1252 #: ../libempathy-gtk/empathy-chat.c:1292
12151253 #, c-format
12161254 msgid "Topic set to: %s"
12171255 msgstr "ਵਿਸ਼ਾ ਨਹੀਂ ਕੀਤਾ: %s"
12181256
1219 #: ../libempathy-gtk/empathy-chat.c:1230
1257 #: ../libempathy-gtk/empathy-chat.c:1294
12201258 msgid "No topic defined"
12211259 msgstr "ਕੋਈ ਵਿਸ਼ਾ ਨਹੀਂ ਦਿੱਤਾ"
12221260
1223 #: ../libempathy-gtk/empathy-chat.c:1629
1261 #: ../libempathy-gtk/empathy-chat.c:1773
12241262 msgid "(No Suggestions)"
12251263 msgstr "(ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ)"
12261264
1227 #: ../libempathy-gtk/empathy-chat.c:1683
1265 #: ../libempathy-gtk/empathy-chat.c:1827
12281266 msgid "Insert Smiley"
12291267 msgstr "ਚਿਹਰਾ ਸ਼ਾਮਲ ਕਰੋ"
12301268
12311269 #. send button
1232 #: ../libempathy-gtk/empathy-chat.c:1701
1233 #: ../libempathy-gtk/empathy-ui-utils.c:1626
1270 #: ../libempathy-gtk/empathy-chat.c:1845
1271 #: ../libempathy-gtk/empathy-ui-utils.c:1800
12341272 msgid "_Send"
12351273 msgstr "ਭੇਜੋ(_S)"
12361274
1237 #: ../libempathy-gtk/empathy-chat.c:1735
1275 #: ../libempathy-gtk/empathy-chat.c:1879
12381276 msgid "_Spelling Suggestions"
12391277 msgstr "ਸਪੈਲਿੰਗ ਸੁਝਾਅ(_S)"
12401278
1241 #: ../libempathy-gtk/empathy-chat.c:1829
1279 #: ../libempathy-gtk/empathy-chat.c:1956
12421280 msgid "Failed to retrieve recent logs"
12431281 msgstr "ਤਾਜ਼ਾ ਲਾਗ ਲੈਣ ਲਈ ਫੇਲ੍ਹ"
12441282
1245 #: ../libempathy-gtk/empathy-chat.c:1960
1283 #: ../libempathy-gtk/empathy-chat.c:2062
12461284 #, c-format
12471285 msgid "%s has disconnected"
12481286 msgstr "%s ਡਿਸ-ਕੁਨੈਕਟ ਹੋ ਗਿਆ ਹੈ"
12501288 #. translators: reverse the order of these arguments
12511289 #. * if the kicked should come before the kicker in your locale.
12521290 #.
1253 #: ../libempathy-gtk/empathy-chat.c:1967
1291 #: ../libempathy-gtk/empathy-chat.c:2069
12541292 #, c-format
12551293 msgid "%1$s was kicked by %2$s"
12561294 msgstr "%2$s ਨੇ %1$s ਨੂੰ ਕਿੱਕ ਮਾਰੀ"
12571295
1258 #: ../libempathy-gtk/empathy-chat.c:1970
1296 #: ../libempathy-gtk/empathy-chat.c:2072
12591297 #, c-format
12601298 msgid "%s was kicked"
12611299 msgstr "%s ਨੂੰ ਕਿੱਕ ਮਾਰੀ"
12631301 #. translators: reverse the order of these arguments
12641302 #. * if the banned should come before the banner in your locale.
12651303 #.
1266 #: ../libempathy-gtk/empathy-chat.c:1978
1304 #: ../libempathy-gtk/empathy-chat.c:2080
12671305 #, c-format
12681306 msgid "%1$s was banned by %2$s"
12691307 msgstr "%2$s ਵਲੋਂ %1$s ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਈ"
12701308
1271 #: ../libempathy-gtk/empathy-chat.c:1981
1309 #: ../libempathy-gtk/empathy-chat.c:2083
12721310 #, c-format
12731311 msgid "%s was banned"
12741312 msgstr "%s ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਈ"
12751313
1276 #: ../libempathy-gtk/empathy-chat.c:1985
1314 #: ../libempathy-gtk/empathy-chat.c:2087
12771315 #, c-format
12781316 msgid "%s has left the room"
12791317 msgstr "%s ਨੇ ਰੂਮ ਛੱਡਿਆ"
12831321 #. * given by the user living the room. If this poses a problem,
12841322 #. * please let us know. :-)
12851323 #.
1286 #: ../libempathy-gtk/empathy-chat.c:1994
1324 #: ../libempathy-gtk/empathy-chat.c:2096
12871325 #, c-format
12881326 msgid " (%s)"
12891327 msgstr " (%s)"
12901328
1291 #: ../libempathy-gtk/empathy-chat.c:2019
1329 #: ../libempathy-gtk/empathy-chat.c:2121
12921330 #, c-format
12931331 msgid "%s has joined the room"
12941332 msgstr "%s ਰੂਮ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ"
12951333
1296 #: ../libempathy-gtk/empathy-chat.c:2044
1334 #: ../libempathy-gtk/empathy-chat.c:2146
12971335 #, c-format
12981336 msgid "%s is now known as %s"
12991337 msgstr "%s ਨੂੰ ਹੁਣ %s ਵਜੋਂ ਜਾਣਿਆ ਜਾਵੇਗਾ"
13001338
1301 #: ../libempathy-gtk/empathy-chat.c:2179 ../src/empathy-call-window.c:1532
1339 #: ../libempathy-gtk/empathy-chat.c:2285 ../src/empathy-call-window.c:1922
13021340 msgid "Disconnected"
13031341 msgstr "ਕੁਨੈਕਸ਼ਨ ਖਤਮ"
13041342
1305 #: ../libempathy-gtk/empathy-chat.c:2701
1343 #: ../libempathy-gtk/empathy-chat.c:2923
13061344 msgid "Wrong password; please try again:"
13071345 msgstr "ਗਲਤ ਪਾਸਵਰਡ; ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ:"
13081346
1309 #: ../libempathy-gtk/empathy-chat.c:2702
1347 #: ../libempathy-gtk/empathy-chat.c:2924
13101348 msgid "Retry"
13111349 msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼"
13121350
1313 #: ../libempathy-gtk/empathy-chat.c:2707
1351 #: ../libempathy-gtk/empathy-chat.c:2929
13141352 msgid "This room is protected by a password:"
13151353 msgstr "ਇਹ ਰੂਮ ਪਾਸਵਰਡ ਨਾਲ ਸੁਰੱਖਿਅਤ ਹੈ:"
13161354
1317 #: ../libempathy-gtk/empathy-chat.c:2708
1355 #: ../libempathy-gtk/empathy-chat.c:2930
13181356 msgid "Join"
13191357 msgstr "ਦਾਖਲ"
13201358
1321 #: ../libempathy-gtk/empathy-chat.c:2848
1359 #: ../libempathy-gtk/empathy-chat.c:3070
13221360 msgid "Connected"
13231361 msgstr "ਕੁਨੈਕਟ ਕੀਤਾ"
13241362
1325 #: ../libempathy-gtk/empathy-chat.c:2901
1326 #: ../libempathy-gtk/empathy-log-window.c:707
1363 #: ../libempathy-gtk/empathy-chat.c:3123
1364 #: ../libempathy-gtk/empathy-log-window.c:639
13271365 msgid "Conversation"
13281366 msgstr "ਗੱਲਬਾਤ"
13291367
1330 #: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:684
1331 msgid "Topic:"
1332 msgstr "ਵਿਸ਼ਾ:"
1333
13341368 #. Copy Link Address menu item
1335 #: ../libempathy-gtk/empathy-chat-text-view.c:318
1336 #: ../libempathy-gtk/empathy-theme-adium.c:786
1369 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1370 #: ../libempathy-gtk/empathy-theme-adium.c:791
13371371 msgid "_Copy Link Address"
13381372 msgstr "ਲਿੰਕ ਐਡਰੈੱਸ ਕਾਪੀ ਕਰੋ(_C)"
13391373
13401374 #. Open Link menu item
1341 #: ../libempathy-gtk/empathy-chat-text-view.c:325
1342 #: ../libempathy-gtk/empathy-theme-adium.c:793
1375 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1376 #: ../libempathy-gtk/empathy-theme-adium.c:798
13431377 msgid "_Open Link"
13441378 msgstr "ਲਿੰਕ ਖੋਲ੍ਹੋ(_O)"
13451379
13461380 #. Translators: timestamp displayed between conversations in
13471381 #. * chat windows (strftime format string)
1348 #: ../libempathy-gtk/empathy-chat-text-view.c:423
1382 #: ../libempathy-gtk/empathy-chat-text-view.c:424
13491383 msgid "%A %B %d %Y"
13501384 msgstr "%A %d %B %Y"
13511385
1352 #: ../libempathy-gtk/empathy-contact-dialogs.c:249
1386 #: ../libempathy-gtk/empathy-contact-dialogs.c:243
13531387 msgid "Edit Contact Information"
13541388 msgstr "ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਸੋਧ"
13551389
1356 #: ../libempathy-gtk/empathy-contact-dialogs.c:301
1390 #: ../libempathy-gtk/empathy-contact-dialogs.c:295
13571391 msgid "Personal Information"
13581392 msgstr "ਨਿੱਜੀ ਜਾਣਕਾਰੀ"
13591393
1360 #: ../libempathy-gtk/empathy-contact-dialogs.c:406
1394 #: ../libempathy-gtk/empathy-contact-dialogs.c:401
1395 #: ../libempathy-gtk/empathy-individual-dialogs.c:112
13611396 msgid "New Contact"
13621397 msgstr "ਨਵਾਂ ਸੰਪਰਕ"
13631398
13691404 msgid "Subscription Request"
13701405 msgstr "ਮੈਂਬਰੀ ਮੰਗ"
13711406
1372 #: ../libempathy-gtk/empathy-contact-list-view.c:1633
1407 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1408 #: ../libempathy-gtk/empathy-individual-view.c:2025
13731409 #, c-format
13741410 msgid "Do you really want to remove the group '%s'?"
13751411 msgstr "ਕੀ ਤੁਸੀਂ ਗਰੁੱਪ '%s' ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
13761412
1377 #: ../libempathy-gtk/empathy-contact-list-view.c:1635
1413 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1414 #: ../libempathy-gtk/empathy-individual-view.c:2028
13781415 msgid "Removing group"
13791416 msgstr "ਗਰੁੱਪ ਹਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
13801417
13811418 #. Remove
1382 #: ../libempathy-gtk/empathy-contact-list-view.c:1684
1383 #: ../libempathy-gtk/empathy-contact-list-view.c:1761
1419 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1420 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1421 #: ../libempathy-gtk/empathy-individual-view.c:2082
1422 #: ../libempathy-gtk/empathy-individual-view.c:2167
13841423 #: ../src/empathy-accounts-dialog.ui.h:6
13851424 msgid "_Remove"
13861425 msgstr "ਹਟਾਓ(_R)"
13871426
1388 #: ../libempathy-gtk/empathy-contact-list-view.c:1714
1427 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1428 #: ../libempathy-gtk/empathy-individual-view.c:2113
13891429 #, c-format
13901430 msgid "Do you really want to remove the contact '%s'?"
13911431 msgstr "ਕੀ ਤੁਸੀਂ ਸੰਪਰਕ '%s' ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
13921432
1393 #: ../libempathy-gtk/empathy-contact-list-view.c:1716
1433 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1434 #: ../libempathy-gtk/empathy-individual-view.c:2115
13941435 msgid "Removing contact"
13951436 msgstr "ਸੰਪਰਕ ਹਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
13961437
1397 #: ../libempathy-gtk/empathy-contact-menu.c:206
1398 #: ../src/empathy-main-window.ui.h:14
1438 #: ../libempathy-gtk/empathy-contact-menu.c:203
1439 #: ../libempathy-gtk/empathy-individual-menu.c:233
1440 #: ../src/empathy-main-window.ui.h:13
13991441 msgid "_Add Contact…"
14001442 msgstr "ਸੰਪਰਕ ਸ਼ਾਮਲ(_A)..."
14011443
1402 #: ../libempathy-gtk/empathy-contact-menu.c:233
1403 #: ../src/empathy-main-window.ui.h:15
1444 #: ../libempathy-gtk/empathy-contact-menu.c:230
1445 #: ../libempathy-gtk/empathy-individual-menu.c:273
1446 #: ../src/empathy-main-window.ui.h:14
14041447 msgid "_Chat"
14051448 msgstr "ਗੱਲਬਾਤ(_C)"
14061449
1407 #: ../libempathy-gtk/empathy-contact-menu.c:264
1450 #: ../libempathy-gtk/empathy-contact-menu.c:260
1451 #: ../libempathy-gtk/empathy-individual-menu.c:313
14081452 msgctxt "menu item"
14091453 msgid "_Audio Call"
14101454 msgstr "ਆਡੀਓ ਕਾਲ(_A)"
14111455
1412 #: ../libempathy-gtk/empathy-contact-menu.c:296
1456 #: ../libempathy-gtk/empathy-contact-menu.c:290
1457 #: ../libempathy-gtk/empathy-individual-menu.c:356
14131458 msgctxt "menu item"
14141459 msgid "_Video Call"
14151460 msgstr "ਵਿਡੀਓ ਕਾਲ(_V)"
14161461
1417 #: ../libempathy-gtk/empathy-contact-menu.c:347
1418 #: ../src/empathy-main-window.ui.h:26
1462 #: ../libempathy-gtk/empathy-contact-menu.c:330
1463 #: ../libempathy-gtk/empathy-individual-menu.c:408
1464 #: ../src/empathy-main-window.ui.h:25
14191465 msgid "_Previous Conversations"
14201466 msgstr "ਪਿਛਲੀ ਗੱਲਬਾਤ(_P)"
14211467
1422 #: ../libempathy-gtk/empathy-contact-menu.c:369
1423 msgid "Send file"
1468 #: ../libempathy-gtk/empathy-contact-menu.c:352
1469 #: ../libempathy-gtk/empathy-individual-menu.c:449
1470 msgid "Send File"
14241471 msgstr "ਫਾਇਲ ਭੇਜੋ"
14251472
1426 #: ../libempathy-gtk/empathy-contact-menu.c:392
1427 msgid "Share my desktop"
1473 #: ../libempathy-gtk/empathy-contact-menu.c:375
1474 #: ../libempathy-gtk/empathy-individual-menu.c:491
1475 msgid "Share My Desktop"
14281476 msgstr "ਮੇਰਾ ਡੈਸਕਟਾਪ ਸ਼ੇਅਰ ਕਰੋ"
14291477
1430 #: ../libempathy-gtk/empathy-contact-menu.c:432
1431 #: ../libempathy-gtk/empathy-contact-widget.c:1379
1478 #: ../libempathy-gtk/empathy-contact-menu.c:415
1479 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1480 #: ../libempathy-gtk/empathy-individual-menu.c:520
14321481 msgid "Favorite"
14331482 msgstr "ਪਸੰਦ"
14341483
1435 #: ../libempathy-gtk/empathy-contact-menu.c:462
1484 #: ../libempathy-gtk/empathy-contact-menu.c:444
1485 #: ../libempathy-gtk/empathy-individual-menu.c:552
14361486 msgid "Infor_mation"
14371487 msgstr "ਜਾਣਕਾਰੀ(_m)"
14381488
1439 #: ../libempathy-gtk/empathy-contact-menu.c:508
1489 #: ../libempathy-gtk/empathy-contact-menu.c:490
14401490 msgctxt "Edit contact (contextual menu)"
14411491 msgid "_Edit"
14421492 msgstr "ਸੋਧ(_E)"
14431493
1444 #: ../libempathy-gtk/empathy-contact-menu.c:562
1445 #: ../src/empathy-chat-window.c:869
1494 #: ../libempathy-gtk/empathy-contact-menu.c:544
1495 #: ../libempathy-gtk/empathy-individual-menu.c:696
1496 #: ../src/empathy-chat-window.c:903
14461497 msgid "Inviting you to this room"
14471498 msgstr "ਇਸ ਰੂਮ ਲਈ ਤੁਹਾਨੂੰ ਸੱਦਾ"
14481499
1449 #: ../libempathy-gtk/empathy-contact-menu.c:593
1450 msgid "_Invite to chat room"
1500 #: ../libempathy-gtk/empathy-contact-menu.c:575
1501 #: ../libempathy-gtk/empathy-individual-menu.c:734
1502 msgid "_Invite to Chat Room"
14511503 msgstr "ਗੱਲਬਾਤ ਰੂਮ ਲਈ ਸੱਦਾ(_I)"
14521504
14531505 #: ../libempathy-gtk/empathy-contact-selector.c:129
14541506 msgid "Select a contact"
14551507 msgstr "ਸੰਪਰਕ ਚੁਣੋ"
14561508
1457 #: ../libempathy-gtk/empathy-contact-widget.c:238
1509 #: ../libempathy-gtk/empathy-contact-widget.c:219
1510 msgid "Full name:"
1511 msgstr "ਪੂਰਾ ਨਾਂ:"
1512
1513 #: ../libempathy-gtk/empathy-contact-widget.c:220
1514 msgid "Phone number:"
1515 msgstr "ਫੋਨ ਨੰਬਰ:"
1516
1517 #: ../libempathy-gtk/empathy-contact-widget.c:221
1518 msgid "E-mail address:"
1519 msgstr "ਈਮੇਲ ਐਡਰੈੱਸ:"
1520
1521 #: ../libempathy-gtk/empathy-contact-widget.c:222
1522 msgid "Website:"
1523 msgstr "ਵੈੱਬਸਾਈਟ:"
1524
1525 #: ../libempathy-gtk/empathy-contact-widget.c:223
1526 msgid "Birthday:"
1527 msgstr "ਜਨਮਦਿਨ:"
1528
1529 #: ../libempathy-gtk/empathy-contact-widget.c:603
14581530 msgid "Select"
14591531 msgstr "ਚੁਣੋ"
14601532
1461 #: ../libempathy-gtk/empathy-contact-widget.c:247
1462 #: ../src/empathy-main-window.c:1050
1533 #: ../libempathy-gtk/empathy-contact-widget.c:612
1534 #: ../src/empathy-main-window.c:1231
14631535 msgid "Group"
14641536 msgstr "ਗਰੁੱਪ"
14651537
1466 #: ../libempathy-gtk/empathy-contact-widget.c:478
1538 #: ../libempathy-gtk/empathy-contact-widget.c:841
14671539 msgid "Country ISO Code:"
14681540 msgstr "ਦੇਸ਼ ISO ਕੋਡ:"
14691541
1470 #: ../libempathy-gtk/empathy-contact-widget.c:480
1542 #: ../libempathy-gtk/empathy-contact-widget.c:843
14711543 msgid "Country:"
14721544 msgstr "ਦੇਸ਼:"
14731545
1474 #: ../libempathy-gtk/empathy-contact-widget.c:482
1546 #: ../libempathy-gtk/empathy-contact-widget.c:845
14751547 msgid "State:"
14761548 msgstr "ਹਾਲਤ:"
14771549
1478 #: ../libempathy-gtk/empathy-contact-widget.c:484
1550 #: ../libempathy-gtk/empathy-contact-widget.c:847
14791551 msgid "City:"
14801552 msgstr "ਸ਼ਹਿਰ:"
14811553
1482 #: ../libempathy-gtk/empathy-contact-widget.c:486
1554 #: ../libempathy-gtk/empathy-contact-widget.c:849
14831555 msgid "Area:"
14841556 msgstr "ਏਰੀਆ:"
14851557
1486 #: ../libempathy-gtk/empathy-contact-widget.c:488
1558 #: ../libempathy-gtk/empathy-contact-widget.c:851
14871559 msgid "Postal Code:"
14881560 msgstr "ਡਾਕ ਕੋਡ:"
14891561
1490 #: ../libempathy-gtk/empathy-contact-widget.c:490
1562 #: ../libempathy-gtk/empathy-contact-widget.c:853
14911563 msgid "Street:"
14921564 msgstr "ਗਲੀ:"
14931565
1494 #: ../libempathy-gtk/empathy-contact-widget.c:492
1566 #: ../libempathy-gtk/empathy-contact-widget.c:855
14951567 msgid "Building:"
14961568 msgstr "ਇਮਾਰਤ:"
14971569
1498 #: ../libempathy-gtk/empathy-contact-widget.c:494
1570 #: ../libempathy-gtk/empathy-contact-widget.c:857
14991571 msgid "Floor:"
15001572 msgstr "ਮੰਜ਼ਲ:"
15011573
1502 #: ../libempathy-gtk/empathy-contact-widget.c:496
1574 #: ../libempathy-gtk/empathy-contact-widget.c:859
15031575 msgid "Room:"
15041576 msgstr "ਘਰ:"
15051577
1506 #: ../libempathy-gtk/empathy-contact-widget.c:498
1578 #: ../libempathy-gtk/empathy-contact-widget.c:861
15071579 msgid "Text:"
15081580 msgstr "ਟੈਕਸਟ:"
15091581
1510 #: ../libempathy-gtk/empathy-contact-widget.c:500
1582 #: ../libempathy-gtk/empathy-contact-widget.c:863
15111583 msgid "Description:"
15121584 msgstr "ਵੇਰਵਾ:"
15131585
1514 #: ../libempathy-gtk/empathy-contact-widget.c:502
1586 #: ../libempathy-gtk/empathy-contact-widget.c:865
15151587 msgid "URI:"
15161588 msgstr "URI:"
15171589
1518 #: ../libempathy-gtk/empathy-contact-widget.c:504
1590 #: ../libempathy-gtk/empathy-contact-widget.c:867
15191591 msgid "Accuracy Level:"
15201592 msgstr "ਸ਼ੁੱਧਤਾ ਲੈਵਲ:"
15211593
1522 #: ../libempathy-gtk/empathy-contact-widget.c:506
1594 #: ../libempathy-gtk/empathy-contact-widget.c:869
15231595 msgid "Error:"
15241596 msgstr "ਗਲਤੀ:"
15251597
1526 #: ../libempathy-gtk/empathy-contact-widget.c:508
1598 #: ../libempathy-gtk/empathy-contact-widget.c:871
15271599 msgid "Vertical Error (meters):"
15281600 msgstr "ਵਰਟੀਕਲ ਗਲਤੀ (ਮੀਟਰ):"
15291601
1530 #: ../libempathy-gtk/empathy-contact-widget.c:510
1602 #: ../libempathy-gtk/empathy-contact-widget.c:873
15311603 msgid "Horizontal Error (meters):"
15321604 msgstr "ਹਰੀਜੱਟਲ ਗਲਤੀ (ਮੀਟਰ):"
15331605
1534 #: ../libempathy-gtk/empathy-contact-widget.c:512
1606 #: ../libempathy-gtk/empathy-contact-widget.c:875
15351607 msgid "Speed:"
15361608 msgstr "ਗਤੀ:"
15371609
1538 #: ../libempathy-gtk/empathy-contact-widget.c:514
1610 #: ../libempathy-gtk/empathy-contact-widget.c:877
15391611 msgid "Bearing:"
15401612 msgstr "ਬੀਰਿੰਗ:"
15411613
1542 #: ../libempathy-gtk/empathy-contact-widget.c:516
1614 #: ../libempathy-gtk/empathy-contact-widget.c:879
15431615 msgid "Climb Speed:"
15441616 msgstr "ਚੜ੍ਹਨ ਗਤੀ:"
15451617
1546 #: ../libempathy-gtk/empathy-contact-widget.c:518
1618 #: ../libempathy-gtk/empathy-contact-widget.c:881
15471619 msgid "Last Updated on:"
15481620 msgstr "ਆਖਰੀ ਅੱਪਡੇਟ:"
15491621
1550 #: ../libempathy-gtk/empathy-contact-widget.c:520
1622 #: ../libempathy-gtk/empathy-contact-widget.c:883
15511623 msgid "Longitude:"
15521624 msgstr "ਲੰਬਕਾਰੀ:"
15531625
1554 #: ../libempathy-gtk/empathy-contact-widget.c:522
1626 #: ../libempathy-gtk/empathy-contact-widget.c:885
15551627 msgid "Latitude:"
15561628 msgstr "ਵਿਥਕਾਰ:"
15571629
1558 #: ../libempathy-gtk/empathy-contact-widget.c:524
1630 #: ../libempathy-gtk/empathy-contact-widget.c:887
15591631 msgid "Altitude:"
15601632 msgstr "ਉਚਾਈ:"
15611633
1562 #: ../libempathy-gtk/empathy-contact-widget.c:587
1634 #: ../libempathy-gtk/empathy-contact-widget.c:950
15631635 #: ../src/empathy-preferences.ui.h:12
15641636 msgid "Location"
15651637 msgstr "ਟਿਕਾਣਾ"
15661638
1567 #: ../libempathy-gtk/empathy-contact-widget.c:603
1639 #: ../libempathy-gtk/empathy-contact-widget.c:966
15681640 msgid "<b>Location</b>, "
15691641 msgstr "<b>ਟਿਕਾਣਾ</b>, "
15701642
1571 #: ../libempathy-gtk/empathy-contact-widget.c:653
1643 #: ../libempathy-gtk/empathy-contact-widget.c:1017
15721644 msgid "%B %e, %Y at %R UTC"
15731645 msgstr "%R UTC %e %B %Y ਨੂੰ"
15741646
1575 #: ../libempathy-gtk/empathy-contact-widget.c:736
1647 #: ../libempathy-gtk/empathy-contact-widget.c:1100
15761648 msgid "Save Avatar"
15771649 msgstr "ਅਵਤਾਰ ਸੰਭਾਲੋ"
15781650
1579 #: ../libempathy-gtk/empathy-contact-widget.c:792
1651 #: ../libempathy-gtk/empathy-contact-widget.c:1156
15801652 msgid "Unable to save avatar"
15811653 msgstr "ਅਵਤਾਰ ਸੰਭਾਲਣ ਲਈ ਅਸਮਰੱਥ"
15821654
15891661 msgstr "ਉਪ-ਨਾਂ:"
15901662
15911663 #: ../libempathy-gtk/empathy-contact-widget.ui.h:4
1592 msgid "Birthday:"
1593 msgstr "ਜਨਮਦਿਨ:"
1594
1595 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
15961664 msgid "Client Information"
15971665 msgstr "ਕਲਾਇਟ ਜਾਣਕਾਰੀ"
15981666
1599 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
1667 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
16001668 msgid "Client:"
16011669 msgstr "ਕਲਾਇਟ:"
16021670
1603 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
1671 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
16041672 msgid "Contact Details"
16051673 msgstr "ਸੰਪਰਕ ਵੇਰਵਾ"
16061674
1607 #: ../libempathy-gtk/empathy-contact-widget.ui.h:8
1608 msgid "E-mail address:"
1609 msgstr "ਈਮੇਲ ਐਡਰੈੱਸ:"
1610
1611 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
1612 msgid "Full name:"
1613 msgstr "ਪੂਰਾ ਨਾਂ:"
1614
1615 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
1675 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
16161676 msgid "Groups"
16171677 msgstr "ਗਰੁੱਪ"
16181678
16191679 #. Identifier to connect to Instant Messaging network
1620 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
1680 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
16211681 msgid "Identifier:"
16221682 msgstr "ਪਛਾਣਕਰਤਾ:"
16231683
1624 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
1625 #| msgid "Information requested&#x2026;"
1684 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
16261685 msgid "Information requested…"
16271686 msgstr "ਜਾਣਕਾਰੀ ਮੰਗੀ ਗਈ…"
16281687
1629 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
1688 #: ../libempathy-gtk/empathy-contact-widget.ui.h:11
16301689 msgid "OS:"
16311690 msgstr "OS:"
16321691
1633 #: ../libempathy-gtk/empathy-contact-widget.ui.h:15
1692 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
16341693 msgid ""
16351694 "Select the groups you want this contact to appear in. Note that you can "
16361695 "select more than one group or no groups."
16381697 "ਗਰੁੱਪ ਚੁਣੋ, ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਇਹ ਸੰਪਰਕ ਨੂੰ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਯਾਦ ਰੱਖੋ ਕਿ ਤੁਸੀਂ ਇੱਕ ਤੋਂ ਵੱਧ ਗਰੁੱਪ ਜਾਂ ਕੋਈ "
16391698 "ਗਰੁੱਪ ਨਹੀਂ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ।"
16401699
1641 #: ../libempathy-gtk/empathy-contact-widget.ui.h:16
1700 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
16421701 msgid "Version:"
16431702 msgstr "ਵਰਜਨ:"
16441703
1645 #: ../libempathy-gtk/empathy-contact-widget.ui.h:17
1646 msgid "Website:"
1647 msgstr "ਵੈੱਬਸਾਈਟ:"
1648
1649 #: ../libempathy-gtk/empathy-contact-widget.ui.h:18
1704 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
16501705 msgid "_Add Group"
16511706 msgstr "ਗਰੁੱਪ ਸ਼ਾਮਲ(_A)"
1707
1708 #: ../libempathy-gtk/empathy-individual-linker.c:250
1709 #| msgid "Select a contact"
1710 msgid "Select contacts to link"
1711 msgstr "ਲਿੰਕ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ"
1712
1713 #: ../libempathy-gtk/empathy-individual-linker.c:298
1714 #| msgid "New Contact"
1715 msgid "New contact preview"
1716 msgstr "ਨਵਾਂ ਸੰਪਰਕ ਝਲਕ"
1717
1718 #: ../libempathy-gtk/empathy-individual-menu.c:608
1719 msgctxt "Edit individual (contextual menu)"
1720 msgid "_Edit"
1721 msgstr "ਸੋਧ(_E)"
1722
1723 #: ../libempathy-gtk/empathy-individual-menu.c:638
1724 #| msgid "_Join…"
1725 msgctxt "Link individual (contextual menu)"
1726 msgid "_Link…"
1727 msgstr "ਲਿੰਕ ਕਰੋ(_L)…"
16521728
16531729 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16541730 msgid "new server"
16661742 msgid "SSL"
16671743 msgstr "SSL"
16681744
1669 #: ../libempathy-gtk/empathy-log-window.c:700
1670 #: ../src/empathy-import-widget.c:310
1745 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1746 #| msgid "_Offline Contacts"
1747 msgid "Link Contacts"
1748 msgstr "ਸੰਪਰਕ ਲਿੰਕ ਕਰੋ"
1749
1750 #. Add button
1751 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1752 #| msgid "_Open Link"
1753 msgid "_Link"
1754 msgstr "ਲਿੰਕ ਕਰੋ(_L)"
1755
1756 #: ../libempathy-gtk/empathy-log-window.c:632
1757 #: ../src/empathy-import-widget.c:312
16711758 msgid "Account"
16721759 msgstr "ਅਕਾਊਂਟ"
16731760
1674 #: ../libempathy-gtk/empathy-log-window.c:717
1761 #: ../libempathy-gtk/empathy-log-window.c:649
16751762 msgid "Date"
16761763 msgstr "ਮਿਤੀ"
16771764
16961783 msgstr "ਸੰਪਰਕ ID:"
16971784
16981785 #. add chat button
1699 #: ../libempathy-gtk/empathy-new-message-dialog.c:144
1786 #: ../libempathy-gtk/empathy-new-message-dialog.c:145
17001787 msgid "C_hat"
17011788 msgstr "ਗੱਲਬਾਤ(_h)"
17021789
17031790 #. Tweak the dialog
1704 #: ../libempathy-gtk/empathy-new-message-dialog.c:154
1791 #: ../libempathy-gtk/empathy-new-message-dialog.c:155
17051792 msgid "New Conversation"
17061793 msgstr "ਨਵੀਂ ਗੱਲਬਾਤ"
17071794
17081795 #. add video toggle
1709 #: ../libempathy-gtk/empathy-new-call-dialog.c:188
1796 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
17101797 msgid "Send _Video"
17111798 msgstr "ਵਿਡੀਓ ਭੇਜੋ(_V)"
17121799
17131800 #. add chat button
1714 #: ../libempathy-gtk/empathy-new-call-dialog.c:196
1715 #: ../src/empathy-call-window.ui.h:17
1801 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
1802 #: ../src/empathy-call-window.ui.h:24
17161803 msgid "_Call"
17171804 msgstr "ਕਾਲ ਕਰੋ(_C)"
17181805
17191806 #. Tweak the dialog
1720 #: ../libempathy-gtk/empathy-new-call-dialog.c:206
1807 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
17211808 msgid "New Call"
17221809 msgstr "ਨਵੀਂ ਕਾਲ"
17231810
17541841 msgstr "ਆਪਣੀ ਮੌਜੂਦਗੀ ਅਤੇ ਮੌਜੂਦਾ ਹਾਲਤ ਸੈੱਟ ਕਰੋ"
17551842
17561843 #. Custom messages
1757 #: ../libempathy-gtk/empathy-presence-chooser.c:1128
1844 #: ../libempathy-gtk/empathy-presence-chooser.c:1124
17581845 msgid "Custom messages…"
17591846 msgstr "ਪਸੰਦੀਦਾ ਸੁਨੇਹੇ..."
17601847
17701857 msgid "Phrase not found"
17711858 msgstr "ਸ਼ਬਦ ਨਹੀਂ ਲੱਭੇ"
17721859
1773 #: ../libempathy-gtk/empathy-sound.c:51
1860 #: ../libempathy-gtk/empathy-sound.c:50
17741861 msgid "Received an instant message"
17751862 msgstr "ਇੱਕ ਤੁਰੰਤ ਸੁਨੇਹੇ ਮਿਲਿਆ"
17761863
1777 #: ../libempathy-gtk/empathy-sound.c:53
1864 #: ../libempathy-gtk/empathy-sound.c:52
17781865 msgid "Sent an instant message"
17791866 msgstr "ਇੱਕ ਤੁਰੰਤ ਸੁਨੇਹੇ ਭੇਜਿਆ"
17801867
1781 #: ../libempathy-gtk/empathy-sound.c:55
1868 #: ../libempathy-gtk/empathy-sound.c:54
17821869 msgid "Incoming chat request"
17831870 msgstr "ਆ ਰਹੀ ਗੱਲਬਾਤ ਮੰਗ"
17841871
1785 #: ../libempathy-gtk/empathy-sound.c:57
1872 #: ../libempathy-gtk/empathy-sound.c:56
17861873 msgid "Contact connected"
17871874 msgstr "ਸੰਪਰਕ ਕੁਨੈਕਟ ਹੋਇਆ"
17881875
1789 #: ../libempathy-gtk/empathy-sound.c:59
1876 #: ../libempathy-gtk/empathy-sound.c:58
17901877 msgid "Contact disconnected"
17911878 msgstr "ਸੰਪਰਕ ਦਾ ਕੁਨੈਕਸ਼ਨ ਖਤਮ"
17921879
1793 #: ../libempathy-gtk/empathy-sound.c:61
1880 #: ../libempathy-gtk/empathy-sound.c:60
17941881 msgid "Connected to server"
17951882 msgstr "ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕੀਤਾ"
17961883
1797 #: ../libempathy-gtk/empathy-sound.c:63
1884 #: ../libempathy-gtk/empathy-sound.c:62
17981885 msgid "Disconnected from server"
17991886 msgstr "ਸਰਵਰ ਤੋਂ ਕੁਨੈਕਸ਼ਨ ਖਤਮ"
18001887
1801 #: ../libempathy-gtk/empathy-sound.c:65
1888 #: ../libempathy-gtk/empathy-sound.c:64
18021889 msgid "Incoming voice call"
18031890 msgstr "ਆ ਰਹੀ ਆਵਾਜ਼ ਕਾਲ"
18041891
1805 #: ../libempathy-gtk/empathy-sound.c:67
1892 #: ../libempathy-gtk/empathy-sound.c:66
18061893 msgid "Outgoing voice call"
18071894 msgstr "ਜਾ ਰਹੀ ਆਵਾਜ਼ ਕਾਲ"
18081895
1809 #: ../libempathy-gtk/empathy-sound.c:69
1896 #: ../libempathy-gtk/empathy-sound.c:68
18101897 msgid "Voice call ended"
18111898 msgstr "ਆਵਾਜ਼ ਕਾਲ ਖਤਮ ਕੀਤੀ"
18121899
18421929 msgid "Blue"
18431930 msgstr "ਨੀਲਾ"
18441931
1845 #: ../libempathy-gtk/empathy-ui-utils.c:1501
1932 #: ../libempathy-gtk/empathy-ui-utils.c:1697
18461933 msgid "Unable to open URI"
18471934 msgstr "URI ਖੋਲ੍ਹਣ ਲਈ ਅਸਮਰੱਥ"
18481935
1849 #: ../libempathy-gtk/empathy-ui-utils.c:1618
1936 #: ../libempathy-gtk/empathy-ui-utils.c:1792
18501937 msgid "Select a file"
18511938 msgstr "ਫਾਇਲ ਚੁਣੋ"
18521939
1853 #: ../libempathy-gtk/empathy-ui-utils.c:1682
1854 msgid "Select a destination"
1855 msgstr "ਟਿਕਾਣਾ ਚੁਣੋ"
1940 #: ../libempathy-gtk/empathy-ui-utils.c:1861
1941 #, c-format
1942 msgid "Incoming file from %s"
1943 msgstr "%s ਵਲੋਂ ਫਾਇਲ ਆ ਰਹੀ ਹੈ"
18561944
18571945 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
18581946 msgid "Current Locale"
20332121 msgid "No error message"
20342122 msgstr "ਕੋਈ ਗਲਤੀ ਸੁਨੇਹਾ ਨਹੀਂ"
20352123
2036 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:242
2124 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:244
2125 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:259
20372126 msgid "Instant Message (Empathy)"
20382127 msgstr "ਤੁਰੰਤ ਸੁਨੇਹਾ (ਇੰਪੈਥੀ)"
20392128
2040 #: ../src/empathy.c:596
2129 #: ../src/empathy.c:414
20412130 msgid "Don't connect on startup"
20422131 msgstr "ਸ਼ੁਰੂ ਸਮੇਂ ਕੁਨੈਕਟ ਨਾ ਕਰੋ"
20432132
2044 #: ../src/empathy.c:600
2133 #: ../src/empathy.c:418
20452134 msgid "Don't display the contact list or any other dialogs on startup"
20462135 msgstr "ਸ਼ੁਰੂ ਸਮੇਂ ਸੰਪਰਕ ਲਿਸਟ ਜਾਂ ਕੋਈ ਹੋਰ ਡਾਈਲਾਗ ਨਾ ਵੇਖਾਓ"
20472136
2048 #: ../src/empathy.c:612
2137 #: ../src/empathy.c:435
20492138 msgid "- Empathy IM Client"
20502139 msgstr "- ਇੰਪੈਥੀ ਤੁਰੰਤ ਸੁਨੇਹੇਦਾਰ ਕਲਾਇਟ"
20512140
21212210 "ਬਾਅਦ ਵਿੱਚ ਸੋਧ ਮੇਨੂ ਵਿੱਚੋਂ ਅਕਾਊਂਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ।"
21222211
21232212 #: ../src/empathy-account-assistant.c:220
2124 #: ../src/empathy-account-assistant.c:1303
2213 #: ../src/empathy-account-assistant.c:1311
21252214 msgid "An error occurred"
21262215 msgstr "ਗਲਤੀ ਆਈ"
21272216
21302219 #. To translator: %s is the name of the protocol, such as "Google Talk" or
21312220 #. * "Yahoo!"
21322221 #.
2133 #: ../src/empathy-account-assistant.c:413 ../src/empathy-accounts-dialog.c:580
2222 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:604
21342223 #, c-format
21352224 msgid "New %s account"
21362225 msgstr "ਨਵਾਂ %s ਅਕਾਊਂਟ"
21372226
2138 #: ../src/empathy-account-assistant.c:508
2227 #: ../src/empathy-account-assistant.c:510
21392228 msgid "What kind of chat account do you have?"
21402229 msgstr "ਤੁਹਾਡੇ ਕੋਲ ਕਿਸ ਕਿਸਮ ਦਾ ਚੈਟ ਅਕਾਊਂਟ ਹੈ?"
21412230
2142 #: ../src/empathy-account-assistant.c:514
2231 #: ../src/empathy-account-assistant.c:516
21432232 msgid "Do you have any other chat accounts you want to set up?"
21442233 msgstr "ਕੀ ਤੁਹਾਡੇ ਕੋਲ ਹੋਰ ਚੈਟ ਅਕਾਊਂਟ ਹੈ, ਜੋ ਤੁਸੀਂ ਸੈੱਟਅੱਪ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"
21452234
2146 #: ../src/empathy-account-assistant.c:520
2235 #: ../src/empathy-account-assistant.c:522
21472236 msgid "Enter your account details"
21482237 msgstr "ਆਪਣੇ ਅਕਾਊਂਟ ਦਾ ਵੇਰਵਾ ਦਿਓ"
21492238
2150 #: ../src/empathy-account-assistant.c:525
2239 #: ../src/empathy-account-assistant.c:527
21512240 msgid "What kind of chat account do you want to create?"
21522241 msgstr "ਕਿਸ ਕਿਸਮ ਦਾ ਚੈਟ ਅਕਾਊਂਟ ਤੁਸੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
21532242
2154 #: ../src/empathy-account-assistant.c:531
2243 #: ../src/empathy-account-assistant.c:533
21552244 msgid "Do you want to create other chat accounts?"
21562245 msgstr "ਕੀ ਤੁਸੀਂ ਹੋਰ ਚੈਟ ਅਕਾਊਂਟ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
21572246
2158 #: ../src/empathy-account-assistant.c:538
2247 #: ../src/empathy-account-assistant.c:540
21592248 msgid "Enter the details for the new account"
21602249 msgstr "ਨਵੇਂ ਅਕਾਊਂਟ ਲਈ ਵੇਰਵਾ ਦਿਓ"
21612250
2162 #: ../src/empathy-account-assistant.c:653
2251 #: ../src/empathy-account-assistant.c:655
21632252 msgid ""
21642253 "With Empathy you can chat with people online nearby and with friends and "
21652254 "colleagues who use Google Talk, AIM, Windows Live and many other chat "
21702259 "ਲਾਈਨ ਅਤੇ ਹੋਰ ਚੈਤ ਪਰੋਗਰਾਮਾਂ ਨਾਲ ਗੱਲਾਂ ਕਰ ਸਕਦੇ ਹੋ। ਮਾਈਕਰੋਫੋਨ ਜਾਂ ਵੈੱਬ ਕੈਮ ਨਾਲ ਤੁਸੀਂ ਆਡੀਓ ਅਤੇ "
21712260 "ਵਿਡੀਓ ਕਾਲ ਵੀ ਕਰ ਸਕਦੇ ਹੋ।"
21722261
2173 #: ../src/empathy-account-assistant.c:670
2262 #: ../src/empathy-account-assistant.c:672
21742263 msgid "Do you have an account you've been using with another chat program?"
21752264 msgstr "ਕੀ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਅਕਾਊਂਟ ਹੈ, ਜੋ ਕਿ ਤੁਸੀਂ ਹੋਰ ਚੈਟ ਪਰੋਗਰਾਮ ਨਾਲ ਵਰਤਦੇ ਰਹੇ ਹੋ?"
21762265
2177 #: ../src/empathy-account-assistant.c:693
2266 #: ../src/empathy-account-assistant.c:695
21782267 msgid "Yes, import my account details from "
21792268 msgstr "ਹਾਂ, ਮੇਰਾ ਅਕਾਊਂਟ ਵੇਰਵਾ ਲਵੋ "
21802269
2181 #: ../src/empathy-account-assistant.c:714
2270 #: ../src/empathy-account-assistant.c:716
21822271 msgid "Yes, I'll enter my account details now"
21832272 msgstr "ਹਾਂ, ਮੈਂ ਆਪਣਾ ਅਕਾਊਂਟ ਵੇਰਵਾ ਹੁਣ ਦੇਵਾਂਗਾ"
21842273
2185 #: ../src/empathy-account-assistant.c:736
2274 #: ../src/empathy-account-assistant.c:738
21862275 msgid "No, I want a new account"
21872276 msgstr "ਨਹੀਂ, ਮੈਂ ਨਵਾਂ ਅਕਾਊਂਟ ਚਾਹੁੰਦਾ ਹਾਂ"
21882277
2189 #: ../src/empathy-account-assistant.c:746
2278 #: ../src/empathy-account-assistant.c:748
21902279 msgid "No, I just want to see people online nearby for now"
21912280 msgstr "ਨਹੀਂ, ਮੈਂ ਸਿਰਫ਼ ਹੁਣ ਆਪਣੇ ਨੇੜੇ ਆਨਲਾਈਨ ਲੋਕਾਂ ਨੂੰ ਵੇਖਣਾ ਚਾਹੁੰਦਾ ਹਾਂ"
21922281
2193 #: ../src/empathy-account-assistant.c:767
2282 #: ../src/empathy-account-assistant.c:769
21942283 msgid "Select the accounts you want to import:"
21952284 msgstr "ਅਕਾਊਂਟ ਚੁਣੋ, ਜੋ ਤੁਸੀਂ ਇੰਪੋਰਟ ਕਰਨੇ ਚਾਹੁੰਦੇ ਹੋ:"
21962285
2197 #: ../src/empathy-account-assistant.c:851
2198 #: ../src/empathy-new-chatroom-dialog.c:541
2199 #: ../src/empathy-new-chatroom-dialog.c:542
2286 #: ../src/empathy-account-assistant.c:853
2287 #: ../src/empathy-new-chatroom-dialog.c:607
2288 #: ../src/empathy-new-chatroom-dialog.c:608
22002289 msgid "Yes"
22012290 msgstr "ਹਾਂ"
22022291
2203 #: ../src/empathy-account-assistant.c:858
2292 #: ../src/empathy-account-assistant.c:860
22042293 msgid "No, that's all for now"
22052294 msgstr "ਨਹੀਂ, ਹੁਣ ਲਈ ਕਾਫ਼ੀ ਹੈ"
22062295
2207 #: ../src/empathy-account-assistant.c:1117
2296 #: ../src/empathy-account-assistant.c:1125
22082297 msgid ""
22092298 "Empathy can automatically discover and chat with the people connected on the "
22102299 "same network as you. If you want to use this feature, please check that the "
22152304 "ਇਹ ਫੀਚਰ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਚੈੱਕ ਕਰੋ ਕਿ ਹੇਠਾਂ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਪੂਰੀ ਹੈ। ਤੁਸੀਂ ਇਹ ਵੇਰਵਾ ਬਾਅਦ "
22162305 "ਵਿੱਚ ਵੀ ਸੌਖੀ ਤਰ੍ਹਾਂ ਬਦਲ ਸਕਦੇ ਹੋ ਜਾਂ 'ਅਕਾਊਂਟ' ਡਾਈਲਾਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਹ ਫੀਚਰ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ।"
22172306
2218 #: ../src/empathy-account-assistant.c:1123
2219 #: ../src/empathy-account-assistant.c:1179
2307 #: ../src/empathy-account-assistant.c:1131
2308 #: ../src/empathy-account-assistant.c:1187
22202309 msgid "Edit->Accounts"
22212310 msgstr "ਸੋਧ->ਅਕਾਊਂਟ"
22222311
2223 #: ../src/empathy-account-assistant.c:1139
2312 #: ../src/empathy-account-assistant.c:1147
22242313 msgid "I don't want to enable this feature for now"
22252314 msgstr "ਮੈਂ ਇਹ ਫੀਚਰ ਹੁਣੇ ਚਾਲੂ ਨਹੀਂ ਕਰਨਾ ਚਾਹੁੰਦਾ"
22262315
2227 #: ../src/empathy-account-assistant.c:1175
2316 #: ../src/empathy-account-assistant.c:1183
22282317 msgid ""
22292318 "You won't be able to chat with people connected to your local network, as "
22302319 "telepathy-salut is not installed. If you want to enable this feature, please "
22322321 "the Accounts dialog"
22332322 msgstr ""
22342323 "ਤੁਸੀਂ ਆਪਣੇ ਲੋਕਲ ਨੈੱਟਵਰਕ ਉੱਤੇ ਮੌਜੂਦ ਲੋਕਾਂ ਨਾਲ ਗੱਲਬਾਤ ਨਹੀਂ ਕਰ ਸਕੋਗੇ, ਕਿਉਂਕਿ, telepathy-salut "
2235 "ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਫੀਚਰ ਚਾਲੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ telepathy-salut ਪੈਕੇਜ ਇੰਸਟਾਲ "
2236 "ਕਰੋ ਅਤੇ ਅਕਾਊਂਟ ਡਾਈਲਾਗ ਤੋਂ ਨੇੜਲੇ ਲੋਕ ਅਕਾਊਂਟ ਬਣਾਓ।"
2237
2238 #: ../src/empathy-account-assistant.c:1181
2324 "ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਫੀਚਰ ਚਾਲੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ telepathy-salut ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ "
2325 "ਅਤੇ ਅਕਾਊਂਟ ਡਾਈਲਾਗ ਤੋਂ ਨੇੜਲੇ ਲੋਕ ਅਕਾਊਂਟ ਬਣਾਓ।"
2326
2327 #: ../src/empathy-account-assistant.c:1189
22392328 msgid "telepathy-salut not installed"
22402329 msgstr "telepathy-salut ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ"
22412330
2242 #: ../src/empathy-account-assistant.c:1227
2331 #: ../src/empathy-account-assistant.c:1235
22432332 msgid "Messaging and VoIP Accounts Assistant"
22442333 msgstr "ਸੁਨੇਹੇ ਅਤੇ VoIP ਅਕਾਊਂਟ ਸਹਾਇਕ"
22452334
2246 #: ../src/empathy-account-assistant.c:1261
2335 #: ../src/empathy-account-assistant.c:1269
22472336 msgid "Welcome to Empathy"
22482337 msgstr "ਇੰਪੈਥੀ ਵਲੋਂ ਜੀ ਆਇਆਂ ਨੂੰ"
22492338
2250 #: ../src/empathy-account-assistant.c:1270
2339 #: ../src/empathy-account-assistant.c:1278
22512340 msgid "Import your existing accounts"
22522341 msgstr "ਆਪਣੇ ਮੌਜੂਦਾ ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕਰੋ"
22532342
2254 #: ../src/empathy-account-assistant.c:1288
2343 #: ../src/empathy-account-assistant.c:1296
22552344 msgid "Please enter personal details"
22562345 msgstr "ਨਿੱਜੀ ਵੇਰਵਾ ਦਿਓ"
22572346
22582347 #. The primary text of the dialog shown to the user when he is about to lose
22592348 #. * unsaved changes
2260 #: ../src/empathy-accounts-dialog.c:66
2349 #: ../src/empathy-accounts-dialog.c:65
22612350 #, c-format
22622351 msgid "There are unsaved modifications to your %s account."
22632352 msgstr "ਤੁਹਾਡੇ ਅਕਾਊਂਟ %s ਨਾਲ ਸਬੰਧਿਤ ਕੁਝ ਨਾ-ਸੰਭਾਲੀਆਂ ਸੋਧਾਂ ਹਨ।"
22642353
22652354 #. The primary text of the dialog shown to the user when he is about to lose
22662355 #. * an unsaved new account
2267 #: ../src/empathy-accounts-dialog.c:70
2356 #: ../src/empathy-accounts-dialog.c:69
22682357 msgid "Your new account has not been saved yet."
22692358 msgstr "ਤੁਹਾਡਾ ਨਵਾਂ ਅਕਾਊਂਟ ਹਾਲੇ ਨਹੀਂ ਸੰਭਾਲਿਆ ਗਿਆ ਹੈ।"
22702359
2271 #: ../src/empathy-accounts-dialog.c:263 ../src/empathy-call-window.c:729
2360 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:808
22722361 msgid "Connecting…"
22732362 msgstr "ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
22742363
2275 #: ../src/empathy-accounts-dialog.c:290
2364 #: ../src/empathy-accounts-dialog.c:312
2365 #, c-format
2366 msgid "Offline — %s"
2367 msgstr "ਆਫਲਾਈਨ — %s"
2368
2369 #: ../src/empathy-accounts-dialog.c:324
22762370 #, c-format
22772371 msgid "Disconnected — %s"
22782372 msgstr "ਕੁਨੈਕਸ਼ਨ ਖਤਮ — %s"
22792373
2280 #: ../src/empathy-accounts-dialog.c:295
2281 #, c-format
2282 msgid "Offline — %s"
2283 msgstr "ਆਫਲਾਈਨ — %s"
2284
2285 #: ../src/empathy-accounts-dialog.c:308
2374 #: ../src/empathy-accounts-dialog.c:335
22862375 msgid "Offline — No Network Connection"
22872376 msgstr "ਆਫਲਾਈਨ — ਕੋਈ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ"
22882377
2289 #: ../src/empathy-accounts-dialog.c:316
2378 #: ../src/empathy-accounts-dialog.c:342
22902379 msgid "Unknown Status"
22912380 msgstr "ਅਣਜਾਣ ਹਾਲਤ"
22922381
2293 #: ../src/empathy-accounts-dialog.c:327
2382 #: ../src/empathy-accounts-dialog.c:354
22942383 msgid "Offline — Account Disabled"
22952384 msgstr "ਆਫਲਾਈਨ — ਅਕਾਊਂਟ ਆਯੋਗ ਹੈ"
22962385
2297 #: ../src/empathy-accounts-dialog.c:768
2386 #: ../src/empathy-accounts-dialog.c:795
22982387 msgid ""
22992388 "You are about to create a new account, which will discard\n"
23002389 "your changes. Are you sure you want to proceed?"
23022391 "ਤੁਸੀਂ ਨਵਾਂ ਅਕਾਊਂਟ ਬਣਾਉਣ ਜਾ ਰਹੇ ਹੋ, ਜੋ ਕਿ ਤੁਹਾਡੇ ਬਦਲਾਅ ਖਤਮ ਕਰ ਦੇਵੇਗਾ।\n"
23032392 "ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
23042393
2305 #: ../src/empathy-accounts-dialog.c:1115
2394 #: ../src/empathy-accounts-dialog.c:1142
23062395 #, c-format
23072396 msgid "Do you want to remove %s from your computer?"
23082397 msgstr "ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਕੰਪਿਊਟਰ ਤੋਂ %s ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
23092398
2310 #: ../src/empathy-accounts-dialog.c:1119
2399 #: ../src/empathy-accounts-dialog.c:1146
23112400 msgid "This will not remove your account on the server."
23122401 msgstr "ਇਹ ਸਰਵਰ ਤੋਂ ਤੁਹਾਡਾ ਅਕਾਊਂਟ ਨਹੀਂ ਹਟਾਏਗਾ।"
23132402
2314 #: ../src/empathy-accounts-dialog.c:1356
2403 #: ../src/empathy-accounts-dialog.c:1383
23152404 msgid ""
23162405 "You are about to select another account, which will discard\n"
23172406 "your changes. Are you sure you want to proceed?"
23192408 "ਤੁਸੀਂ ਨਵਾਂ ਅਕਾਊਂਟ ਚੁਣਨ ਜਾ ਰਹੇ ਹੋ, ਜੋ ਕਿ ਤੁਹਾਡੇ ਬਦਲਾਅ ਅਣਡਿੱਠੇ ਕਰ ਦੇਵੇਗਾ।\n"
23202409 "ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
23212410
2322 #: ../src/empathy-accounts-dialog.c:1933
2411 #: ../src/empathy-accounts-dialog.c:1960
23232412 msgid ""
23242413 "You are about to close the window, which will discard\n"
23252414 "your changes. Are you sure you want to proceed?"
23442433 "ਕਰਨੀ ਪਵੇਗੀ।"
23452434
23462435 #: ../src/empathy-accounts-dialog.ui.h:4
2347 #| msgid "_Add Contact…"
23482436 msgid "_Add…"
23492437 msgstr "ਸ਼ਾਮਲ(_A)…"
23502438
23512439 #: ../src/empathy-accounts-dialog.ui.h:5
2352 #| msgid "Import"
23532440 msgid "_Import…"
23542441 msgstr "ਇੰਪੋਰਟ(_I)…"
23552442
2356 #: ../src/empathy-call-window.c:453
2443 #: ../src/empathy-auto-salut-account-helper.c:78
2444 msgid "People nearby"
2445 msgstr "ਨੇੜਲੇ ਲੋਕ"
2446
2447 #: ../src/empathy-av.c:133
2448 msgid "- Empathy Audio/Video Client"
2449 msgstr "- ਇੰਪੈਥੀ ਆਡੀਓ/ਵਿਡੀਓ ਕਲਾਇਟ"
2450
2451 #: ../src/empathy-av.c:149
2452 msgid "Empathy Audio/Video Client"
2453 msgstr "ਇੰਪੈਥੀ ਆਡੀਓ/ਵਿਡੀਓ ਕਲਾਇਟ"
2454
2455 #: ../src/empathy-call-window.c:479
23572456 msgid "Contrast"
23582457 msgstr "ਕਨਟਰਾਸਟ"
23592458
2360 #: ../src/empathy-call-window.c:456
2459 #: ../src/empathy-call-window.c:482
23612460 msgid "Brightness"
23622461 msgstr "ਚਮਕ"
23632462
2364 #: ../src/empathy-call-window.c:459
2463 #: ../src/empathy-call-window.c:485
23652464 msgid "Gamma"
23662465 msgstr "ਗਾਮਾ"
23672466
2368 #: ../src/empathy-call-window.c:567
2467 #: ../src/empathy-call-window.c:590
23692468 msgid "Volume"
23702469 msgstr "ਆਵਾਜ਼"
23712470
2372 #: ../src/empathy-call-window.c:1022
2471 #: ../src/empathy-call-window.c:1163
23732472 msgid "_Sidebar"
23742473 msgstr "ਬਾਹੀ(_S)"
23752474
2376 #: ../src/empathy-call-window.c:1041
2475 #: ../src/empathy-call-window.c:1182
23772476 msgid "Audio input"
23782477 msgstr "ਆਡੀਓ ਆਉਟਪੁੱਟ"
23792478
2380 #: ../src/empathy-call-window.c:1045
2479 #: ../src/empathy-call-window.c:1186
23812480 msgid "Video input"
23822481 msgstr "ਵਿਡੀਓ ਆਉਟਪੁੱਟ"
23832482
2384 #: ../src/empathy-call-window.c:1049
2483 #: ../src/empathy-call-window.c:1190
23852484 msgid "Dialpad"
23862485 msgstr "ਡਾਇਲ-ਪੈਡ"
23872486
2487 #: ../src/empathy-call-window.c:1195
2488 msgid "Details"
2489 msgstr "ਵੇਰਵਾ"
2490
23882491 #. translators: Call is a noun and %s is the contact name. This string
23892492 #. * is used in the window title
2390 #: ../src/empathy-call-window.c:1117
2493 #: ../src/empathy-call-window.c:1263
23912494 #, c-format
23922495 msgid "Call with %s"
23932496 msgstr "%s ਲਈ ਕਾਲ ਕਰੋ"
23942497
23952498 #. translators: Call is a noun. This string is used in the window
23962499 #. * title
2397 #: ../src/empathy-call-window.c:1198
2500 #: ../src/empathy-call-window.c:1342
23982501 msgid "Call"
23992502 msgstr "ਕਾਲ ਕਰੋ"
24002503
2504 #: ../src/empathy-call-window.c:1496
2505 msgid "The IP address as seen by the machine"
2506 msgstr "ਮਸ਼ੀਨ ਵਲੋਂ ਵੇਖਿਆ ਜਾਂਦਾ IP ਐਡਰੈੱਸ"
2507
2508 #: ../src/empathy-call-window.c:1498
2509 msgid "The IP address as seen by a server on the Internet"
2510 msgstr "IP ਐਡਰੈੱਸ, ਜੋ ਕਿ ਇੰਟਰਨੈੱਟ ਉੱਤੇ ਸਰਵਰ ਵਲੋਂ ਵੇਖਿਆ ਜਾਂਦਾ ਹੈ"
2511
2512 #: ../src/empathy-call-window.c:1500
2513 msgid "The IP address of the peer as seen by the other side"
2514 msgstr "ਪੀਅਰ ਦਾ IP ਐਡਰੈੱਸ, ਜੋ ਦੂਜੇ ਪਾਸੇ ਵਿਖਾਈ ਦਿੰਦਾ ਹੈ"
2515
2516 #: ../src/empathy-call-window.c:1502
2517 msgid "The IP address of a relay server"
2518 msgstr "ਰੀਲੇਅ ਸਰਵਰ ਦਾ IP ਐਡਰੈੱਸ"
2519
2520 #: ../src/empathy-call-window.c:1504
2521 msgid "The IP address of the multicast group"
2522 msgstr "ਮਲਟੀਕਾਸਟ ਗਰੁੱਪ ਦਾ IP ਐਡਰੈੱਸ"
2523
24012524 #. Translators: number of minutes:seconds the caller has been connected
2402 #: ../src/empathy-call-window.c:1695
2525 #: ../src/empathy-call-window.c:2237
24032526 #, c-format
24042527 msgid "Connected — %d:%02dm"
24052528 msgstr "ਕੁਨੈਕਟ ਹੈ -- %d:%02dm"
24062529
2407 #: ../src/empathy-call-window.c:1756
2530 #: ../src/empathy-call-window.c:2298
24082531 msgid "Technical Details"
24092532 msgstr "ਤਕਨੀਕੀ ਵੇਰਵਾ"
24102533
2411 #: ../src/empathy-call-window.c:1794
2534 #: ../src/empathy-call-window.c:2336
24122535 #, c-format
24132536 msgid ""
24142537 "%s's software does not understand any of the audio formats supported by your "
24152538 "computer"
24162539 msgstr "%s ਦਾ ਸਾਫਟਵੇਅਰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਮੌਜੂਦ ਕਿਸੇ ਵੀ ਆਡੀਓ ਫਾਰਮੈਟ ਨੂੰ ਸਮਝ ਨਹੀਂ ਸਕਦਾ ਹੈ।"
24172540
2418 #: ../src/empathy-call-window.c:1799
2541 #: ../src/empathy-call-window.c:2341
24192542 #, c-format
24202543 msgid ""
24212544 "%s's software does not understand any of the video formats supported by your "
24222545 "computer"
24232546 msgstr "%s ਦਾ ਸਾਫਟਵੇਅਰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਮੌਜੂਦ ਕਿਸੇ ਵੀ ਵਿਡੀਓ ਫਾਰਮੈਟ ਨੂੰ ਸਮਝ ਨਹੀਂ ਸਕਦਾ ਹੈ।"
24242547
2425 #: ../src/empathy-call-window.c:1805
2548 #: ../src/empathy-call-window.c:2347
24262549 #, c-format
24272550 msgid ""
24282551 "Can't establish a connection to %s. One of you might be on a network that "
24312554 "%s ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਤੁਹਾਡੇ ਵਿੱਚੋਂ ਕੋਈ ਅਜਿਹੇ ਨੈੱਟਵਰਕ ਉੱਤੇ ਹੈ, ਜੋ ਸਿੱਧਾ ਕੁਨੈਕਸ਼ਨ "
24322555 "ਬਣਾਉਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
24332556
2434 #: ../src/empathy-call-window.c:1811
2557 #: ../src/empathy-call-window.c:2353
24352558 msgid "There was a failure on the network"
24362559 msgstr "ਨੈੱਟਵਰਕ ਉੱਤੇ ਸਮੱਸਿਆ ਆਈ ਹੈ"
24372560
2438 #: ../src/empathy-call-window.c:1815
2561 #: ../src/empathy-call-window.c:2357
24392562 msgid "The audio formats necessary for this call are not installed on your computer"
24402563 msgstr "ਇਹ ਕਾਲ ਲਈ ਲੋੜੀਦੇ ਆਡੀਓ ਫਾਰਮੈਟ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਇੰਸਟਾਲ ਨਹੀਂ ਹਨ"
24412564
2442 #: ../src/empathy-call-window.c:1818
2565 #: ../src/empathy-call-window.c:2360
24432566 msgid "The video formats necessary for this call are not installed on your computer"
24442567 msgstr "ਇਹ ਕਾਲ ਲਈ ਲੋੜੀਦੇ ਵਿਡੀਓ ਫਾਰਮੈਟ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਇੰਸਟਾਲ ਨਹੀਂ ਹਨ"
24452568
2446 #: ../src/empathy-call-window.c:1828
2569 #: ../src/empathy-call-window.c:2370
24472570 #, c-format
24482571 msgid ""
24492572 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
24532576 "ਟੈਲੀਪੈਥੀ ਭਾਗ ਵਿੱਚ ਕੁਝ ਗੜਬੜ ਹੋ ਗਈ ਹੈ। <a href=\"%s\">ਇਹ ਬੱਗ ਜਾਣਕਾਰੀ</a> ਦਿਓ ਅਤੇ ਮੱਦਦ "
24542577 "ਮੇਨੂ ਵਿੱਚੋਂ 'ਡੀਬੱਗ' ਵਿੰਡੋ ਤੋਂ ਲੈ ਕੇ ਲਾਗ ਨੱਥੀ ਕਰੋ।"
24552578
2456 #: ../src/empathy-call-window.c:1836
2579 #: ../src/empathy-call-window.c:2378
24572580 msgid "There was a failure in the call engine"
24582581 msgstr "ਕਾਲ ਇੰਜਣ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਆਈ ਹੈ"
24592582
2460 #: ../src/empathy-call-window.c:1875
2583 #: ../src/empathy-call-window.c:2381
2584 msgid "The end of the stream was reached"
2585 msgstr "ਸਟਰੀਮ ਦਾ ਅੰਤ ਆ ਗਿਆ ਹੈ"
2586
2587 #: ../src/empathy-call-window.c:2421
24612588 msgid "Can't establish audio stream"
24622589 msgstr "ਆਡੀਓ ਸਟਰੀਮ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ"
24632590
2464 #: ../src/empathy-call-window.c:1885
2591 #: ../src/empathy-call-window.c:2431
24652592 msgid "Can't establish video stream"
24662593 msgstr "ਵਿਡੀਓ ਸਟਰੀਮ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ"
24672594
24682595 #: ../src/empathy-call-window.ui.h:1
2596 msgid "Audio"
2597 msgstr "ਆਡੀਓ"
2598
2599 #: ../src/empathy-call-window.ui.h:2
24692600 msgid "Call the contact again"
24702601 msgstr "ਸੰਪਰਕ ਨੂੰ ਫੇਰ ਕਾਲ ਕਰੋ"
24712602
2472 #: ../src/empathy-call-window.ui.h:2
2603 #: ../src/empathy-call-window.ui.h:3
24732604 msgid "Camera Off"
24742605 msgstr "ਕੈਮਰਾ ਬੰਦ ਕਰੋ"
24752606
2476 #: ../src/empathy-call-window.ui.h:3
2607 #: ../src/empathy-call-window.ui.h:4
24772608 msgid "Camera On"
24782609 msgstr "ਕੈਮਰਾ ਚਾਲੂ"
24792610
2480 #: ../src/empathy-call-window.ui.h:4
2611 #: ../src/empathy-call-window.ui.h:5
2612 msgid "Decoding Codec:"
2613 msgstr "ਡੀਕੋਡਿੰਗ Codec:"
2614
2615 #: ../src/empathy-call-window.ui.h:6
24812616 msgid "Disable camera and stop sending video"
24822617 msgstr "ਕੈਮਰਾ ਬੰਦ ਕਰਕੇ ਵਿਡੀਓ ਭੇਜਣਾ ਰੋਕੋ"
24832618
2484 #: ../src/empathy-call-window.ui.h:5
2619 #: ../src/empathy-call-window.ui.h:7
24852620 msgid "Enable camera and send video"
24862621 msgstr "ਕੈਮਰਾ ਚਾਲੂ ਕਰੋ ਤੇ ਵਿਡੀਓ ਭੇਜੋ"
24872622
2488 #: ../src/empathy-call-window.ui.h:6
2623 #: ../src/empathy-call-window.ui.h:8
24892624 msgid "Enable camera but don't send video"
24902625 msgstr "ਕੈਮਰਾ ਚਲਾਓ, ਪਰ ਵਿਡੀਓ ਨਾ ਭੇਜੋ"
24912626
2492 #: ../src/empathy-call-window.ui.h:7
2627 #: ../src/empathy-call-window.ui.h:9
2628 msgid "Encoding Codec:"
2629 msgstr "ਇੰਕੋਡਿੰਗ Codec:"
2630
2631 #: ../src/empathy-call-window.ui.h:10
24932632 msgid "Hang up"
24942633 msgstr "ਬੰਦ ਕਰੋ"
24952634
2496 #: ../src/empathy-call-window.ui.h:8
2635 #: ../src/empathy-call-window.ui.h:11
24972636 msgid "Hang up current call"
24982637 msgstr "ਮੌਜੂਦਾ ਕਾਲ ਬੰਦ ਕਰੋ"
24992638
2500 #: ../src/empathy-call-window.ui.h:9
2639 #: ../src/empathy-call-window.ui.h:12
2640 msgid "Local Candidate:"
2641 msgstr "ਲੋਕਲ ਉਮੀਦਵਾਰ:"
2642
2643 #: ../src/empathy-call-window.ui.h:13
25012644 msgid "Preview"
25022645 msgstr "ਝਲਕ"
25032646
2504 #: ../src/empathy-call-window.ui.h:10
2647 #: ../src/empathy-call-window.ui.h:14
25052648 msgid "Redial"
25062649 msgstr "ਰੀ-ਡਾਇਲ"
25072650
2508 #: ../src/empathy-call-window.ui.h:11
2651 #: ../src/empathy-call-window.ui.h:15
2652 msgid "Remote Candidate:"
2653 msgstr "ਰਿਮੋਟ ਉਮੀਦਵਾਰ:"
2654
2655 #: ../src/empathy-call-window.ui.h:16
25092656 msgid "Send Audio"
25102657 msgstr "ਆਡੀਓ ਭੇਜੋ"
25112658
2512 #: ../src/empathy-call-window.ui.h:12
2659 #: ../src/empathy-call-window.ui.h:17
25132660 msgid "Toggle audio transmission"
25142661 msgstr "ਆਡੀਓ ਟਰਾਂਸਮਿਸ਼ਨ ਬਦਲੋ"
25152662
2516 #: ../src/empathy-call-window.ui.h:13
2663 #: ../src/empathy-call-window.ui.h:19
25172664 msgid "V_ideo"
25182665 msgstr "ਵਿਡੀਓ(_i)"
25192666
2520 #: ../src/empathy-call-window.ui.h:14
2667 #: ../src/empathy-call-window.ui.h:20
2668 msgid "Video"
2669 msgstr "ਵਿਡੀਓ"
2670
2671 #: ../src/empathy-call-window.ui.h:21
25212672 msgid "Video Off"
25222673 msgstr "ਵਿਡੀਓ ਬੰਦ"
25232674
2524 #: ../src/empathy-call-window.ui.h:15
2675 #: ../src/empathy-call-window.ui.h:22
25252676 msgid "Video On"
25262677 msgstr "ਵਿਡੀਓ ਚਾਲੂ"
25272678
2528 #: ../src/empathy-call-window.ui.h:16
2679 #: ../src/empathy-call-window.ui.h:23
25292680 msgid "Video Preview"
25302681 msgstr "ਵਿਡੀਓ ਝਲਕ"
25312682
2532 #: ../src/empathy-call-window.ui.h:18 ../src/empathy-main-window.ui.h:28
2683 #: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:27
25332684 msgid "_View"
25342685 msgstr "ਵੇਖੋ(_V)"
25352686
2536 #: ../src/empathy-chat-window.c:440 ../src/empathy-chat-window.c:460
2687 #: ../src/empathy-chat-window.c:452 ../src/empathy-chat-window.c:472
25372688 #, c-format
25382689 msgid "%s (%d unread)"
25392690 msgid_plural "%s (%d unread)"
25402691 msgstr[0] "%s (%d ਨਾ-ਪੜ੍ਹੇ)"
25412692 msgstr[1] "%s (%d ਨਾ-ਪੜ੍ਹੇ)"
25422693
2543 #: ../src/empathy-chat-window.c:452
2694 #: ../src/empathy-chat-window.c:464
25442695 #, c-format
25452696 msgid "%s (and %u other)"
25462697 msgid_plural "%s (and %u others)"
25472698 msgstr[0] "%s (ਅਤੇ %u ਹੋਰ)"
25482699 msgstr[1] "%s (ਅਤੇ %u ਹੋਰ)"
25492700
2550 #: ../src/empathy-chat-window.c:468
2701 #: ../src/empathy-chat-window.c:480
25512702 #, c-format
25522703 msgid "%s (%d unread from others)"
25532704 msgid_plural "%s (%d unread from others)"
25542705 msgstr[0] "%s (ਹੋਰਾਂ ਤੋਂ %d ਨਾ-ਪੜ੍ਹੇ ਸੁਨੇਹੇ)"
25552706 msgstr[1] "%s (ਹੋਰਾਂ ਤੋਂ %d ਨਾ-ਪੜ੍ਹੇ ਸੁਨੇਹੇ)"
25562707
2557 #: ../src/empathy-chat-window.c:477
2708 #: ../src/empathy-chat-window.c:489
25582709 #, c-format
25592710 msgid "%s (%d unread from all)"
25602711 msgid_plural "%s (%d unread from all)"
25612712 msgstr[0] "%s (ਸਭ ਤੋਂ %d ਨਾ-ਪੜ੍ਹੇ)"
25622713 msgstr[1] "%s (ਸਭ ਤੋਂ %d ਨਾ-ਪੜ੍ਹੇ)"
25632714
2564 #: ../src/empathy-chat-window.c:688
2715 #: ../src/empathy-chat-window.c:695
25652716 msgid "Typing a message."
25662717 msgstr "ਸੁਨੇਹਾ ਲਿਖਦਾ/ਲਿਖਦੀ ਹੈ।"
25672718
25932744 msgid "Move Tab _Right"
25942745 msgstr "ਟੈਬ ਸੱਜੇ ਭੇਜੋ(_R)"
25952746
2596 #: ../src/empathy-chat-window.ui.h:8 ../src/empathy-main-window.ui.h:17
2747 #: ../src/empathy-chat-window.ui.h:8
2748 msgid "Notify for All Messages"
2749 msgstr "ਸਭ ਸੁਨੇਹਿਆਂ ਲਈ ਸੂਚਨਾ ਦਿਓ"
2750
2751 #: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:16
25972752 msgid "_Contents"
25982753 msgstr "ਸਮੱਗਰੀ(_C)"
25992754
2600 #: ../src/empathy-chat-window.ui.h:9
2755 #: ../src/empathy-chat-window.ui.h:10
26012756 msgid "_Conversation"
26022757 msgstr "ਗੱਲਬਾਤ(_C)"
26032758
2604 #: ../src/empathy-chat-window.ui.h:10
2759 #: ../src/empathy-chat-window.ui.h:11
26052760 msgid "_Detach Tab"
26062761 msgstr "ਟੈਬ ਵੱਖ ਕਰੋ(_D)"
26072762
2608 #: ../src/empathy-chat-window.ui.h:11 ../src/empathy-main-window.ui.h:19
2763 #: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:18
26092764 msgid "_Edit"
26102765 msgstr "ਸੋਧ(_E)"
26112766
2612 #: ../src/empathy-chat-window.ui.h:12
2767 #: ../src/empathy-chat-window.ui.h:13
26132768 msgid "_Favorite Chat Room"
26142769 msgstr "ਪਸੰਦੀਦਾ ਗੱਲਬਾਤ-ਰੂਮ(_F)"
26152770
2616 #: ../src/empathy-chat-window.ui.h:13 ../src/empathy-main-window.ui.h:21
2771 #: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:20
26172772 msgid "_Help"
26182773 msgstr "ਮੱਦਦ(_H)"
26192774
2620 #: ../src/empathy-chat-window.ui.h:14
2775 #: ../src/empathy-chat-window.ui.h:15
26212776 msgid "_Next Tab"
26222777 msgstr "ਅਗਲੀ ਟੈਬ(_N)"
26232778
2624 #: ../src/empathy-chat-window.ui.h:15
2779 #: ../src/empathy-chat-window.ui.h:16
26252780 msgid "_Previous Tab"
26262781 msgstr "ਪਿਛਲੀ ਟੈਬ(_P)"
26272782
2628 #: ../src/empathy-chat-window.ui.h:16 ../src/empathy-status-icon.ui.h:5
2783 #: ../src/empathy-chat-window.ui.h:17 ../src/empathy-status-icon.ui.h:5
26292784 msgid "_Show Contact List"
26302785 msgstr "ਸੰਪਰਕ ਲਿਸਟ ਵੇਖੋ(_S)"
26312786
2632 #: ../src/empathy-chat-window.ui.h:17
2787 #: ../src/empathy-chat-window.ui.h:18
26332788 msgid "_Tabs"
26342789 msgstr "ਟੈਬਾਂ(_T)"
26352790
2636 #: ../src/empathy-chatrooms-window.c:256
2791 #: ../src/empathy-chat-window.ui.h:19
2792 msgid "_Undo Close Tab"
2793 msgstr "ਬੰਦ ਕੀਤੀ ਟੈਬ ਵਾਪਸ ਖੋਲ੍ਹੋ(_U)"
2794
2795 #: ../src/empathy-chatrooms-window.c:241
26372796 msgid "Name"
26382797 msgstr "ਨਾਂ"
26392798
2640 #: ../src/empathy-chatrooms-window.c:274
2799 #: ../src/empathy-chatrooms-window.c:259
26412800 msgid "Room"
26422801 msgstr "ਰੂਮ"
26432802
2644 #: ../src/empathy-chatrooms-window.c:282
2803 #: ../src/empathy-chatrooms-window.c:267
26452804 msgid "Auto-Connect"
26462805 msgstr "ਆਟੋ-ਕੁਨੈਕਟ"
26472806
26492808 msgid "Manage Favorite Rooms"
26502809 msgstr "ਪਸੰਦੀਦਾ ਰੂਮ ਪਰਬੰਧ"
26512810
2652 #: ../src/empathy-event-manager.c:339
2811 #: ../src/empathy-event-manager.c:473
26532812 msgid "Incoming video call"
26542813 msgstr "ਆ ਰਹੀ ਵਿਡੀਓ ਕਾਲ"
26552814
2656 #: ../src/empathy-event-manager.c:339
2815 #: ../src/empathy-event-manager.c:473
26572816 msgid "Incoming call"
26582817 msgstr "ਆ ਰਹੀ ਕਾਲ"
26592818
2660 #: ../src/empathy-event-manager.c:343
2819 #: ../src/empathy-event-manager.c:477
26612820 #, c-format
26622821 msgid "%s is video calling you. Do you want to answer?"
26632822 msgstr "%s ਤੁਹਾਨੂੰ ਵਿਡੀਓ ਕਾਲ ਕਰ ਰਿਹਾ ਹੈ, ਕੀ ਤੁਸੀਂ ਜਵਾਬ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
26642823
2665 #: ../src/empathy-event-manager.c:344
2824 #: ../src/empathy-event-manager.c:478
26662825 #, c-format
26672826 msgid "%s is calling you. Do you want to answer?"
26682827 msgstr "%s ਤੁਹਾਨੂੰ ਕਾਲ ਕਰ ਰਿਹਾ ਹੈ, ਕੀ ਤੁਸੀਂ ਜਵਾਬ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
26692828
2670 #: ../src/empathy-event-manager.c:366
2829 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
2830 #, c-format
2831 msgid "Incoming call from %s"
2832 msgstr "%s ਤੋਂ ਕਾਲ ਆ ਰਹੀ ਹੈ"
2833
2834 #: ../src/empathy-event-manager.c:506
26712835 msgid "_Reject"
26722836 msgstr "ਰੱਦ ਕਰੋ(_R)"
26732837
2674 #: ../src/empathy-event-manager.c:372
2838 #: ../src/empathy-event-manager.c:512
26752839 msgid "_Answer"
26762840 msgstr "ਜਵਾਬ ਦਿਓ(_A)"
26772841
2678 #: ../src/empathy-event-manager.c:489
2842 #: ../src/empathy-event-manager.c:623
26792843 #, c-format
26802844 msgid "Incoming video call from %s"
26812845 msgstr "%s ਤੋਂ ਵਿਡੀਓ ਕਾਲ ਆ ਰਹੀ ਹੈ"
26822846
2683 #: ../src/empathy-event-manager.c:489
2684 #, c-format
2685 msgid "Incoming call from %s"
2686 msgstr "%s ਤੋਂ ਕਾਲ ਆ ਰਹੀ ਹੈ"
2687
2688 #: ../src/empathy-event-manager.c:579
2847 #: ../src/empathy-event-manager.c:700
26892848 msgid "Room invitation"
26902849 msgstr "ਰੂਮ ਸੱਦਾ"
26912850
2692 #: ../src/empathy-event-manager.c:582
2851 #: ../src/empathy-event-manager.c:702
2852 #, c-format
2853 msgid "Invitation to join %s"
2854 msgstr "%s ਜੁਆਇੰਣ ਕਰਨ ਲਈ ਸੱਦਾ"
2855
2856 #: ../src/empathy-event-manager.c:709
26932857 #, c-format
26942858 msgid "%s is inviting you to join %s"
26952859 msgstr "%s ਤੁਹਾਨੂੰ %s ਜੁਆਇੰਨ ਕਰਨ ਲਈ ਸੱਦ ਰਿਹਾ ਹੈ"
26962860
2697 #: ../src/empathy-event-manager.c:590
2861 #: ../src/empathy-event-manager.c:717
26982862 msgid "_Decline"
26992863 msgstr "ਇਨਕਾਰ(_D)"
27002864
2701 #: ../src/empathy-event-manager.c:595
2865 #: ../src/empathy-event-manager.c:722
27022866 #: ../src/empathy-new-chatroom-dialog.ui.h:7
27032867 msgid "_Join"
27042868 msgstr "ਦਾਖਲ(_J)"
27052869
2706 #: ../src/empathy-event-manager.c:634
2870 #: ../src/empathy-event-manager.c:760
27072871 #, c-format
27082872 msgid "%s invited you to join %s"
27092873 msgstr "%s ਨੇ ਤੁਹਾਨੂੰ %s ਦਾਖਲ ਹੋਣ ਲਈ ਸੱਦਿਆ"
27102874
2711 #: ../src/empathy-event-manager.c:660
2875 #: ../src/empathy-event-manager.c:787
27122876 #, c-format
27132877 msgid "Incoming file transfer from %s"
27142878 msgstr "%s ਤੋਂ ਆ ਰਿਹਾ ਫਾਇਲ ਸੰਚਾਰ"
27152879
2716 #: ../src/empathy-event-manager.c:818
2880 #: ../src/empathy-event-manager.c:988
27172881 #, c-format
27182882 msgid "Subscription requested by %s"
27192883 msgstr "%s ਵਲੋਂ ਮੈਂਬਰੀ ਚਾਹੀਦੀ ਹੈ"
27202884
2721 #: ../src/empathy-event-manager.c:822
2885 #: ../src/empathy-event-manager.c:992
27222886 #, c-format
27232887 msgid ""
27242888 "\n"
27272891 "\n"
27282892 "ਸੁਨੇਹਾ: %s"
27292893
2730 #. someone is logging off
2731 #: ../src/empathy-event-manager.c:862
2894 #: ../src/empathy-event-manager.c:1035
27322895 #, c-format
27332896 msgid "%s is now offline."
27342897 msgstr "%s ਹੁਣ ਆਫਲਾਈਨ ਹੈ।"
27352898
2736 #. someone is logging in
2737 #: ../src/empathy-event-manager.c:878
2899 #: ../src/empathy-event-manager.c:1055
27382900 #, c-format
27392901 msgid "%s is now online."
27402902 msgstr "%s ਹੁਣ ਆਨਲਾਈਨ ਹੈ।"
27412903
27422904 #. Translators: time left, when it is more than one hour
2743 #: ../src/empathy-ft-manager.c:100
2905 #: ../src/empathy-ft-manager.c:99
27442906 #, c-format
27452907 msgid "%u:%02u.%02u"
27462908 msgstr "%u:%02u.%02u"
27472909
27482910 #. Translators: time left, when is is less than one hour
2749 #: ../src/empathy-ft-manager.c:103
2911 #: ../src/empathy-ft-manager.c:102
27502912 #, c-format
27512913 msgid "%02u.%02u"
27522914 msgstr "%02u.%02u"
27532915
2754 #: ../src/empathy-ft-manager.c:179
2916 #: ../src/empathy-ft-manager.c:178
27552917 msgctxt "file transfer percent"
27562918 msgid "Unknown"
27572919 msgstr "ਅਣਜਾਣ"
27582920
2759 #: ../src/empathy-ft-manager.c:274
2921 #: ../src/empathy-ft-manager.c:273
27602922 #, c-format
27612923 msgid "%s of %s at %s/s"
27622924 msgstr "%3$s/s ਨਾਲ %2$s ਵਿੱਚੋਂ %1$s"
27632925
2764 #: ../src/empathy-ft-manager.c:275
2926 #: ../src/empathy-ft-manager.c:274
27652927 #, c-format
27662928 msgid "%s of %s"
27672929 msgstr "%2$s ਵਿੱਚੋਂ %1$s"
27682930
27692931 #. translators: first %s is filename, second %s is the contact name
2770 #: ../src/empathy-ft-manager.c:306
2932 #: ../src/empathy-ft-manager.c:305
27712933 #, c-format
27722934 msgid "Receiving \"%s\" from %s"
27732935 msgstr "%2$s ਵਲੋਂ \"%1$s\" ਆ ਰਹੀ ਹੈ"
27742936
27752937 #. translators: first %s is filename, second %s is the contact name
2776 #: ../src/empathy-ft-manager.c:309
2938 #: ../src/empathy-ft-manager.c:308
27772939 #, c-format
27782940 msgid "Sending \"%s\" to %s"
27792941 msgstr "\"%s\" %s ਨੂੰ ਭੇਜੀ ਜਾ ਰਹੀ ਹੈ"
27802942
27812943 #. translators: first %s is filename, second %s
27822944 #. * is the contact name
2783 #: ../src/empathy-ft-manager.c:339
2945 #: ../src/empathy-ft-manager.c:338
27842946 #, c-format
27852947 msgid "Error receiving \"%s\" from %s"
27862948 msgstr "%2$s ਤੋਂ \"%1$s\" ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ"
27872949
2788 #: ../src/empathy-ft-manager.c:342
2950 #: ../src/empathy-ft-manager.c:341
27892951 msgid "Error receiving a file"
27902952 msgstr "ਫਾਇਲ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ"
27912953
2792 #: ../src/empathy-ft-manager.c:347
2954 #: ../src/empathy-ft-manager.c:346
27932955 #, c-format
27942956 msgid "Error sending \"%s\" to %s"
27952957 msgstr "\"%s\" %s ਨੂੰ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ"
27962958
2797 #: ../src/empathy-ft-manager.c:350
2959 #: ../src/empathy-ft-manager.c:349
27982960 msgid "Error sending a file"
27992961 msgstr "ਫਾਇਲ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ"
28002962
28012963 #. translators: first %s is filename, second %s
28022964 #. * is the contact name
2803 #: ../src/empathy-ft-manager.c:489
2965 #: ../src/empathy-ft-manager.c:488
28042966 #, c-format
28052967 msgid "\"%s\" received from %s"
28062968 msgstr "%2$s ਤੋਂ \"%1$s\" ਮਿਲੀ"
28072969
28082970 #. translators: first %s is filename, second %s
28092971 #. * is the contact name
2810 #: ../src/empathy-ft-manager.c:494
2972 #: ../src/empathy-ft-manager.c:493
28112973 #, c-format
28122974 msgid "\"%s\" sent to %s"
28132975 msgstr "\"%s\" %s ਨੂੰ ਭੇਜੀ"
28142976
2815 #: ../src/empathy-ft-manager.c:497
2977 #: ../src/empathy-ft-manager.c:496
28162978 msgid "File transfer completed"
28172979 msgstr "ਫਾਇਲ ਸੰਚਾਰ ਪੂਰਾ ਹੋਇਆ"
28182980
2819 #: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
2981 #: ../src/empathy-ft-manager.c:615 ../src/empathy-ft-manager.c:782
28202982 msgid "Waiting for the other participant's response"
28212983 msgstr "ਹੋਰ ਦਰਸ਼ਕਾਂ ਦੇ ਜਵਾਬ ਦੀ ਉਡੀਕ ਹੈ"
28222984
2823 #: ../src/empathy-ft-manager.c:642 ../src/empathy-ft-manager.c:680
2985 #: ../src/empathy-ft-manager.c:641 ../src/empathy-ft-manager.c:679
28242986 #, c-format
28252987 msgid "Checking integrity of \"%s\""
28262988 msgstr "\"%s\" ਦੀ ਐਂਟੀਗਰੇਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
28272989
2828 #: ../src/empathy-ft-manager.c:645 ../src/empathy-ft-manager.c:683
2990 #: ../src/empathy-ft-manager.c:644 ../src/empathy-ft-manager.c:682
28292991 #, c-format
28302992 msgid "Hashing \"%s\""
28312993 msgstr "\"%s\" ਹੈਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
28322994
2833 #: ../src/empathy-ft-manager.c:991
2995 #: ../src/empathy-ft-manager.c:996
28342996 msgid "%"
28352997 msgstr "%"
28362998
2837 #: ../src/empathy-ft-manager.c:1003
2999 #: ../src/empathy-ft-manager.c:1008
28383000 msgid "File"
28393001 msgstr "ਫਾਇਲ"
28403002
2841 #: ../src/empathy-ft-manager.c:1025
3003 #: ../src/empathy-ft-manager.c:1030
28423004 msgid "Remaining"
28433005 msgstr "ਬਾਕੀ"
28443006
28633025 msgstr "ਅਕਾਊਂਟ ਇੰਪੋਰਟ"
28643026
28653027 #. Translators: this is the header of a treeview column
2866 #: ../src/empathy-import-widget.c:290
3028 #: ../src/empathy-import-widget.c:292
28673029 msgid "Import"
28683030 msgstr "ਇੰਪੋਰਟ"
28693031
2870 #: ../src/empathy-import-widget.c:299
3032 #: ../src/empathy-import-widget.c:301
28713033 msgid "Protocol"
28723034 msgstr "ਪਰੋਟੋਕਾਲ"
28733035
2874 #: ../src/empathy-import-widget.c:323
3036 #: ../src/empathy-import-widget.c:325
28753037 msgid "Source"
28763038 msgstr "ਸਰੋਤ"
28773039
2878 #: ../src/empathy-import-mc4-accounts.c:106
2879 #, c-format
2880 msgid "%s account"
2881 msgstr "%s ਅਕਾਊਂਟ"
2882
2883 #: ../src/empathy-main-window.c:437
3040 #. Labels for empty contact list
3041 #: ../src/empathy-main-window.c:95
3042 #| msgid "No topic defined"
3043 msgid "No match found"
3044 msgstr "ਕੋਈ ਮੇਲ ਨਹੀਂ ਲੱਭਿਆ"
3045
3046 #: ../src/empathy-main-window.c:519
28843047 msgid "Reconnect"
28853048 msgstr "ਮੁੜ-ਕੁਨੈਕਟ"
28863049
2887 #: ../src/empathy-main-window.c:443
3050 #: ../src/empathy-main-window.c:525
28883051 msgid "Edit Account"
28893052 msgstr "ਅਕਾਊਂਟ ਸੋਧ"
28903053
2891 #: ../src/empathy-main-window.c:449
3054 #: ../src/empathy-main-window.c:531
28923055 msgid "Close"
28933056 msgstr "ਬੰਦ ਕਰੋ"
28943057
2895 #: ../src/empathy-main-window.c:1033
3058 #: ../src/empathy-main-window.c:1213
28963059 msgid "Contact"
28973060 msgstr "ਸੰਪਰਕ"
28983061
2899 #: ../src/empathy-main-window.c:1414
3062 #: ../src/empathy-main-window.c:1538
3063 msgid "Contact List"
3064 msgstr "ਸੰਪਰਕ ਲਿਸਟ"
3065
3066 #: ../src/empathy-main-window.c:1647
29003067 msgid "Show and edit accounts"
29013068 msgstr "ਅਕਾਊਂਟ ਵੇਖੋ ਅਤੇ ਸੋਧੋ"
29023069
29033070 #: ../src/empathy-main-window.ui.h:1
2904 msgid "Contact List"
2905 msgstr "ਸੰਪਰਕ ਲਿਸਟ"
2906
2907 #: ../src/empathy-main-window.ui.h:2
29083071 msgid "Contacts on a _Map"
29093072 msgstr "ਨਕਸ਼ੇ ਉੱਤੇ ਸੰਪਰਕ(_M)"
29103073
2911 #: ../src/empathy-main-window.ui.h:3
3074 #: ../src/empathy-main-window.ui.h:2
29123075 msgid "Context"
29133076 msgstr "ਪਰਸੰਗ"
29143077
2915 #: ../src/empathy-main-window.ui.h:4
3078 #: ../src/empathy-main-window.ui.h:3
29163079 msgid "Join _Favorites"
29173080 msgstr "ਪਸੰਦ ਵਿੱਚ ਦਾਖਲ(_F)"
29183081
2919 #: ../src/empathy-main-window.ui.h:5
3082 #: ../src/empathy-main-window.ui.h:4
29203083 msgid "Manage Favorites"
29213084 msgstr "ਪਸੰਦ ਪਰਬੰਧ"
29223085
2923 #: ../src/empathy-main-window.ui.h:6
3086 #: ../src/empathy-main-window.ui.h:5
29243087 msgid "N_ormal Size"
29253088 msgstr "ਸਧਾਰਨ ਆਕਾਰ(_o)"
29263089
2927 #: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
3090 #: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
29283091 msgid "New _Call…"
29293092 msgstr "ਨਵੀਂ ਕਾਲ(_C)..."
29303093
2931 #: ../src/empathy-main-window.ui.h:8
3094 #: ../src/empathy-main-window.ui.h:7
29323095 msgid "Normal Size With _Avatars"
29333096 msgstr "ਅਵਤਾਰਾਂ ਨਾਲ ਸਧਾਰਨ ਆਕਾਰ(_A)"
29343097
2935 #: ../src/empathy-main-window.ui.h:9
3098 #: ../src/empathy-main-window.ui.h:8
29363099 msgid "P_references"
29373100 msgstr "ਪਸੰਦ(_r)"
29383101
2939 #: ../src/empathy-main-window.ui.h:10
3102 #: ../src/empathy-main-window.ui.h:9
29403103 msgid "Show P_rotocols"
29413104 msgstr "ਪਰੋਟੋਕਾਲ ਵੇਖੋ(_r)"
29423105
2943 #: ../src/empathy-main-window.ui.h:11
3106 #: ../src/empathy-main-window.ui.h:10
29443107 msgid "Sort by _Name"
29453108 msgstr "ਨਾਂ ਨਾਲ ਲੜੀਬੱਧ(_N)"
29463109
2947 #: ../src/empathy-main-window.ui.h:12
3110 #: ../src/empathy-main-window.ui.h:11
29483111 msgid "Sort by _Status"
29493112 msgstr "ਹਾਲਤ ਨਾਲ ਲੜੀਬੱਧ(_S)"
29503113
2951 #: ../src/empathy-main-window.ui.h:13
3114 #: ../src/empathy-main-window.ui.h:12
29523115 msgid "_Accounts"
29533116 msgstr "ਅਕਾਊਂਟ(_A)"
29543117
2955 #: ../src/empathy-main-window.ui.h:16
3118 #: ../src/empathy-main-window.ui.h:15
29563119 msgid "_Compact Size"
29573120 msgstr "ਸੰਖੇਪ ਆਕਾਰ(_C)"
29583121
2959 #: ../src/empathy-main-window.ui.h:18
3122 #: ../src/empathy-main-window.ui.h:17
29603123 msgid "_Debug"
29613124 msgstr "ਡੀਬੱਗ(_D)"
29623125
2963 #: ../src/empathy-main-window.ui.h:20
3126 #: ../src/empathy-main-window.ui.h:19
29643127 msgid "_File Transfers"
29653128 msgstr "ਫਾਇਲ ਟਰਾਂਸਫਰ(_F)"
29663129
2967 #: ../src/empathy-main-window.ui.h:22
3130 #: ../src/empathy-main-window.ui.h:21
29683131 msgid "_Join…"
29693132 msgstr "ਦਾਖਲ(_J)..."
29703133
2971 #: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
3134 #: ../src/empathy-main-window.ui.h:22 ../src/empathy-status-icon.ui.h:3
29723135 msgid "_New Conversation…"
29733136 msgstr "ਨਵੀਂ ਗੱਲਬਾਤ..."
29743137
2975 #: ../src/empathy-main-window.ui.h:24
3138 #: ../src/empathy-main-window.ui.h:23
29763139 msgid "_Offline Contacts"
29773140 msgstr "ਆਫਲਾਈਨ ਸੰਪਰਕ(_O)"
29783141
2979 #: ../src/empathy-main-window.ui.h:25
3142 #: ../src/empathy-main-window.ui.h:24
29803143 msgid "_Personal Information"
29813144 msgstr "ਨਿੱਜੀ ਜਾਣਕਾਰੀ(_P)"
29823145
2983 #: ../src/empathy-main-window.ui.h:27
3146 #: ../src/empathy-main-window.ui.h:26
29843147 msgid "_Room"
29853148 msgstr "ਰੂਮ(_R)"
29863149
2987 #: ../src/empathy-new-chatroom-dialog.c:338
3150 #: ../src/empathy-new-chatroom-dialog.c:379
29883151 msgid "Chat Room"
29893152 msgstr "ਗੱਲਬਾਤ ਰੂਮ"
29903153
2991 #: ../src/empathy-new-chatroom-dialog.c:354
3154 #: ../src/empathy-new-chatroom-dialog.c:395
29923155 msgid "Members"
29933156 msgstr "ਮੈਂਬਰ"
29943157
29953158 #. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
29963159 #. yes/no, yes/no and a number.
2997 #: ../src/empathy-new-chatroom-dialog.c:539
3160 #: ../src/empathy-new-chatroom-dialog.c:605
29983161 #, c-format
29993162 msgid ""
30003163 "<b>%s</b>\n"
30073170 "ਪਾਸਵਰਡ ਲੋੜੀਦਾ: %s\n"
30083171 "ਮੈਂਬਰ: %s"
30093172
3010 #: ../src/empathy-new-chatroom-dialog.c:541
3011 #: ../src/empathy-new-chatroom-dialog.c:542
3173 #: ../src/empathy-new-chatroom-dialog.c:607
3174 #: ../src/empathy-new-chatroom-dialog.c:608
30123175 msgid "No"
30133176 msgstr "ਨਹੀਂ"
30143177
3015 #: ../src/empathy-new-chatroom-dialog.c:569
3178 #: ../src/empathy-new-chatroom-dialog.c:635
30163179 msgid "Could not start room listing"
30173180 msgstr "ਰੂਮ ਲਿਸਟ ਕਰਨਾ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
30183181
3019 #: ../src/empathy-new-chatroom-dialog.c:579
3182 #: ../src/empathy-new-chatroom-dialog.c:645
30203183 msgid "Could not stop room listing"
30213184 msgstr "ਰੂਮ ਲਿਸਟ ਕਰਨਾ ਰੋਕਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"
30223185
30463209 msgid "_Room:"
30473210 msgstr "ਰੂਮ(_R):"
30483211
3049 #: ../src/empathy-preferences.c:148
3212 #: ../src/empathy-preferences.c:136
30503213 msgid "Message received"
30513214 msgstr "ਸੁਨੇਹਾ ਮਿਲਿਆ"
30523215
3053 #: ../src/empathy-preferences.c:149
3216 #: ../src/empathy-preferences.c:137
30543217 msgid "Message sent"
30553218 msgstr "ਸੁਨੇਹਾ ਭੇਜਿਆ"
30563219
3057 #: ../src/empathy-preferences.c:150
3220 #: ../src/empathy-preferences.c:138
30583221 msgid "New conversation"
30593222 msgstr "ਨਵੀਂ ਗੱਲਬਾਤ"
30603223
3061 #: ../src/empathy-preferences.c:151
3224 #: ../src/empathy-preferences.c:139
30623225 msgid "Contact goes online"
30633226 msgstr "ਸੰਪਰਕ ਆਨਲਾਈਨ ਹੋਇਆ"
30643227
3065 #: ../src/empathy-preferences.c:152
3228 #: ../src/empathy-preferences.c:140
30663229 msgid "Contact goes offline"
30673230 msgstr "ਸੰਪਰਕ ਬੰਦ ਕਰ ਗਿਆ"
30683231
3069 #: ../src/empathy-preferences.c:153
3232 #: ../src/empathy-preferences.c:141
30703233 msgid "Account connected"
30713234 msgstr "ਅਕਾਊਂਟ ਕੁਨੈਕਟ ਕੀਤਾ"
30723235
3073 #: ../src/empathy-preferences.c:154
3236 #: ../src/empathy-preferences.c:142
30743237 msgid "Account disconnected"
30753238 msgstr "ਅਕਾਊਂਟ ਕੁਨੈਕਸ਼ਨ ਬੰਦ ਹੋਇਆ"
30763239
3077 #: ../src/empathy-preferences.c:394
3240 #: ../src/empathy-preferences.c:437
30783241 msgid "Language"
30793242 msgstr "ਭਾਸ਼ਾ"
3243
3244 #: ../src/empathy-preferences.c:873
3245 msgid "Preferences"
3246 msgstr "ਪਸੰਦ"
30803247
30813248 #: ../src/empathy-preferences.ui.h:1
30823249 msgid "Appearance"
30833250 msgstr "ਦਿੱਖ"
30843251
30853252 #: ../src/empathy-preferences.ui.h:2
3086 msgid "Automatically _connect on startup "
3087 msgstr "ਸ਼ੁਰੂ ਸਮੇਂ ਆਟੋਮੈਟਿਕ ਹੀ ਕੁਨੈਕਟ ਕਰੋ(_c)"
3088
3089 #: ../src/empathy-preferences.ui.h:3
30903253 msgid "Behavior"
30913254 msgstr "ਰਵੱਈਆ"
30923255
3093 #: ../src/empathy-preferences.ui.h:4
3256 #: ../src/empathy-preferences.ui.h:3
30943257 msgid "Chat Th_eme:"
30953258 msgstr "ਗੱਲਬਾਤ ਥੀਮ(_e):"
30963259
3097 #: ../src/empathy-preferences.ui.h:5
3260 #: ../src/empathy-preferences.ui.h:4
30983261 msgid "Disable notifications when _away or busy"
30993262 msgstr "ਜਦੋਂ ਦੂਰ ਜਾਂ ਰੁੱਝਿਆ/ਰੁਝੀ ਤਾਂ ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੰਦ ਰੱਖੋ(_a)"
31003263
3101 #: ../src/empathy-preferences.ui.h:6
3264 #: ../src/empathy-preferences.ui.h:5
31023265 msgid "Disable sounds when _away or busy"
31033266 msgstr "ਜਦੋਂ ਦੂਰ ਜਾਂ ਰੁਝਿਆ/ਰੁਝੀ ਹੋਵਾਂ ਤਾਂ ਸਾਊਂਡ ਬੰਦ ਰੱਖੋ(_a)"
3267
3268 #: ../src/empathy-preferences.ui.h:6
3269 msgid "Display incoming events in the notification area"
3270 msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਖੇਤਰ ਵਿੱਚ ਆ ਰਹੇ ਈਵੈਂਟ ਵੇਖਾਓ"
31043271
31053272 #: ../src/empathy-preferences.ui.h:7
31063273 msgid "Enable notifications when a contact comes online"
31353302 msgstr "ਘਟਨਾਵਾਂ ਲਈ ਸਾਊਂਡ ਚਲਾਓ"
31363303
31373304 #: ../src/empathy-preferences.ui.h:16
3138 msgid "Preferences"
3139 msgstr "ਪਸੰਦ"
3140
3141 #: ../src/empathy-preferences.ui.h:17
31423305 msgid "Privacy"
31433306 msgstr "ਪਰਾਈਵੇਸੀ"
31443307
3145 #: ../src/empathy-preferences.ui.h:18
3308 #: ../src/empathy-preferences.ui.h:17
31463309 msgid ""
31473310 "Reduced location accuracy means that nothing more precise than your city, "
31483311 "state and country will be published. GPS coordinates will be accurate to 1 "
31513314 "ਟਿਕਾਣਾ ਸ਼ੁੱਧਤਾ ਘਟਾਉਣ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸ਼ਹਿਰ, ਸੂਬਾ ਅਤੇ ਦੇਸ਼ ਤੋਂ ਵੱਧ ਕੁਝ ਵੀ ਵੇਖਾਇਆ ਨਹੀਂ "
31523315 "ਜਾਵੇਗਾ। GPS ਧੁਰਾ ਮੁੱਲ 1 ਦਸ਼ਮਲਵ ਥਾਂ ਨਾਲ ਸ਼ੁੱਧ ਹੋਣਗੇ।"
31533316
3154 #: ../src/empathy-preferences.ui.h:19
3317 #: ../src/empathy-preferences.ui.h:18
31553318 msgid "Show _smileys as images"
31563319 msgstr "ਖੁਸ਼ ਚਿੱਤਰਾਂ ਵਾਂਗ ਵੇਖੋ(_s)"
31573320
3158 #: ../src/empathy-preferences.ui.h:20
3321 #: ../src/empathy-preferences.ui.h:19
31593322 msgid "Show contact _list in rooms"
31603323 msgstr "ਰੂਮ ਵਿੱਚ ਸੰਪਰਕ ਲਿਸਟ ਵੇਖੋ(_l)"
31613324
3162 #: ../src/empathy-preferences.ui.h:21
3325 #: ../src/empathy-preferences.ui.h:20
31633326 msgid "Sounds"
31643327 msgstr "ਸਾਊਂਡ"
31653328
3166 #: ../src/empathy-preferences.ui.h:22
3329 #: ../src/empathy-preferences.ui.h:21
31673330 msgid "Spell Checking"
31683331 msgstr "ਸ਼ਬਦਜੋੜ ਜਾਂਚ"
31693332
3170 #: ../src/empathy-preferences.ui.h:23
3333 #: ../src/empathy-preferences.ui.h:22
31713334 msgid ""
31723335 "The list of languages reflects only the languages for which you have a "
31733336 "dictionary installed."
31743337 msgstr "ਭਾਸ਼ਾ ਦੀ ਲਿਸਟ ਵੇਖਾ ਰਿਹਾ ਹੈ, ਜਿੰਨ੍ਹਾਂ ਲਈ ਤੁਹਾਡੇ ਕੋਲ ਸ਼ਬਦ-ਕੋਸ਼ ਇੰਸਟਾਲ ਹੈ।"
31753338
3176 #: ../src/empathy-preferences.ui.h:24
3339 #: ../src/empathy-preferences.ui.h:23
31773340 msgid "Themes"
31783341 msgstr "ਥੀਮ"
3342
3343 #: ../src/empathy-preferences.ui.h:24
3344 msgid "_Automatically connect on startup"
3345 msgstr "ਸ਼ੁਰੂ ਸਮੇਂ ਆਟੋਮੈਟਿਕ ਹੀ ਕੁਨੈਕਟ ਕਰੋ(_A)"
31793346
31803347 #: ../src/empathy-preferences.ui.h:25
31813348 msgid "_Cellphone"
32053372 msgid "_Publish location to my contacts"
32063373 msgstr "ਮੇਰੇ ਸੰਪਰਕਾਂ ਲਈ ਟਿਕਾਣਾ ਦੱਸੋ(_P)"
32073374
3208 #: ../src/empathy-preferences.ui.h:32
3375 #. 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.
3376 #: ../src/empathy-preferences.ui.h:33
32093377 msgid "_Reduce location accuracy"
32103378 msgstr "ਟਿਕਾਣਾ ਸ਼ੁੱਧਤਾ ਘਟਾਓ(_R)"
32113379
3212 #: ../src/empathy-status-icon.c:176
3380 #: ../src/empathy-status-icon.c:141
32133381 msgid "Respond"
32143382 msgstr "ਜਵਾਬ"
3383
3384 #: ../src/empathy-status-icon.c:147
3385 msgid "Reject"
3386 msgstr "ਰੱਦ ਕਰੋ"
3387
3388 #: ../src/empathy-status-icon.c:151
3389 msgid "Answer"
3390 msgstr "ਜਵਾਬ ਦਿਓ"
3391
3392 #: ../src/empathy-status-icon.c:158
3393 msgid "Decline"
3394 msgstr "ਇਨਕਾਰ"
3395
3396 #: ../src/empathy-status-icon.c:162
3397 msgid "Accept"
3398 msgstr "ਮਨਜ਼ੂਰ"
32153399
32163400 #: ../src/empathy-status-icon.ui.h:2
32173401 msgid "Status"
32213405 msgid "_Quit"
32223406 msgstr "ਬੰਦ ਕਰੋ(_Q)"
32233407
3224 #: ../src/empathy-map-view.ui.h:1
3408 #: ../src/empathy-map-view.c:452
32253409 msgid "Contact Map View"
32263410 msgstr "ਸੰਪਰਕ ਮੈਪ ਝਲਕ"
32273411
3228 #: ../src/empathy-debug-window.c:1066
3412 #: ../src/empathy-debug-window.c:1219
32293413 msgid "Save"
32303414 msgstr "ਸੰਭਾਲੋ"
32313415
3232 #: ../src/empathy-debug-window.c:1219
3416 #: ../src/empathy-debug-window.c:1395
32333417 msgid "Debug Window"
32343418 msgstr "ਡੀਬੱਗ ਵਿੰਡੋ"
32353419
3236 #: ../src/empathy-debug-window.c:1299
3420 #: ../src/empathy-debug-window.c:1475
32373421 msgid "Pause"
32383422 msgstr "ਵਿਰਾਮ"
32393423
3240 #: ../src/empathy-debug-window.c:1311
3424 #: ../src/empathy-debug-window.c:1487
32413425 msgid "Level "
32423426 msgstr "ਲੈਵਲ "
32433427
3244 #: ../src/empathy-debug-window.c:1331
3428 #: ../src/empathy-debug-window.c:1507
32453429 msgid "Debug"
32463430 msgstr "ਡੀਬੱਗ"
32473431
3248 #: ../src/empathy-debug-window.c:1337
3432 #: ../src/empathy-debug-window.c:1513
32493433 msgid "Info"
32503434 msgstr "ਜਾਣਕਾਰੀ"
32513435
3252 #: ../src/empathy-debug-window.c:1343 ../src/empathy-debug-window.c:1392
3436 #: ../src/empathy-debug-window.c:1519 ../src/empathy-debug-window.c:1568
32533437 msgid "Message"
32543438 msgstr "ਸੁਨੇਹਾ"
32553439
3256 #: ../src/empathy-debug-window.c:1349
3440 #: ../src/empathy-debug-window.c:1525
32573441 msgid "Warning"
32583442 msgstr "ਚੇਤਾਵਨੀ"
32593443
3260 #: ../src/empathy-debug-window.c:1355
3444 #: ../src/empathy-debug-window.c:1531
32613445 msgid "Critical"
32623446 msgstr "ਨਾਜ਼ੁਕ"
32633447
3264 #: ../src/empathy-debug-window.c:1361
3448 #: ../src/empathy-debug-window.c:1537
32653449 msgid "Error"
32663450 msgstr "ਗਲਤੀ"
32673451
3268 #: ../src/empathy-debug-window.c:1380
3452 #: ../src/empathy-debug-window.c:1556
32693453 msgid "Time"
32703454 msgstr "ਸਮਾਂ"
32713455
3272 #: ../src/empathy-debug-window.c:1383
3456 #: ../src/empathy-debug-window.c:1559
32733457 msgid "Domain"
32743458 msgstr "ਡੋਮੇਨ"
32753459
3276 #: ../src/empathy-debug-window.c:1385
3460 #: ../src/empathy-debug-window.c:1561
32773461 msgid "Category"
32783462 msgstr "ਕੈਟਾਗਰੀ"
32793463
3280 #: ../src/empathy-debug-window.c:1387
3464 #: ../src/empathy-debug-window.c:1563
32813465 msgid "Level"
32823466 msgstr "ਲੈਵਲ"
32833467
3284 #: ../src/empathy-debug-window.c:1424
3468 #: ../src/empathy-debug-window.c:1600
32853469 msgid ""
32863470 "The selected connection manager does not support the remote debugging "
32873471 "extension."
32963480 msgid "Choose a contact to invite into the conversation:"
32973481 msgstr "ਗੱਲਬਾਤ ਵਿੱਚ ਸੱਦਣ ਲਈ ਸੰਪਰਕ ਚੁਣੋ:"
32983482
3299 #: ../src/empathy-accounts.c:213
3483 #: ../src/empathy-invite-participant-dialog.c:45
3484 msgid "Invite"
3485 msgstr "ਸੱਦਾ"
3486
3487 #: ../src/empathy-accounts.c:182
33003488 msgid "Don't display any dialogs; do any work (eg, importing) and exit"
33013489 msgstr "ਕੋਈ ਡਾਈਲਾਗ ਨਾ ਵੇਖਾਓ; ਕੁਝ ਵੀ ਕਰੋ (ਇੰਪੋਰਟ ਆਦਿ) ਅਤੇ ਬੰਦ ਕਰੋ"
33023490
3303 #: ../src/empathy-accounts.c:217
3491 #: ../src/empathy-accounts.c:186
33043492 msgid "Don't display any dialogs if there are any non-salut accounts"
33053493 msgstr "ਜੇ ਕੋਈ ਨਾ-ਸਲਾਉਟ ਅਕਾਊਂਟ ਹੋਵੇ ਤਾਂ ਕੋਈ ਵੀ ਡਾਈਲਾਗ ਨਾ ਵੇਖਾਓ"
33063494
3307 #: ../src/empathy-accounts.c:221
3495 #: ../src/empathy-accounts.c:190
33083496 msgid "Initially select given account (eg, gabble/jabber/foo_40example_2eorg0)"
33093497 msgstr "ਦਿੱਤਾ ਅਕਾਊਂਟ ਸ਼ੁਰੂ ਵੇਲੇ ਚੁਣੋ (ਜਿਵੇਂ gabble/jabber/foo_40example_2eorg0)"
33103498
3311 #: ../src/empathy-accounts.c:223
3499 #: ../src/empathy-accounts.c:192
33123500 msgid "<account-id>"
33133501 msgstr "<account-id>"
33143502
3315 #: ../src/empathy-accounts.c:231
3503 #: ../src/empathy-accounts.c:200
33163504 msgid "- Empathy Accounts"
33173505 msgstr "- ਇੰਪੈਥੀ ਅਕਾਊਂਟ"
33183506
3319 #: ../src/empathy-accounts.c:247
3507 #: ../src/empathy-accounts.c:216
33203508 msgid "Empathy Accounts"
33213509 msgstr "ਇੰਪੈਥੀ ਅਕਾਊਂਟ"
33223510
33233511 #: ../src/empathy-debugger.c:40
33243512 msgid "Empathy Debugger"
33253513 msgstr "ਇੰਪੈਥੀ ਡੀਬੱਗਰ"
3514
3515 #~ msgid "Send and receive messages"
3516 #~ msgstr "ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਲਵੋ"
3517
3518 #~ msgid "MC 4 accounts have been imported"
3519 #~ msgstr "MC 4 ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕੀਤੇ ਗਏ।"
3520
3521 #~ msgid "MC 4 accounts have been imported."
3522 #~ msgstr "MC 4 ਅਕਾਊਂਟ ਇੰਪੋਰਟ ਕੀਤੇ ਗਏ।"
3523
3524 #~ msgid "Hostname of the proxy for outbound requests."
3525 #~ msgstr "ਆਉਟਬਾਊਂਡ ਮੰਗ ਲਈ ਪਰਾਕਸੀ ਦਾ ਹੋਸਟ-ਨਾਂ।"
3526
3527 #~ msgid ""
3528 #~ "Look up the DNS SRV record at the service's domain for the host name of a "
3529 #~ "STUN server."
3530 #~ msgstr "STUN ਸਰਵਰ ਦੇ ਹੋਸਟ ਨਾਂ ਲਈ ਸਰਵਿਸ ਦੇ ਡੋਮੇਨ ਦੇ DNS SRV ਰਿਕਾਰਡ ਦੀ ਖੋਜ।"
3531
3532 #~ msgid "Port of the proxy for outbound requests."
3533 #~ msgstr "ਆਉਟਬਾਊਂਡ ਮੰਗ ਲਈ ਪਰਾਕਸੀ ਲਈ ਪੋਰਟ।"
3534
3535 #~ msgid ""
3536 #~ "The username for SIP authentication, if different from the SIP URI\n"
3537 #~ "username."
3538 #~ msgstr ""
3539 #~ "SIP ਪਰਮਾਣਕਿਤਾ ਲਈ ਯੂਜ਼ਰ ਨਾਂ, ਜੇ SIP URI ਯੂਜ਼ਰ ਨਾਂ ਤੋਂ ਵੱਖਰਾ ਹੈ\n"
3540 #~ "ਤਾਂ।"
3541
3542 #~ msgid ""
3543 #~ "Update the registration binding if the external address for the client is "
3544 #~ "discovered to be different from the local binding."
3545 #~ msgstr ""
3546 #~ "ਰਜਿਸਟਰੇਸ਼ਨ ਬਾਈਡਿੰਗ ਅੱਪਡੇਟ ਕਰੋ, ਜੇ ਕਲਾਇਟ ਲਈ ਬਾਹਰੀ ਐਡਰੈੱਸ ਲੋਕਲ ਬਾਈਡਿੰਗ ਤੋਂ ਵੱਖਰਾ ਲੱਭਿਆ ਜਾਵੇ।"
3547
3548 #~ msgid ""
3549 #~ "Use the loose routing behavior and the Route header as recommended in RFC "
3550 #~ "3261."
3551 #~ msgstr "ਲੂਜ਼ ਰੂਟ ਰਵੱਈਆ ਵਰਤੋਂ ਅਤੇ RFC ੩੨੬੧ ਵਿੱਚ ਕੀਤੀ ਸਿਫਾਰਸ਼ ਵਜੋਂ ਰੂਟ ਹੈੱਡਰ।"
3552
3553 #~ msgid "Failed to reconnect this chat"
3554 #~ msgstr "ਇਸ ਗੱਲ ਨਾਲ ਫੇਰ-ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਫੇਲ੍ਹ"
3555
3556 #~ msgid "Failed to join chat room"
3557 #~ msgstr "ਗੱਲਬਾਤ-ਰੂਮ ਜੁਆਇੰਨ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
3558
3559 #~ msgid "Select a destination"
3560 #~ msgstr "ਟਿਕਾਣਾ ਚੁਣੋ"
3561
3562 #~ msgid "%s account"
3563 #~ msgstr "%s ਅਕਾਊਂਟ"
33263564
33273565 #~ msgid "_Add&#x2026;"
33283566 #~ msgstr "ਸ਼ਾਮਲ(_A)&#x2026;"
34893727 #~ msgid "Geoclue Settings"
34903728 #~ msgstr "ਭੂਗੋਲਿਕ-ਸੁਰਾਗ ਸੈਟਿੰਗ"
34913729
3492 #~ msgid "Empathy Instant Messenger"
3493 #~ msgstr "ਇੰਪੈਥੀ ਤੁਰੰਤ ਸੁਨੇਹੇਦਾਰ"
3494
34953730 #~ msgid "gtk-add"
34963731 #~ msgstr "gtk-add"
34973732
35913826 #~ msgid "Do you want to accept the file \"%s\" (%s)?"
35923827 #~ msgstr "ਕੀ ਤੁਸੀਂ ਫਾਇਲ \"%s\" (%s) ਮਨਜ਼ੂਰ ਕਰਨੀ ਚਾਹੁੰਦੇ ਹੋ?"
35933828
3594 #~ msgid "_Accept"
3595 #~ msgstr "ਮਨਜ਼ੂਰ(_A)"
3596
35973829 #~| msgid "File transfers"
35983830 #~ msgid "Show _File Transfers"
35993831 #~ msgstr "ਫਾਇਲ ਟਰਾਂਸਫਰ ਵੇਖੋ(_F)"
+796
-663
po/ru.po less more
99 msgstr ""
1010 "Project-Id-Version: empathy trunk\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2010-03-18 07:50+0200\n"
13 "PO-Revision-Date: 2010-03-17 19:06+0300\n"
14 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
12 "POT-Creation-Date: 2010-08-03 12:02+0300\n"
13 "PO-Revision-Date: 2010-05-26 07:01+0300\n"
14 "Last-Translator: Александр Семёнов <rotuka@ya.ru>\n"
1515 "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
1616 "MIME-Version: 1.0\n"
1717 "Content-Type: text/plain; charset=UTF-8\n"
1818 "Content-Transfer-Encoding: 8bit\n"
19 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
19 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
2020 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
2121 "X-Poedit-Language: Russian\n"
2222 "X-Poedit-Country: RUSSIAN FEDERATION\n"
2323 "X-Generator: KBabel 1.11.4\n"
2424
2525 #: ../data/empathy.desktop.in.in.h:1
26 msgid "Chat on Google Talk, Facebook, MSN, and many other chat services"
27 msgstr ""
28
29 #: ../data/empathy.desktop.in.in.h:2
2630 msgid "Empathy"
2731 msgstr "Empathy"
2832
29 #: ../data/empathy.desktop.in.in.h:2
30 msgid "Empathy IM Client"
31 msgstr "Клиент обмена мгновенными сообщениями Empathy"
32
3333 #: ../data/empathy.desktop.in.in.h:3
34 msgid "Empathy Internet Messaging"
35 msgstr ""
36
37 #: ../data/empathy.desktop.in.in.h:4
3438 msgid "IM Client"
3539 msgstr "Клиент обмена мгновенными сообщениями"
3640
37 #: ../data/empathy.desktop.in.in.h:4
38 msgid "Send and receive messages"
39 msgstr "Получение и отправка сообщений"
40
41 #: ../data/empathy.schemas.in.h:1
41 #: ../data/org.gnome.Empathy.gschema.xml.in.h:1
4242 msgid "Always open a separate chat window for new chats."
4343 msgstr "Всегда открывать новую беседу в новом окне."
4444
45 #: ../data/empathy.schemas.in.h:2
45 #: ../data/org.gnome.Empathy.gschema.xml.in.h:2
4646 msgid ""
4747 "Character to add after nickname when using nick completion (tab) in group "
4848 "chat."
5050 "Символ для добавления после псевдонима, если в беседе используется "
5151 "автодополнение псевдонимов по клавише Tab."
5252
53 #: ../data/empathy.schemas.in.h:3
53 #: ../data/org.gnome.Empathy.gschema.xml.in.h:3
5454 msgid "Chat window theme"
5555 msgstr "Тема окна беседы"
5656
57 #: ../data/empathy.schemas.in.h:4
57 #: ../data/org.gnome.Empathy.gschema.xml.in.h:4
5858 msgid ""
5959 "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
6060 msgstr ""
6161 "Список языков, используемых при проверке орфографии, разделённых запятыми "
6262 "(например «en, fr, ru»)."
6363
64 #: ../data/empathy.schemas.in.h:5
64 #: ../data/org.gnome.Empathy.gschema.xml.in.h:5
6565 msgid "Compact contact list"
6666 msgstr "Компактный список собеседников"
6767
68 #: ../data/empathy.schemas.in.h:6
68 #: ../data/org.gnome.Empathy.gschema.xml.in.h:6
6969 msgid "Connection managers should be used"
7070 msgstr "Используемые менеджеры соединений"
7171
72 #: ../data/empathy.schemas.in.h:7
72 #: ../data/org.gnome.Empathy.gschema.xml.in.h:7
7373 msgid "Contact list sort criterion"
7474 msgstr "Критерий упорядочивания списка собеседников"
7575
76 #: ../data/empathy.schemas.in.h:8
76 #: ../data/org.gnome.Empathy.gschema.xml.in.h:8
7777 msgid "Default directory to select an avatar image from"
7878 msgstr "Каталог, используемый для выбора изображений аватаров"
7979
80 #: ../data/empathy.schemas.in.h:9
80 #: ../data/org.gnome.Empathy.gschema.xml.in.h:9
8181 msgid "Disable popup notifications when away"
8282 msgstr "Выключить всплывающие уведомления в состоянии «отошёл»"
8383
84 #: ../data/empathy.schemas.in.h:10
84 #: ../data/org.gnome.Empathy.gschema.xml.in.h:10
8585 msgid "Disable sounds when away"
8686 msgstr "Выключить звуки в состоянии «отошёл»"
8787
88 #: ../data/empathy.schemas.in.h:11
88 #: ../data/org.gnome.Empathy.gschema.xml.in.h:11
89 msgid "Display incoming events in the status area"
90 msgstr ""
91
92 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
93 msgid ""
94 "Display incoming events in the status area. If false present them right away "
95 "to the user."
96 msgstr ""
97
98 #: ../data/org.gnome.Empathy.gschema.xml.in.h:13
8999 msgid "Empathy can publish the user's location"
90100 msgstr "Empathy может публиковать местоположение пользователя"
91101
92 #: ../data/empathy.schemas.in.h:12
102 #: ../data/org.gnome.Empathy.gschema.xml.in.h:14
93103 msgid "Empathy can use the GPS to guess the location"
94104 msgstr "Empathy может использовать GPS для определения местоположения"
95105
96 #: ../data/empathy.schemas.in.h:13
106 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
97107 msgid "Empathy can use the cellular network to guess the location"
98108 msgstr "Empathy может использовать сотовую сеть для определения местоположения"
99109
100 #: ../data/empathy.schemas.in.h:14
110 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
101111 msgid "Empathy can use the network to guess the location"
102112 msgstr "Empathy может использовать сеть для определения местоположения"
103113
104 #: ../data/empathy.schemas.in.h:15
114 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
105115 msgid "Empathy default download folder"
106116 msgstr "Папка Empathy для загрузки файлов"
107117
108 #: ../data/empathy.schemas.in.h:16
118 #: ../data/org.gnome.Empathy.gschema.xml.in.h:18
109119 msgid "Empathy has asked about importing accounts"
110120 msgstr "Empathy запросил импортирование учётных записей"
111121
112 #: ../data/empathy.schemas.in.h:17
122 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
113123 msgid "Empathy has migrated butterfly logs"
114124 msgstr "Empathy перенёс журнал сообщений MSN"
115125
116 #: ../data/empathy.schemas.in.h:18
126 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
127 msgid "Empathy should auto-away when idle"
128 msgstr "Устанавливать статус «отошёл» во время простоя"
129
130 #: ../data/org.gnome.Empathy.gschema.xml.in.h:21
117131 msgid "Empathy should auto-connect on startup"
118132 msgstr "Присоединяться при запуске"
119133
120 #: ../data/empathy.schemas.in.h:19
134 #: ../data/org.gnome.Empathy.gschema.xml.in.h:22
121135 msgid "Empathy should reduce the location's accuracy"
122136 msgstr "Empathy должен снижать точность местоположения"
123137
124 #: ../data/empathy.schemas.in.h:20
138 #: ../data/org.gnome.Empathy.gschema.xml.in.h:23
125139 msgid "Empathy should use the avatar of the contact as the chat window icon"
126140 msgstr "Empathy должен использовать аватар контакта как значок окна с беседой"
127141
128 #: ../data/empathy.schemas.in.h:21
142 #: ../data/org.gnome.Empathy.gschema.xml.in.h:24
129143 msgid "Enable WebKit Developer Tools"
130144 msgstr "Включить инструменты разработчика WebKit"
131145
132 #: ../data/empathy.schemas.in.h:22
146 #: ../data/org.gnome.Empathy.gschema.xml.in.h:25
133147 msgid "Enable popup notifications for new messages"
134148 msgstr "Включить всплывающие уведомления о новых сообщениях"
135149
136 #: ../data/empathy.schemas.in.h:23
150 #: ../data/org.gnome.Empathy.gschema.xml.in.h:26
137151 msgid "Enable spell checker"
138152 msgstr "Включить проверку орфографии"
139153
140 #: ../data/empathy.schemas.in.h:24
154 #: ../data/org.gnome.Empathy.gschema.xml.in.h:27
141155 msgid "Hide main window"
142156 msgstr "Скрывать главное окно"
143157
144 #: ../data/empathy.schemas.in.h:25
158 #: ../data/org.gnome.Empathy.gschema.xml.in.h:28
145159 msgid "Hide the main window."
146160 msgstr "Скрывать главное окно."
147161
148 #: ../data/empathy.schemas.in.h:26
149 msgid "MC 4 accounts have been imported"
150 msgstr "Учётные записи MC 4 импортированы"
151
152 #: ../data/empathy.schemas.in.h:27
153 msgid "MC 4 accounts have been imported."
154 msgstr "Учётные записи MC 4 импортированы."
155
156 #: ../data/empathy.schemas.in.h:28
162 #: ../data/org.gnome.Empathy.gschema.xml.in.h:29
157163 msgid "Nick completed character"
158164 msgstr "Символ автодополнения псевдонима"
159165
160 #: ../data/empathy.schemas.in.h:29
166 #: ../data/org.gnome.Empathy.gschema.xml.in.h:30
161167 msgid "Open new chats in separate windows"
162168 msgstr "Открывать новые беседы в новом окне"
163169
164 #: ../data/empathy.schemas.in.h:30
170 #: ../data/org.gnome.Empathy.gschema.xml.in.h:31
165171 msgid "Path of the Adium theme to use"
166172 msgstr "Путь к используемой теме Adium"
167173
168 #: ../data/empathy.schemas.in.h:31
174 #: ../data/org.gnome.Empathy.gschema.xml.in.h:32
169175 msgid "Path of the Adium theme to use if the theme used for chat is Adium."
170176 msgstr ""
171177 "Путь к используемой теме Adium, если тема, используемая для беседы — Adium."
172178
173 #: ../data/empathy.schemas.in.h:32
179 #: ../data/org.gnome.Empathy.gschema.xml.in.h:33
174180 msgid "Play a sound for incoming messages"
175181 msgstr "Воспроизводить ли звук при получении сообщения"
176182
177 #: ../data/empathy.schemas.in.h:33
183 #: ../data/org.gnome.Empathy.gschema.xml.in.h:34
178184 msgid "Play a sound for new conversations"
179185 msgstr "Воспроизводить ли звук при начале беседы"
180186
181 #: ../data/empathy.schemas.in.h:34
187 #: ../data/org.gnome.Empathy.gschema.xml.in.h:35
182188 msgid "Play a sound for outgoing messages"
183189 msgstr "Воспроизводить ли звук при отправке сообщения"
184190
185 #: ../data/empathy.schemas.in.h:35
191 #: ../data/org.gnome.Empathy.gschema.xml.in.h:36
186192 msgid "Play a sound when a contact logs in"
187193 msgstr "Воспроизводить ли звук при входе контакта в сеть"
188194
189 #: ../data/empathy.schemas.in.h:36
195 #: ../data/org.gnome.Empathy.gschema.xml.in.h:37
190196 msgid "Play a sound when a contact logs out"
191197 msgstr "Воспроизводить ли звук при выходе контакта из сети"
192198
193 #: ../data/empathy.schemas.in.h:37
199 #: ../data/org.gnome.Empathy.gschema.xml.in.h:38
194200 msgid "Play a sound when we log in"
195201 msgstr "Воспроизводить звук при входе в сеть"
196202
197 #: ../data/empathy.schemas.in.h:38
203 #: ../data/org.gnome.Empathy.gschema.xml.in.h:39
198204 msgid "Play a sound when we log out"
199205 msgstr "Воспроизводить звук при выходе из сети"
200206
201 #: ../data/empathy.schemas.in.h:39
207 #: ../data/org.gnome.Empathy.gschema.xml.in.h:40
202208 msgid "Pop up notifications if the chat isn't focused"
203209 msgstr "Показывать всплывающие уведомления, если беседа находится не в фокусе"
204210
205 #: ../data/empathy.schemas.in.h:40
211 #: ../data/org.gnome.Empathy.gschema.xml.in.h:41
206212 msgid "Pop up notifications when a contact logs in"
207213 msgstr "Показывать всплывающие уведомления, когда появляется собеседник"
208214
209 #: ../data/empathy.schemas.in.h:41
215 #: ../data/org.gnome.Empathy.gschema.xml.in.h:42
210216 msgid "Pop up notifications when a contact logs out"
211217 msgstr "Показывать всплывающие уведомления, когда собеседник уходит"
212218
213 #: ../data/empathy.schemas.in.h:42
219 #: ../data/org.gnome.Empathy.gschema.xml.in.h:43
214220 msgid "Show avatars"
215221 msgstr "Показывать аватары"
216222
217 #: ../data/empathy.schemas.in.h:43
223 #: ../data/org.gnome.Empathy.gschema.xml.in.h:44
218224 msgid "Show contact list in rooms"
219225 msgstr "Показывать список собеседников в комнатах"
220226
221 #: ../data/empathy.schemas.in.h:44
227 #: ../data/org.gnome.Empathy.gschema.xml.in.h:45
222228 msgid "Show hint about closing the main window"
223229 msgstr "Показывать подсказку о закрытии главного окна"
224230
225 #: ../data/empathy.schemas.in.h:45
231 #: ../data/org.gnome.Empathy.gschema.xml.in.h:46
226232 msgid "Show offline contacts"
227233 msgstr "Показывать отсутствующих собеседников"
228234
229 #: ../data/empathy.schemas.in.h:46
235 #: ../data/org.gnome.Empathy.gschema.xml.in.h:47
230236 msgid "Show protocols"
231237 msgstr "Показывать протоколы"
232238
233 #: ../data/empathy.schemas.in.h:47
239 #: ../data/org.gnome.Empathy.gschema.xml.in.h:48
234240 msgid "Spell checking languages"
235241 msgstr "Языки для проверки орфографии"
236242
237 #: ../data/empathy.schemas.in.h:48
243 #: ../data/org.gnome.Empathy.gschema.xml.in.h:49
238244 msgid "The default folder to save file transfers in."
239245 msgstr "Каталог по умолчанию для сохранения присланных файлов."
240246
241 #: ../data/empathy.schemas.in.h:49
247 #: ../data/org.gnome.Empathy.gschema.xml.in.h:50
242248 msgid "The last directory that an avatar image was chosen from."
243249 msgstr "Последний каталог, из которого выбирались изображения аватаров."
244250
245 #: ../data/empathy.schemas.in.h:50
251 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
252 msgid "The position for the chat window side pane"
253 msgstr ""
254
255 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
256 msgid "The stored position (in pixels) of the chat window side pane."
257 msgstr ""
258
259 #: ../data/org.gnome.Empathy.gschema.xml.in.h:53
246260 msgid "The theme that is used to display the conversation in chat windows."
247261 msgstr "Эта тема используется для отображения диалога в окне беседы."
248262
249 #: ../data/empathy.schemas.in.h:51
263 #: ../data/org.gnome.Empathy.gschema.xml.in.h:54
250264 msgid "Use graphical smileys"
251265 msgstr "Использовать графические улыбки"
252266
253 #: ../data/empathy.schemas.in.h:52
267 #: ../data/org.gnome.Empathy.gschema.xml.in.h:55
254268 msgid "Use notification sounds"
255269 msgstr "Использовать звуки"
256270
257 #: ../data/empathy.schemas.in.h:53
271 #: ../data/org.gnome.Empathy.gschema.xml.in.h:56
258272 msgid "Use theme for chat rooms"
259273 msgstr "Использовать тему для бесед"
260274
261 #: ../data/empathy.schemas.in.h:54
275 #: ../data/org.gnome.Empathy.gschema.xml.in.h:57
262276 msgid "Whether Empathy can publish the user's location to their contacts."
263277 msgstr ""
264278 "Может ли Empathy публиковать местоположение пользователя для его "
265279 "собеседников."
266280
267 #: ../data/empathy.schemas.in.h:55
281 #: ../data/org.gnome.Empathy.gschema.xml.in.h:58
268282 msgid "Whether Empathy can use the GPS to guess the location."
269283 msgstr "Может ли Empathy использовать GPS для определения местоположения."
270284
271 #: ../data/empathy.schemas.in.h:56
285 #: ../data/org.gnome.Empathy.gschema.xml.in.h:59
272286 msgid "Whether Empathy can use the cellular network to guess the location."
273287 msgstr ""
274288 "Может ли Empathy использовать сотовую сеть для определения местоположения."
275289
276 #: ../data/empathy.schemas.in.h:57
290 #: ../data/org.gnome.Empathy.gschema.xml.in.h:60
277291 msgid "Whether Empathy can use the network to guess the location."
278292 msgstr "Может ли Empathy использовать сеть для определения местоположения."
279293
280 #: ../data/empathy.schemas.in.h:58
294 #: ../data/org.gnome.Empathy.gschema.xml.in.h:61
281295 msgid "Whether Empathy has asked about importing accounts from other programs."
282296 msgstr "Был ли запрос об импортировании учётных записей из других приложений."
283297
284 #: ../data/empathy.schemas.in.h:59
298 #: ../data/org.gnome.Empathy.gschema.xml.in.h:62
285299 msgid "Whether Empathy has migrated butterfly logs."
286300 msgstr "Был ли перенос журнала сообщений MSN."
287301
288 #: ../data/empathy.schemas.in.h:60
302 #: ../data/org.gnome.Empathy.gschema.xml.in.h:63
289303 msgid "Whether Empathy should automatically log into your accounts on startup."
290304 msgstr ""
291305 "Должен ли Empathy автоматически входить в ваши учётные записи при запуске."
292306
293 #: ../data/empathy.schemas.in.h:61
307 #: ../data/org.gnome.Empathy.gschema.xml.in.h:64
308 msgid "Whether Empathy should go into away mode automatically if user is idle."
309 msgstr ""
310 "Должен ли Empathy автоматически устанавливать статус «отошёл», когда "
311 "компьютер простаивает."
312
313 #: ../data/org.gnome.Empathy.gschema.xml.in.h:65
294314 msgid ""
295315 "Whether Empathy should reduce the location's accuracy for privacy reasons."
296316 msgstr ""
297317 "Должен ли Empathy уменьшать точность определения местоположения по причинам "
298318 "приватности."
299319
300 #: ../data/empathy.schemas.in.h:62
320 #: ../data/org.gnome.Empathy.gschema.xml.in.h:66
301321 msgid ""
302322 "Whether Empathy should use the avatar of the contact as the chat window icon."
303323 msgstr "Использовать ли аватар собеседника в качестве значка окна беседы."
304324
305 #: ../data/empathy.schemas.in.h:63
325 #: ../data/org.gnome.Empathy.gschema.xml.in.h:67
306326 msgid ""
307327 "Whether WebKit developer tools, such as the Web Inspector, should be enabled."
308328 msgstr ""
309329 "Должны ли быть включены инструменты разработчика WebKit, например Web "
310330 "Inspector."
311331
312 #: ../data/empathy.schemas.in.h:64
332 #: ../data/org.gnome.Empathy.gschema.xml.in.h:68
313333 msgid ""
314334 "Whether connectivity managers should be used to automatically disconnect/"
315335 "reconnect."
317337 "Использовать ли менеджеры связности для автоматического отключения или "
318338 "переподключения."
319339
320 #: ../data/empathy.schemas.in.h:65
340 #: ../data/org.gnome.Empathy.gschema.xml.in.h:69
321341 msgid ""
322342 "Whether to check words typed against the languages you want to check with."
323343 msgstr "Проверять ли введённые слова из списка языков для проверки орфографии."
324344
325 #: ../data/empathy.schemas.in.h:66
345 #: ../data/org.gnome.Empathy.gschema.xml.in.h:70
326346 msgid "Whether to convert smileys into graphical images in conversations."
327347 msgstr ""
328348 "Преобразовывать ли текстовые улыбки (смайлы) в беседах в графические "
329349 "изображения."
330350
331 #: ../data/empathy.schemas.in.h:67
351 #: ../data/org.gnome.Empathy.gschema.xml.in.h:71
332352 msgid "Whether to play a sound to notify of contacts logging into the network."
333353 msgstr "Воспроизводить ли звук для уведомления о входе собеседников в сеть."
334354
335 #: ../data/empathy.schemas.in.h:68
355 #: ../data/org.gnome.Empathy.gschema.xml.in.h:72
336356 msgid ""
337357 "Whether to play a sound to notify of contacts logging out of the network."
338358 msgstr "Воспроизводить ли звук для уведомления о выходе собеседников из сети."
339359
340 #: ../data/empathy.schemas.in.h:69
360 #: ../data/org.gnome.Empathy.gschema.xml.in.h:73
341361 msgid "Whether to play a sound to notify of events."
342362 msgstr "Воспроизводить ли звук для уведомления о событиях."
343363
344 #: ../data/empathy.schemas.in.h:70
364 #: ../data/org.gnome.Empathy.gschema.xml.in.h:74
345365 msgid "Whether to play a sound to notify of incoming messages."
346366 msgstr "Воспроизводить ли звук для уведомления о входящих сообщениях."
347367
348 #: ../data/empathy.schemas.in.h:71
368 #: ../data/org.gnome.Empathy.gschema.xml.in.h:75
349369 msgid "Whether to play a sound to notify of new conversations."
350370 msgstr "Воспроизводить ли звук для уведомления о начале новой беседы."
351371
352 #: ../data/empathy.schemas.in.h:72
372 #: ../data/org.gnome.Empathy.gschema.xml.in.h:76
353373 msgid "Whether to play a sound to notify of outgoing messages."
354374 msgstr "Воспроизводить ли звук для уведомления об исходящих сообщениях."
355375
356 #: ../data/empathy.schemas.in.h:73
376 #: ../data/org.gnome.Empathy.gschema.xml.in.h:77
357377 msgid "Whether to play a sound when logging into a network."
358378 msgstr "Воспроизводить ли звук при входе в сеть."
359379
360 #: ../data/empathy.schemas.in.h:74
380 #: ../data/org.gnome.Empathy.gschema.xml.in.h:78
361381 msgid "Whether to play a sound when logging out of a network."
362382 msgstr "Воспроизводить ли звук при выходе из сети."
363383
364 #: ../data/empathy.schemas.in.h:75
384 #: ../data/org.gnome.Empathy.gschema.xml.in.h:79
365385 msgid "Whether to play sound notifications when away or busy."
366386 msgstr ""
367387 "Воспроизводить ли звуковые уведомления в состояниях «отошёл» или «занят»."
368388
369 #: ../data/empathy.schemas.in.h:76
389 #: ../data/org.gnome.Empathy.gschema.xml.in.h:80
370390 msgid "Whether to show a popup notification when a contact goes offline."
371391 msgstr ""
372392 "Показывать ли всплывающее уведомление, когда собеседник выходит из сети."
373393
374 #: ../data/empathy.schemas.in.h:77
394 #: ../data/org.gnome.Empathy.gschema.xml.in.h:81
375395 msgid "Whether to show a popup notification when a contact goes online."
376396 msgstr ""
377397 "Показывать ли всплывающее уведомление, когда собеседник выходит в сеть."
378398
379 #: ../data/empathy.schemas.in.h:78
399 #: ../data/org.gnome.Empathy.gschema.xml.in.h:82
380400 msgid ""
381401 "Whether to show a popup notification when receiving a new message even if "
382402 "the chat is already opened, but not focused."
384404 "Показывать ли всплывающее уведомление о получении нового сообщения, когда "
385405 "беседа уже ведётся, но не находится в фокусе."
386406
387 #: ../data/empathy.schemas.in.h:79
407 #: ../data/org.gnome.Empathy.gschema.xml.in.h:83
388408 msgid "Whether to show a popup notification when receiving a new message."
389409 msgstr "Показывать ли всплывающее уведомление при получении нового сообщения."
390410
391 #: ../data/empathy.schemas.in.h:80
411 #: ../data/org.gnome.Empathy.gschema.xml.in.h:84
392412 msgid ""
393413 "Whether to show avatars for contacts in the contact list and chat windows."
394414 msgstr ""
395415 "Показывать ли аватары собеседников в списке собеседников и окнах беседы."
396416
397 #: ../data/empathy.schemas.in.h:81
417 #: ../data/org.gnome.Empathy.gschema.xml.in.h:85
398418 msgid "Whether to show contacts that are offline in the contact list."
399419 msgstr "Показывать ли собеседников не в сети."
400420
401 #: ../data/empathy.schemas.in.h:82
421 #: ../data/org.gnome.Empathy.gschema.xml.in.h:86
402422 msgid "Whether to show popup notifications when away or busy."
403423 msgstr "Показывать ли всплывающие уведомления «отошёл» или «занят»."
404424
405 #: ../data/empathy.schemas.in.h:83
425 #: ../data/org.gnome.Empathy.gschema.xml.in.h:87
406426 msgid "Whether to show protocols for contacts in the contact list."
407427 msgstr "Показывать ли протоколы для собеседников в списке собеседников."
408428
409 #: ../data/empathy.schemas.in.h:84
429 #: ../data/org.gnome.Empathy.gschema.xml.in.h:88
410430 msgid "Whether to show the contact list in chat rooms."
411431 msgstr "Показывать ли список собеседников в комнатах."
412432
413 #: ../data/empathy.schemas.in.h:85
433 #: ../data/org.gnome.Empathy.gschema.xml.in.h:89
414434 msgid "Whether to show the contact list in compact mode."
415435 msgstr "Показывать ли компактный список собеседников."
416436
417 #: ../data/empathy.schemas.in.h:86
437 #: ../data/org.gnome.Empathy.gschema.xml.in.h:90
418438 msgid ""
419439 "Whether to show the message dialog about closing the main window with the "
420440 "'x' button in the title bar."
422442 "Показывать ли диалоговое окно при закрытии главного окна с помощью кнопки «x» "
423443 "в строке заголовка."
424444
425 #: ../data/empathy.schemas.in.h:87
445 #: ../data/org.gnome.Empathy.gschema.xml.in.h:91
426446 msgid "Whether to use the theme for chat rooms."
427447 msgstr "Использовать ли темы для комнат."
428448
429 #: ../data/empathy.schemas.in.h:88
449 #: ../data/org.gnome.Empathy.gschema.xml.in.h:92
430450 msgid ""
431451 "Which criterion to use when sorting the contact list. Default is to sort by "
432452 "the contact's name with the value \"name\". A value of \"state\" will sort "
442462
443463 #. Tweak the dialog
444464 #: ../data/empathy-accounts.desktop.in.in.h:2
445 #: ../src/empathy-accounts-dialog.c:2066 ../src/cc-empathy-accounts-page.c:243
446 #: ../src/cc-empathy-accounts-panel.c:91
465 #: ../src/empathy-accounts-dialog.c:2092
447466 msgid "Messaging and VoIP Accounts"
448467 msgstr "Учётные записи обмена сообщениями и VoIP"
449468
450 #: ../libempathy/empathy-ft-handler.c:842
469 #: ../libempathy/empathy-ft-handler.c:843
451470 msgid "The hash of the received file and the sent one do not match"
452471 msgstr "Хэш принятого файла не совпадает с хэшем отправленного"
453472
454 #: ../libempathy/empathy-ft-handler.c:1102
473 #: ../libempathy/empathy-ft-handler.c:1103
455474 msgid "File transfer not supported by remote contact"
456475 msgstr "Удалённый собеседник не поддерживает передачу файлов"
457476
458 #: ../libempathy/empathy-ft-handler.c:1160
477 #: ../libempathy/empathy-ft-handler.c:1161
459478 msgid "The selected file is not a regular file"
460479 msgstr "Выбранный файл не является обычным файлом"
461480
462 #: ../libempathy/empathy-ft-handler.c:1169
481 #: ../libempathy/empathy-ft-handler.c:1170
463482 msgid "The selected file is empty"
464483 msgstr "Выбранный файл пуст"
465484
466 #: ../libempathy/empathy-tp-contact-list.c:834
467 #: ../src/empathy-auto-salut-account-helper.c:77
468 msgid "People nearby"
469 msgstr "Люди поблизости"
470
471 #: ../libempathy/empathy-tp-file.c:280
485 #: ../libempathy/empathy-tp-file.c:281
472486 msgid "Socket type not supported"
473487 msgstr "Тип «сокет» не поддерживается"
474488
475 #: ../libempathy/empathy-tp-file.c:399
489 #: ../libempathy/empathy-tp-file.c:400
476490 msgid "No reason was specified"
477491 msgstr "Причина не указана"
478492
479 #: ../libempathy/empathy-tp-file.c:402
493 #: ../libempathy/empathy-tp-file.c:403
480494 msgid "The change in state was requested"
481495 msgstr "Получен запрос об изменении состояния"
482496
483 #: ../libempathy/empathy-tp-file.c:405
497 #: ../libempathy/empathy-tp-file.c:406
484498 msgid "You canceled the file transfer"
485499 msgstr "Передача файла была прервана"
486500
487 #: ../libempathy/empathy-tp-file.c:408
501 #: ../libempathy/empathy-tp-file.c:409
488502 msgid "The other participant canceled the file transfer"
489503 msgstr "Собеседник прервал передачу файла"
490504
491 #: ../libempathy/empathy-tp-file.c:411
505 #: ../libempathy/empathy-tp-file.c:412
492506 msgid "Error while trying to transfer the file"
493507 msgstr "Во время передачи файла возникла ошибка"
494508
495 #: ../libempathy/empathy-tp-file.c:414
509 #: ../libempathy/empathy-tp-file.c:415
496510 msgid "The other participant is unable to transfer the file"
497511 msgstr "Собеседник не может передавать файлы"
498512
499 #: ../libempathy/empathy-tp-file.c:417 ../libempathy/empathy-utils.c:314
513 #: ../libempathy/empathy-tp-file.c:418 ../libempathy/empathy-utils.c:320
500514 msgid "Unknown reason"
501515 msgstr "Неизвестная причина"
502516
503 #: ../libempathy/empathy-utils.c:238
517 #: ../libempathy/empathy-utils.c:243
504518 msgid "Available"
505519 msgstr "Доступен"
506520
507 #: ../libempathy/empathy-utils.c:240
521 #: ../libempathy/empathy-utils.c:245
508522 msgid "Busy"
509523 msgstr "Занят"
510524
511 #: ../libempathy/empathy-utils.c:243
525 #: ../libempathy/empathy-utils.c:248
512526 msgid "Away"
513527 msgstr "Отошёл"
514528
515 #: ../libempathy/empathy-utils.c:245
529 #: ../libempathy/empathy-utils.c:250
516530 msgid "Invisible"
517531 msgstr "Невидимый"
518532
519 #: ../libempathy/empathy-utils.c:247
533 #: ../libempathy/empathy-utils.c:252
520534 msgid "Offline"
521535 msgstr "Не в сети"
522536
523 #: ../libempathy/empathy-utils.c:286
537 #: ../libempathy/empathy-utils.c:254 ../src/empathy-call-window.c:1763
538 #: ../src/empathy-call-window.c:1764 ../src/empathy-call-window.c:1765
539 #: ../src/empathy-call-window.c:1766 ../src/empathy-call-window.ui.h:16
540 #, fuzzy
541 msgid "Unknown"
542 msgstr "Неизвестен"
543
544 #: ../libempathy/empathy-utils.c:292
524545 msgid "No reason specified"
525546 msgstr "Причина не указана"
526547
527 #: ../libempathy/empathy-utils.c:288
548 #: ../libempathy/empathy-utils.c:294
528549 msgid "Status is set to offline"
529550 msgstr "Установлен статус «не в сети»"
530551
531 #: ../libempathy/empathy-utils.c:290
552 #: ../libempathy/empathy-utils.c:296
532553 msgid "Network error"
533554 msgstr "Ошибка сети"
534555
535 #: ../libempathy/empathy-utils.c:292
556 #: ../libempathy/empathy-utils.c:298
536557 msgid "Authentication failed"
537558 msgstr "Аутентификация не удалась"
538559
539 #: ../libempathy/empathy-utils.c:294
560 #: ../libempathy/empathy-utils.c:300
540561 msgid "Encryption error"
541562 msgstr "Ошибка шифрования"
542563
543 #: ../libempathy/empathy-utils.c:296
564 #: ../libempathy/empathy-utils.c:302
544565 msgid "Name in use"
545566 msgstr "Имя уже занято"
546567
547 #: ../libempathy/empathy-utils.c:298
568 #: ../libempathy/empathy-utils.c:304
548569 msgid "Certificate not provided"
549570 msgstr "Сертификат недоступен"
550571
551 #: ../libempathy/empathy-utils.c:300
572 #: ../libempathy/empathy-utils.c:306
552573 msgid "Certificate untrusted"
553574 msgstr "Сертификат не является доверенным"
554575
555 #: ../libempathy/empathy-utils.c:302
576 #: ../libempathy/empathy-utils.c:308
556577 msgid "Certificate expired"
557578 msgstr "Сертификат устарел"
558579
559 #: ../libempathy/empathy-utils.c:304
580 #: ../libempathy/empathy-utils.c:310
560581 msgid "Certificate not activated"
561582 msgstr "Сертификат не активирован"
562583
563 #: ../libempathy/empathy-utils.c:306
584 #: ../libempathy/empathy-utils.c:312
564585 msgid "Certificate hostname mismatch"
565586 msgstr "Сертификат с ошибкой в имени узла"
566587
567 #: ../libempathy/empathy-utils.c:308
588 #: ../libempathy/empathy-utils.c:314
568589 msgid "Certificate fingerprint mismatch"
569590 msgstr "Отпечатки сертификатов не совпадают"
570591
571 #: ../libempathy/empathy-utils.c:310
592 #: ../libempathy/empathy-utils.c:316
572593 msgid "Certificate self-signed"
573594 msgstr "Сертификат подписан самостоятельно"
574595
575 #: ../libempathy/empathy-utils.c:312
596 #: ../libempathy/empathy-utils.c:318
576597 msgid "Certificate error"
577598 msgstr "Ошибка сертификата"
578599
579 #: ../libempathy/empathy-utils.c:429 ../src/empathy-import-mc4-accounts.c:104
600 #: ../libempathy/empathy-utils.c:435
580601 msgid "People Nearby"
581602 msgstr "Люди поблизости"
582603
583 #: ../libempathy/empathy-utils.c:434
604 #: ../libempathy/empathy-utils.c:440
584605 msgid "Yahoo! Japan"
585606 msgstr "Yahoo! Япония"
586607
587 #: ../libempathy/empathy-utils.c:435
608 #: ../libempathy/empathy-utils.c:441
588609 msgid "Facebook Chat"
589610 msgstr "Беседа Facebook"
590611
640661 msgid "in the future"
641662 msgstr "в будущем"
642663
643 #: ../libempathy-gtk/empathy-account-chooser.c:462
664 #: ../libempathy-gtk/empathy-account-chooser.c:463
644665 msgid "All"
645666 msgstr "Все"
646667
647 #: ../libempathy-gtk/empathy-account-widget.c:538
648 #: ../libempathy-gtk/empathy-account-widget.c:594
668 #: ../libempathy-gtk/empathy-account-widget.c:549
669 #: ../libempathy-gtk/empathy-account-widget.c:605
649670 #, c-format
650671 msgid "%s:"
651672 msgstr "%s:"
652673
653 #: ../libempathy-gtk/empathy-account-widget.c:1126
674 #: ../libempathy-gtk/empathy-account-widget.c:1136
654675 msgid "Username:"
655676 msgstr "Имя пользователя:"
656677
657 #: ../libempathy-gtk/empathy-account-widget.c:1474
678 #: ../libempathy-gtk/empathy-account-widget.c:1479
658679 msgid "L_og in"
659680 msgstr "_Войти"
660681
661 #: ../libempathy-gtk/empathy-account-widget.c:1542
682 #: ../libempathy-gtk/empathy-account-widget.c:1547
662683 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
663684 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
664685 #: ../src/empathy-chatrooms-window.ui.h:1
666687 msgid "Account:"
667688 msgstr "Учётная запись:"
668689
669 #: ../libempathy-gtk/empathy-account-widget.c:1553
690 #: ../libempathy-gtk/empathy-account-widget.c:1558
670691 msgid "Enabled"
671692 msgstr "Включено"
672693
673 #: ../libempathy-gtk/empathy-account-widget.c:1618
694 #: ../libempathy-gtk/empathy-account-widget.c:1623
674695 msgid "This account already exists on the server"
675696 msgstr "Эта учётная запись уже существует на сервере"
676697
677 #: ../libempathy-gtk/empathy-account-widget.c:1621
698 #: ../libempathy-gtk/empathy-account-widget.c:1626
678699 msgid "Create a new account on the server"
679700 msgstr "Создать новую учётную запись на сервере"
680701
683704 #. * like: "MyUserName on chat.freenode.net".
684705 #. * You should reverse the order of these arguments if the
685706 #. * server should come before the login id in your locale.
686 #: ../libempathy-gtk/empathy-account-widget.c:2013
707 #: ../libempathy-gtk/empathy-account-widget.c:1995
687708 #, c-format
688709 msgid "%1$s on %2$s"
689710 msgstr "%1$s на %2$s"
690711
691712 #. To translators: The parameter is the protocol name. The resulting
692713 #. * string will be something like: "Jabber Account"
693 #: ../libempathy-gtk/empathy-account-widget.c:2039
714 #: ../libempathy-gtk/empathy-account-widget.c:2021
694715 #, c-format
695716 msgid "%s Account"
696717 msgstr "Учётная запись %s"
697718
698 #: ../libempathy-gtk/empathy-account-widget.c:2043
719 #: ../libempathy-gtk/empathy-account-widget.c:2025
699720 msgid "New account"
700721 msgstr "Новая учётная запись"
701722
720741 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:4
721742 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
722743 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
723 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
744 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
724745 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
725746 msgid "Pass_word:"
726747 msgstr "_Пароль:"
740761 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:7
741762 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:7
742763 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:8
743 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
764 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
744765 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:7
745766 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:10
746767 msgid "_Port:"
749770 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:8
750771 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:8
751772 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:9
752 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
773 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:25
753774 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:8
754775 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:12
755776 #: ../src/empathy-new-chatroom-dialog.ui.h:9
796817 msgid "_Character set:"
797818 msgstr "_Кодировка:"
798819
799 #: ../libempathy-gtk/empathy-account-widget-irc.c:244
820 #: ../libempathy-gtk/empathy-account-widget-irc.c:245
800821 msgid "New Network"
801822 msgstr "Новая сеть"
802823
803 #: ../libempathy-gtk/empathy-account-widget-sip.c:184
804 #: ../libempathy-gtk/empathy-account-widget-sip.c:217
824 #: ../libempathy-gtk/empathy-account-widget-sip.c:183
825 #: ../libempathy-gtk/empathy-account-widget-sip.c:216
805826 msgid "Auto"
806827 msgstr "Автоматический"
807828
808 #: ../libempathy-gtk/empathy-account-widget-sip.c:187
829 #: ../libempathy-gtk/empathy-account-widget-sip.c:186
809830 msgid "UDP"
810831 msgstr "UDP"
811832
812 #: ../libempathy-gtk/empathy-account-widget-sip.c:190
833 #: ../libempathy-gtk/empathy-account-widget-sip.c:189
813834 msgid "TCP"
814835 msgstr "TCP"
815836
816 #: ../libempathy-gtk/empathy-account-widget-sip.c:193
837 #: ../libempathy-gtk/empathy-account-widget-sip.c:192
817838 msgid "TLS"
818839 msgstr "TLS"
819840
820841 #. translators: this string is very specific to SIP's internal; maybe
821842 #. * best to keep the English version.
822 #: ../libempathy-gtk/empathy-account-widget-sip.c:222
843 #: ../libempathy-gtk/empathy-account-widget-sip.c:221
823844 msgid "Register"
824845 msgstr "Register"
825846
826847 #. translators: this string is very specific to SIP's internal; maybe
827848 #. * best to keep the English version.
828 #: ../libempathy-gtk/empathy-account-widget-sip.c:227
849 #: ../libempathy-gtk/empathy-account-widget-sip.c:226
829850 msgid "Options"
830851 msgstr "Options"
831852
832 #: ../libempathy-gtk/empathy-account-widget-sip.c:230
853 #: ../libempathy-gtk/empathy-account-widget-sip.c:229
833854 msgid "None"
834855 msgstr "Отсутствует"
835856
885906 msgid "Reso_urce:"
886907 msgstr "Ре_сурс:"
887908
888 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
909 #. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice.
910 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
889911 msgid ""
890912 "This is your username, not your normal Facebook login.\n"
891913 "If you are facebook.com/<b>badger</b>, enter <b>badger</b>.\n"
897919 "Используйте <a href=\"http://www.facebook.com/username/\">эту страницу</a> "
898920 "для выбора имени пользователя Facebook, если у вас его ещё нет."
899921
900 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:12
922 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
901923 msgid "Use old SS_L"
902924 msgstr "Использовать старое _шифрование (SSL)"
903925
904 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
926 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
905927 msgid "What is your Facebook password?"
906928 msgstr "Какой у вас пароль Facebook?"
907929
908 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
930 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
909931 msgid "What is your Facebook username?"
910932 msgstr "Какое у вас имя пользователя Facebook?"
911933
912 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
934 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
913935 msgid "What is your Google ID?"
914936 msgstr "Какой у вас Google ID?"
915937
916 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
938 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
917939 msgid "What is your Google password?"
918940 msgstr "Какой у вас пароль Google?"
919941
920 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
942 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
921943 msgid "What is your Jabber ID?"
922944 msgstr "Какой у вас Jabber ID?"
923945
924 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
946 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
925947 msgid "What is your Jabber password?"
926948 msgstr "Какой у вас пароль Jabber?"
927949
928 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
950 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
929951 msgid "What is your desired Jabber ID?"
930952 msgstr "Какой Jabber ID вы хотите?"
931953
932 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
954 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
933955 msgid "What is your desired Jabber password?"
934956 msgstr "Какой пароль Jabber вы хотите?"
935957
936 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
958 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
937959 msgid "_Encryption required (TLS/SSL)"
938960 msgstr "Требуется шифров_ание (TLS/SSL)"
939961
940 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
962 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
941963 msgid "_Ignore SSL certificate errors"
942964 msgstr "_Игнорировать ошибки сертификатов SSL"
943965
9941016 msgstr "Автоматический поиск сервера STUN"
9951017
9961018 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
997 msgid "Hostname of the proxy for outbound requests."
998 msgstr "Имя хоста прокси для исходящих запросов"
999
1000 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
10011019 msgid "Interval (seconds)"
10021020 msgstr "Интервал (в секундах)"
10031021
1004 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
1022 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
10051023 msgid "Keep-Alive Options"
10061024 msgstr "Параметры Keep-Alive"
10071025
1008 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
1009 msgid ""
1010 "Look up the DNS SRV record at the service's domain for the host name of a "
1011 "STUN server."
1012 msgstr "Искать запись DNS SRV в домене службы для имени хоста сервера STUN."
1013
1014 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
1026 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
10151027 msgid "Loose Routing"
10161028 msgstr "Свободная маршрутизация"
10171029
1018 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
1030 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
10191031 msgid "Mechanism:"
10201032 msgstr "Механизм:"
10211033
1022 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
1034 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
10231035 msgid "Miscellaneous Options"
10241036 msgstr "Различные параметры"
10251037
1026 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
1038 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
10271039 msgid "NAT Traversal Options"
10281040 msgstr "Параметры NAT Traversal"
10291041
1030 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
1031 msgid "Port of the proxy for outbound requests."
1032 msgstr "Порт прокси для исходящих запросов."
1033
1034 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
1042 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
10351043 msgid "Port:"
10361044 msgstr "Порт:"
10371045
1038 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
1046 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
10391047 msgid "Proxy Options"
10401048 msgstr "Параметры прокси"
10411049
1042 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
1050 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
10431051 msgid "STUN Server:"
10441052 msgstr "Сервер STUN:"
10451053
1046 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
1054 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
10471055 msgid "Server:"
10481056 msgstr "Сервер:"
10491057
1050 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
1051 msgid ""
1052 "The username for SIP authentication, if different from the SIP URI\n"
1053 "username."
1054 msgstr ""
1055 "Имя пользователя для аутентификации SIP, если оно отличается\n"
1056 "от имени пользователя SIP URI."
1057
1058 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
1058 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
10591059 msgid "Transport:"
10601060 msgstr "Транспорт:"
10611061
1062 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
1063 msgid ""
1064 "Update the registration binding if the external address for the client is "
1065 "discovered to be different from the local binding."
1066 msgstr ""
1067 "Обновлять регистрационное соединение, если обнаружено, что внешний адрес для "
1068 "клиента отличается от локального соединения."
1069
1070 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:24
1071 msgid ""
1072 "Use the loose routing behavior and the Route header as recommended in RFC "
1073 "3261."
1074 msgstr ""
1075 "Использовать свободную маршрутизацию и заголовок маршрута, как рекомендуется "
1076 "в RFC 3261."
1077
1078 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:25
1062 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
10791063 msgid "What is your SIP account password?"
10801064 msgstr "Какой у вас пароль учётной записи SIP?"
10811065
1082 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:26
1066 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
10831067 msgid "What is your SIP login ID?"
10841068 msgstr "Какой у вас ID входа для SIP?"
10851069
1086 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:27
1070 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
10871071 msgid "_Username:"
10881072 msgstr "_Имя:"
10891073
11111095 msgid "_Room List locale:"
11121096 msgstr "_Локаль списка бесед:"
11131097
1114 #: ../libempathy-gtk/empathy-avatar-chooser.c:449
1115 #: ../libempathy-gtk/empathy-avatar-chooser.c:525
1098 #: ../libempathy-gtk/empathy-avatar-chooser.c:443
1099 #: ../libempathy-gtk/empathy-avatar-chooser.c:519
11161100 msgid "Couldn't convert image"
11171101 msgstr "Не удалось преобразовать изображение"
11181102
1119 #: ../libempathy-gtk/empathy-avatar-chooser.c:450
1103 #: ../libempathy-gtk/empathy-avatar-chooser.c:444
11201104 msgid "None of the accepted image formats are supported on your system"
11211105 msgstr ""
11221106 "Ни один из разрешённых форматов изображений не поддерживается в вашей системе"
11231107
1124 #: ../libempathy-gtk/empathy-avatar-chooser.c:915
1108 #: ../libempathy-gtk/empathy-avatar-chooser.c:935
11251109 msgid "Select Your Avatar Image"
11261110 msgstr "Выберите изображение для аватара"
11271111
1128 #: ../libempathy-gtk/empathy-avatar-chooser.c:918
1112 #: ../libempathy-gtk/empathy-avatar-chooser.c:938
11291113 msgid "No Image"
11301114 msgstr "Нет изображения"
11311115
1132 #: ../libempathy-gtk/empathy-avatar-chooser.c:980
1116 #: ../libempathy-gtk/empathy-avatar-chooser.c:1000
11331117 msgid "Images"
11341118 msgstr "Изображения"
11351119
1136 #: ../libempathy-gtk/empathy-avatar-chooser.c:984
1120 #: ../libempathy-gtk/empathy-avatar-chooser.c:1004
11371121 msgid "All Files"
11381122 msgstr "Все файлы"
11391123
1140 #: ../libempathy-gtk/empathy-avatar-image.c:327
1124 #: ../libempathy-gtk/empathy-avatar-image.c:325
11411125 msgid "Click to enlarge"
11421126 msgstr "Щёлкните для увеличения"
11431127
1144 #: ../libempathy-gtk/empathy-chat.c:233
1145 msgid "Failed to reconnect this chat"
1146 msgstr "Не удалсь повторно подключиться к этому чату"
1147
1148 #: ../libempathy-gtk/empathy-chat.c:655
1149 msgid "Failed to join chat room"
1150 msgstr "Не удалось войти в комнату"
1151
1152 #: ../libempathy-gtk/empathy-chat.c:673
1128 #: ../libempathy-gtk/empathy-chat.c:645
11531129 msgid "Failed to open private chat"
11541130 msgstr "Не удалось открыть личную беседу"
11551131
1156 #: ../libempathy-gtk/empathy-chat.c:712
1132 #: ../libempathy-gtk/empathy-chat.c:685
11571133 msgid "Topic not supported on this conversation"
11581134 msgstr "В этой беседе темы не поддерживаются"
11591135
1160 #: ../libempathy-gtk/empathy-chat.c:718
1136 #: ../libempathy-gtk/empathy-chat.c:691
11611137 msgid "You are not allowed to change the topic"
11621138 msgstr "Вы не можете менять тему"
11631139
1164 #: ../libempathy-gtk/empathy-chat.c:847
1140 #: ../libempathy-gtk/empathy-chat.c:825
11651141 msgid "/clear: clear all messages from the current conversation"
11661142 msgstr "/clear: очистить все сообщения в текущей беседе"
11671143
1168 #: ../libempathy-gtk/empathy-chat.c:850
1144 #: ../libempathy-gtk/empathy-chat.c:828
11691145 msgid "/topic <topic>: set the topic of the current conversation"
11701146 msgstr "/topic <тема>: установить тему текущей беседы"
11711147
1172 #: ../libempathy-gtk/empathy-chat.c:853
1148 #: ../libempathy-gtk/empathy-chat.c:831
11731149 msgid "/join <chat room ID>: join a new chat room"
11741150 msgstr "/join <ID комнаты>: войти в новую комнату"
11751151
1176 #: ../libempathy-gtk/empathy-chat.c:856
1152 #: ../libempathy-gtk/empathy-chat.c:834
11771153 msgid "/j <chat room ID>: join a new chat room"
11781154 msgstr "/j <ID комнаты>: войти в новую комнату"
11791155
1180 #: ../libempathy-gtk/empathy-chat.c:859
1156 #: ../libempathy-gtk/empathy-chat.c:839
11811157 msgid "/query <contact ID> [<message>]: open a private chat"
11821158 msgstr "/query <ID контакта> [<сообщение>]: открыть личную беседу"
11831159
1184 #: ../libempathy-gtk/empathy-chat.c:862
1160 #: ../libempathy-gtk/empathy-chat.c:842
11851161 msgid "/msg <contact ID> <message>: open a private chat"
11861162 msgstr "/msg <ID контакта> <сообщение>: открыть личную беседу"
11871163
1188 #: ../libempathy-gtk/empathy-chat.c:865
1164 #: ../libempathy-gtk/empathy-chat.c:846
11891165 msgid "/nick <nickname>: change your nickname on the current server"
11901166 msgstr "/nick <псевдоним>: изменить псевдоним на текущем сервере"
11911167
1192 #: ../libempathy-gtk/empathy-chat.c:868
1168 #: ../libempathy-gtk/empathy-chat.c:849
11931169 msgid "/me <message>: send an ACTION message to the current conversation"
11941170 msgstr "/me <сообщение>: отправить сообщение о ДЕЙСТВИИ"
11951171
1196 #: ../libempathy-gtk/empathy-chat.c:871
1172 #: ../libempathy-gtk/empathy-chat.c:852
11971173 msgid ""
11981174 "/say <message>: send <message> to the current conversation. This is used to "
11991175 "send a message starting with a '/'. For example: \"/say /join is used to "
12031179 "отправки сообщения, начинающегося с «/». Например: «/say /join используется "
12041180 "для входа в новую комнату»"
12051181
1206 #: ../libempathy-gtk/empathy-chat.c:876
1182 #: ../libempathy-gtk/empathy-chat.c:857
12071183 msgid ""
12081184 "/help [<command>]: show all supported commands. If <command> is defined, "
12091185 "show its usage."
12111187 "/help [<команда>]: показать все поддерживаемые команды. Если <команда> "
12121188 "определена, показать её использование."
12131189
1214 #: ../libempathy-gtk/empathy-chat.c:886
1190 #: ../libempathy-gtk/empathy-chat.c:867
12151191 #, c-format
12161192 msgid "Usage: %s"
12171193 msgstr "Использование: %s"
12181194
1219 #: ../libempathy-gtk/empathy-chat.c:915
1195 #: ../libempathy-gtk/empathy-chat.c:896
12201196 msgid "Unknown command"
12211197 msgstr "Неизвестная команда"
12221198
1223 #: ../libempathy-gtk/empathy-chat.c:1036
1199 #: ../libempathy-gtk/empathy-chat.c:1017
12241200 msgid "Unknown command; see /help for the available commands"
12251201 msgstr "Неизвестная команда; для всех доступных команд см. /help"
12261202
1227 #: ../libempathy-gtk/empathy-chat.c:1174
1203 #: ../libempathy-gtk/empathy-chat.c:1155
12281204 msgid "offline"
12291205 msgstr "не в сети"
12301206
1231 #: ../libempathy-gtk/empathy-chat.c:1177
1207 #: ../libempathy-gtk/empathy-chat.c:1158
12321208 msgid "invalid contact"
12331209 msgstr "неверный собеседник"
12341210
1235 #: ../libempathy-gtk/empathy-chat.c:1180
1211 #: ../libempathy-gtk/empathy-chat.c:1161
12361212 msgid "permission denied"
12371213 msgstr "отказано"
12381214
1239 #: ../libempathy-gtk/empathy-chat.c:1183
1215 #: ../libempathy-gtk/empathy-chat.c:1164
12401216 msgid "too long message"
12411217 msgstr "слишком длинное сообщение"
12421218
1243 #: ../libempathy-gtk/empathy-chat.c:1186
1219 #: ../libempathy-gtk/empathy-chat.c:1167
12441220 msgid "not implemented"
12451221 msgstr "эта возможность не санкционирована"
12461222
1247 #: ../libempathy-gtk/empathy-chat.c:1189
1223 #: ../libempathy-gtk/empathy-chat.c:1170
12481224 msgid "unknown"
12491225 msgstr "неизвестно"
12501226
1251 #: ../libempathy-gtk/empathy-chat.c:1193
1227 #: ../libempathy-gtk/empathy-chat.c:1174
12521228 #, c-format
12531229 msgid "Error sending message '%s': %s"
12541230 msgstr "Ошибка при отправке сообщения «%s»: %s"
12551231
1256 #: ../libempathy-gtk/empathy-chat.c:1228
1232 #: ../libempathy-gtk/empathy-chat.c:1284 ../src/empathy-chat-window.c:691
1233 msgid "Topic:"
1234 msgstr "Тема:"
1235
1236 #: ../libempathy-gtk/empathy-chat.c:1296
12571237 #, c-format
12581238 msgid "Topic set to: %s"
12591239 msgstr "Тема: %s"
12601240
1261 #: ../libempathy-gtk/empathy-chat.c:1230
1241 #: ../libempathy-gtk/empathy-chat.c:1298
12621242 msgid "No topic defined"
12631243 msgstr "Тема не установлена"
12641244
1265 #: ../libempathy-gtk/empathy-chat.c:1629
1245 #: ../libempathy-gtk/empathy-chat.c:1777
12661246 msgid "(No Suggestions)"
12671247 msgstr "(Нет предположений)"
12681248
1269 #: ../libempathy-gtk/empathy-chat.c:1683
1249 #: ../libempathy-gtk/empathy-chat.c:1831
12701250 msgid "Insert Smiley"
12711251 msgstr "Вставить улыбку"
12721252
12731253 #. send button
1274 #: ../libempathy-gtk/empathy-chat.c:1701
1275 #: ../libempathy-gtk/empathy-ui-utils.c:1626
1254 #: ../libempathy-gtk/empathy-chat.c:1849
1255 #: ../libempathy-gtk/empathy-ui-utils.c:1799
12761256 msgid "_Send"
12771257 msgstr "От_править"
12781258
1279 #: ../libempathy-gtk/empathy-chat.c:1735
1259 #: ../libempathy-gtk/empathy-chat.c:1883
12801260 msgid "_Spelling Suggestions"
12811261 msgstr "_Варианты правописания"
12821262
1283 #: ../libempathy-gtk/empathy-chat.c:1829
1263 #: ../libempathy-gtk/empathy-chat.c:1960
12841264 msgid "Failed to retrieve recent logs"
12851265 msgstr "Не удалось получить последние журналы"
12861266
1287 #: ../libempathy-gtk/empathy-chat.c:1960
1267 #: ../libempathy-gtk/empathy-chat.c:2066
12881268 #, c-format
12891269 msgid "%s has disconnected"
12901270 msgstr "%s отключился"
12921272 #. translators: reverse the order of these arguments
12931273 #. * if the kicked should come before the kicker in your locale.
12941274 #.
1295 #: ../libempathy-gtk/empathy-chat.c:1967
1275 #: ../libempathy-gtk/empathy-chat.c:2073
12961276 #, c-format
12971277 msgid "%1$s was kicked by %2$s"
12981278 msgstr "%2$s выгнал %1$s"
12991279
1300 #: ../libempathy-gtk/empathy-chat.c:1970
1280 #: ../libempathy-gtk/empathy-chat.c:2076
13011281 #, c-format
13021282 msgid "%s was kicked"
13031283 msgstr "%s выгнали"
13051285 #. translators: reverse the order of these arguments
13061286 #. * if the banned should come before the banner in your locale.
13071287 #.
1308 #: ../libempathy-gtk/empathy-chat.c:1978
1288 #: ../libempathy-gtk/empathy-chat.c:2084
13091289 #, c-format
13101290 msgid "%1$s was banned by %2$s"
13111291 msgstr "%2$s забанил %1$s"
13121292
1313 #: ../libempathy-gtk/empathy-chat.c:1981
1293 #: ../libempathy-gtk/empathy-chat.c:2087
13141294 #, c-format
13151295 msgid "%s was banned"
13161296 msgstr "%s забанили"
13171297
1318 #: ../libempathy-gtk/empathy-chat.c:1985
1298 #: ../libempathy-gtk/empathy-chat.c:2091
13191299 #, c-format
13201300 msgid "%s has left the room"
13211301 msgstr "%s покинул беседу"
13251305 #. * given by the user living the room. If this poses a problem,
13261306 #. * please let us know. :-)
13271307 #.
1328 #: ../libempathy-gtk/empathy-chat.c:1994
1308 #: ../libempathy-gtk/empathy-chat.c:2100
13291309 #, c-format
13301310 msgid " (%s)"
13311311 msgstr " (%s)"
13321312
1333 #: ../libempathy-gtk/empathy-chat.c:2019
1313 #: ../libempathy-gtk/empathy-chat.c:2125
13341314 #, c-format
13351315 msgid "%s has joined the room"
13361316 msgstr "%s присоединился к беседе"
13371317
1338 #: ../libempathy-gtk/empathy-chat.c:2044
1318 #: ../libempathy-gtk/empathy-chat.c:2150
13391319 #, c-format
13401320 msgid "%s is now known as %s"
13411321 msgstr "%s теперь известен как %s"
13421322
1343 #: ../libempathy-gtk/empathy-chat.c:2179 ../src/empathy-call-window.c:1532
1323 #: ../libempathy-gtk/empathy-chat.c:2289 ../src/empathy-call-window.c:1802
13441324 msgid "Disconnected"
13451325 msgstr "Отсоединён"
13461326
1347 #: ../libempathy-gtk/empathy-chat.c:2701
1327 #: ../libempathy-gtk/empathy-chat.c:2927
13481328 msgid "Wrong password; please try again:"
13491329 msgstr "Неправильный пароль. Попробуйте снова:"
13501330
1351 #: ../libempathy-gtk/empathy-chat.c:2702
1331 #: ../libempathy-gtk/empathy-chat.c:2928
13521332 msgid "Retry"
13531333 msgstr "Повторить"
13541334
1355 #: ../libempathy-gtk/empathy-chat.c:2707
1335 #: ../libempathy-gtk/empathy-chat.c:2933
13561336 msgid "This room is protected by a password:"
13571337 msgstr "Эта комната защищена паролем:"
13581338
1359 #: ../libempathy-gtk/empathy-chat.c:2708
1339 #: ../libempathy-gtk/empathy-chat.c:2934
13601340 msgid "Join"
13611341 msgstr "Войти"
13621342
1363 #: ../libempathy-gtk/empathy-chat.c:2848
1343 #: ../libempathy-gtk/empathy-chat.c:3074
13641344 msgid "Connected"
13651345 msgstr "Соединён"
13661346
1367 #: ../libempathy-gtk/empathy-chat.c:2901
1368 #: ../libempathy-gtk/empathy-log-window.c:707
1347 #: ../libempathy-gtk/empathy-chat.c:3127
1348 #: ../libempathy-gtk/empathy-log-window.c:639
13691349 msgid "Conversation"
13701350 msgstr "Беседа"
13711351
1372 #: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:684
1373 msgid "Topic:"
1374 msgstr "Тема:"
1375
13761352 #. Copy Link Address menu item
1377 #: ../libempathy-gtk/empathy-chat-text-view.c:318
1378 #: ../libempathy-gtk/empathy-theme-adium.c:786
1353 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1354 #: ../libempathy-gtk/empathy-theme-adium.c:791
13791355 msgid "_Copy Link Address"
13801356 msgstr "_Копировать адрес ссылки"
13811357
13821358 #. Open Link menu item
1383 #: ../libempathy-gtk/empathy-chat-text-view.c:325
1384 #: ../libempathy-gtk/empathy-theme-adium.c:793
1359 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1360 #: ../libempathy-gtk/empathy-theme-adium.c:798
13851361 msgid "_Open Link"
13861362 msgstr "_Открыть ссылку"
13871363
13881364 #. Translators: timestamp displayed between conversations in
13891365 #. * chat windows (strftime format string)
1390 #: ../libempathy-gtk/empathy-chat-text-view.c:423
1366 #: ../libempathy-gtk/empathy-chat-text-view.c:424
13911367 msgid "%A %B %d %Y"
13921368 msgstr "%A %d %B %Y"
13931369
1394 #: ../libempathy-gtk/empathy-contact-dialogs.c:249
1370 #: ../libempathy-gtk/empathy-contact-dialogs.c:243
13951371 msgid "Edit Contact Information"
13961372 msgstr "Редактировать информацию о собеседнике"
13971373
1398 #: ../libempathy-gtk/empathy-contact-dialogs.c:301
1374 #: ../libempathy-gtk/empathy-contact-dialogs.c:295
13991375 msgid "Personal Information"
14001376 msgstr "Личная информация"
14011377
1402 #: ../libempathy-gtk/empathy-contact-dialogs.c:406
1378 #: ../libempathy-gtk/empathy-contact-dialogs.c:401
1379 #: ../libempathy-gtk/empathy-individual-dialogs.c:112
14031380 msgid "New Contact"
14041381 msgstr "Новый собеседник"
14051382
14111388 msgid "Subscription Request"
14121389 msgstr "Запрос на подписку"
14131390
1414 #: ../libempathy-gtk/empathy-contact-list-view.c:1633
1391 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1392 #: ../libempathy-gtk/empathy-individual-view.c:1999
14151393 #, c-format
14161394 msgid "Do you really want to remove the group '%s'?"
14171395 msgstr "Вы хотите удалить группу «%s»?"
14181396
1419 #: ../libempathy-gtk/empathy-contact-list-view.c:1635
1397 #: ../libempathy-gtk/empathy-contact-list-view.c:2008
1398 #: ../libempathy-gtk/empathy-individual-view.c:2002
14201399 msgid "Removing group"
14211400 msgstr "Удаляю группу"
14221401
14231402 #. Remove
1424 #: ../libempathy-gtk/empathy-contact-list-view.c:1684
1425 #: ../libempathy-gtk/empathy-contact-list-view.c:1761
1403 #: ../libempathy-gtk/empathy-contact-list-view.c:2057
1404 #: ../libempathy-gtk/empathy-contact-list-view.c:2134
1405 #: ../libempathy-gtk/empathy-individual-view.c:2056
1406 #: ../libempathy-gtk/empathy-individual-view.c:2141
14261407 #: ../src/empathy-accounts-dialog.ui.h:6
14271408 msgid "_Remove"
14281409 msgstr "_Удалить"
14291410
1430 #: ../libempathy-gtk/empathy-contact-list-view.c:1714
1411 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1412 #: ../libempathy-gtk/empathy-individual-view.c:2087
14311413 #, c-format
14321414 msgid "Do you really want to remove the contact '%s'?"
14331415 msgstr "Вы хотите удалить этого собеседника «%s» из вашего списка?"
14341416
1435 #: ../libempathy-gtk/empathy-contact-list-view.c:1716
1417 #: ../libempathy-gtk/empathy-contact-list-view.c:2089
1418 #: ../libempathy-gtk/empathy-individual-view.c:2089
14361419 msgid "Removing contact"
14371420 msgstr "Удаляю собеседника"
14381421
1439 #: ../libempathy-gtk/empathy-contact-menu.c:206
1440 #: ../src/empathy-main-window.ui.h:14
1422 #: ../libempathy-gtk/empathy-contact-menu.c:203
1423 #: ../libempathy-gtk/empathy-individual-menu.c:223
1424 #: ../src/empathy-main-window.ui.h:13
14411425 msgid "_Add Contact…"
14421426 msgstr "_Добавить собеседника…"
14431427
1444 #: ../libempathy-gtk/empathy-contact-menu.c:233
1445 #: ../src/empathy-main-window.ui.h:15
1428 #: ../libempathy-gtk/empathy-contact-menu.c:231
1429 #: ../libempathy-gtk/empathy-individual-menu.c:264
1430 #: ../src/empathy-main-window.ui.h:14
14461431 msgid "_Chat"
14471432 msgstr "_Разговор"
14481433
1449 #: ../libempathy-gtk/empathy-contact-menu.c:264
1434 #: ../libempathy-gtk/empathy-contact-menu.c:261
1435 #: ../libempathy-gtk/empathy-individual-menu.c:306
14501436 msgctxt "menu item"
14511437 msgid "_Audio Call"
14521438 msgstr "_Аудиовызов"
14531439
1454 #: ../libempathy-gtk/empathy-contact-menu.c:296
1440 #: ../libempathy-gtk/empathy-contact-menu.c:291
1441 #: ../libempathy-gtk/empathy-individual-menu.c:351
14551442 msgctxt "menu item"
14561443 msgid "_Video Call"
14571444 msgstr "_Видеовызов"
14581445
1459 #: ../libempathy-gtk/empathy-contact-menu.c:347
1460 #: ../src/empathy-main-window.ui.h:26
1446 #: ../libempathy-gtk/empathy-contact-menu.c:331
1447 #: ../libempathy-gtk/empathy-individual-menu.c:403
1448 #: ../src/empathy-main-window.ui.h:25
14611449 msgid "_Previous Conversations"
14621450 msgstr "Предыдущие _беседы"
14631451
1464 #: ../libempathy-gtk/empathy-contact-menu.c:369
1465 msgid "Send file"
1466 msgstr "Послать файл"
1467
1468 #: ../libempathy-gtk/empathy-contact-menu.c:392
1469 msgid "Share my desktop"
1452 #: ../libempathy-gtk/empathy-contact-menu.c:353
1453 #: ../libempathy-gtk/empathy-individual-menu.c:444
1454 msgid "Send File"
1455 msgstr "Отправить файл"
1456
1457 #: ../libempathy-gtk/empathy-contact-menu.c:376
1458 #: ../libempathy-gtk/empathy-individual-menu.c:486
1459 msgid "Share My Desktop"
14701460 msgstr "Предоставить доступ к моему рабочему столу"
14711461
1472 #: ../libempathy-gtk/empathy-contact-menu.c:432
1473 #: ../libempathy-gtk/empathy-contact-widget.c:1379
1462 #: ../libempathy-gtk/empathy-contact-menu.c:416
1463 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1464 #: ../libempathy-gtk/empathy-individual-menu.c:515
14741465 msgid "Favorite"
14751466 msgstr "Любимый"
14761467
1477 #: ../libempathy-gtk/empathy-contact-menu.c:462
1468 #: ../libempathy-gtk/empathy-contact-menu.c:445
1469 #: ../libempathy-gtk/empathy-individual-menu.c:547
14781470 msgid "Infor_mation"
14791471 msgstr "Информ_ация"
14801472
1481 #: ../libempathy-gtk/empathy-contact-menu.c:508
1473 #: ../libempathy-gtk/empathy-contact-menu.c:491
14821474 msgctxt "Edit contact (contextual menu)"
14831475 msgid "_Edit"
14841476 msgstr "_Правка"
14851477
1486 #: ../libempathy-gtk/empathy-contact-menu.c:562
1487 #: ../src/empathy-chat-window.c:869
1478 #: ../libempathy-gtk/empathy-contact-menu.c:545
1479 #: ../libempathy-gtk/empathy-individual-menu.c:664
1480 #: ../src/empathy-chat-window.c:903
14881481 msgid "Inviting you to this room"
14891482 msgstr "Приглашение в комнату"
14901483
1491 #: ../libempathy-gtk/empathy-contact-menu.c:593
1492 msgid "_Invite to chat room"
1484 #: ../libempathy-gtk/empathy-contact-menu.c:576
1485 #: ../libempathy-gtk/empathy-individual-menu.c:702
1486 msgid "_Invite to Chat Room"
14931487 msgstr "_Пригласить в комнату"
14941488
14951489 #: ../libempathy-gtk/empathy-contact-selector.c:129
14961490 msgid "Select a contact"
14971491 msgstr "Выберите контакт"
14981492
1499 #: ../libempathy-gtk/empathy-contact-widget.c:238
1493 #: ../libempathy-gtk/empathy-contact-widget.c:219
1494 msgid "Full name:"
1495 msgstr "Полное имя:"
1496
1497 #: ../libempathy-gtk/empathy-contact-widget.c:220
1498 msgid "Phone number:"
1499 msgstr ""
1500
1501 #: ../libempathy-gtk/empathy-contact-widget.c:221
1502 msgid "E-mail address:"
1503 msgstr "Адрес эл. почты:"
1504
1505 #: ../libempathy-gtk/empathy-contact-widget.c:222
1506 msgid "Website:"
1507 msgstr "Веб-сайт:"
1508
1509 #: ../libempathy-gtk/empathy-contact-widget.c:223
1510 msgid "Birthday:"
1511 msgstr "День рождения:"
1512
1513 #: ../libempathy-gtk/empathy-contact-widget.c:603
15001514 msgid "Select"
15011515 msgstr "Выбрать"
15021516
1503 #: ../libempathy-gtk/empathy-contact-widget.c:247
1504 #: ../src/empathy-main-window.c:1050
1517 #: ../libempathy-gtk/empathy-contact-widget.c:612
1518 #: ../src/empathy-main-window.c:1195
15051519 msgid "Group"
15061520 msgstr "Группа"
15071521
1508 #: ../libempathy-gtk/empathy-contact-widget.c:478
1522 #: ../libempathy-gtk/empathy-contact-widget.c:841
15091523 msgid "Country ISO Code:"
15101524 msgstr "Код ISO страны:"
15111525
1512 #: ../libempathy-gtk/empathy-contact-widget.c:480
1526 #: ../libempathy-gtk/empathy-contact-widget.c:843
15131527 msgid "Country:"
15141528 msgstr "Страна:"
15151529
1516 #: ../libempathy-gtk/empathy-contact-widget.c:482
1530 #: ../libempathy-gtk/empathy-contact-widget.c:845
15171531 msgid "State:"
15181532 msgstr "Штат:"
15191533
1520 #: ../libempathy-gtk/empathy-contact-widget.c:484
1534 #: ../libempathy-gtk/empathy-contact-widget.c:847
15211535 msgid "City:"
15221536 msgstr "Город:"
15231537
1524 #: ../libempathy-gtk/empathy-contact-widget.c:486
1538 #: ../libempathy-gtk/empathy-contact-widget.c:849
15251539 msgid "Area:"
15261540 msgstr "Область:"
15271541
1528 #: ../libempathy-gtk/empathy-contact-widget.c:488
1542 #: ../libempathy-gtk/empathy-contact-widget.c:851
15291543 msgid "Postal Code:"
15301544 msgstr "Почтовый индекс:"
15311545
1532 #: ../libempathy-gtk/empathy-contact-widget.c:490
1546 #: ../libempathy-gtk/empathy-contact-widget.c:853
15331547 msgid "Street:"
15341548 msgstr "Улица:"
15351549
1536 #: ../libempathy-gtk/empathy-contact-widget.c:492
1550 #: ../libempathy-gtk/empathy-contact-widget.c:855
15371551 msgid "Building:"
15381552 msgstr "Здание:"
15391553
1540 #: ../libempathy-gtk/empathy-contact-widget.c:494
1554 #: ../libempathy-gtk/empathy-contact-widget.c:857
15411555 msgid "Floor:"
15421556 msgstr "Этаж:"
15431557
1544 #: ../libempathy-gtk/empathy-contact-widget.c:496
1558 #: ../libempathy-gtk/empathy-contact-widget.c:859
15451559 msgid "Room:"
15461560 msgstr "Комната:"
15471561
1548 #: ../libempathy-gtk/empathy-contact-widget.c:498
1562 #: ../libempathy-gtk/empathy-contact-widget.c:861
15491563 msgid "Text:"
15501564 msgstr "Текст:"
15511565
1552 #: ../libempathy-gtk/empathy-contact-widget.c:500
1566 #: ../libempathy-gtk/empathy-contact-widget.c:863
15531567 msgid "Description:"
15541568 msgstr "Описание:"
15551569
1556 #: ../libempathy-gtk/empathy-contact-widget.c:502
1570 #: ../libempathy-gtk/empathy-contact-widget.c:865
15571571 msgid "URI:"
15581572 msgstr "URI:"
15591573
1560 #: ../libempathy-gtk/empathy-contact-widget.c:504
1574 #: ../libempathy-gtk/empathy-contact-widget.c:867
15611575 msgid "Accuracy Level:"
15621576 msgstr "Точность:"
15631577
1564 #: ../libempathy-gtk/empathy-contact-widget.c:506
1578 #: ../libempathy-gtk/empathy-contact-widget.c:869
15651579 msgid "Error:"
15661580 msgstr "Ошибка:"
15671581
1568 #: ../libempathy-gtk/empathy-contact-widget.c:508
1582 #: ../libempathy-gtk/empathy-contact-widget.c:871
15691583 msgid "Vertical Error (meters):"
15701584 msgstr "Ошибка по вертикали (в метрах):"
15711585
1572 #: ../libempathy-gtk/empathy-contact-widget.c:510
1586 #: ../libempathy-gtk/empathy-contact-widget.c:873
15731587 msgid "Horizontal Error (meters):"
15741588 msgstr "Ошибка по горизонтали (в метрах):"
15751589
1576 #: ../libempathy-gtk/empathy-contact-widget.c:512
1590 #: ../libempathy-gtk/empathy-contact-widget.c:875
15771591 msgid "Speed:"
15781592 msgstr "Скорость:"
15791593
1580 #: ../libempathy-gtk/empathy-contact-widget.c:514
1594 #: ../libempathy-gtk/empathy-contact-widget.c:877
15811595 msgid "Bearing:"
15821596 msgstr "Азимут:"
15831597
1584 #: ../libempathy-gtk/empathy-contact-widget.c:516
1598 #: ../libempathy-gtk/empathy-contact-widget.c:879
15851599 msgid "Climb Speed:"
15861600 msgstr "Скорость набора высоты:"
15871601
1588 #: ../libempathy-gtk/empathy-contact-widget.c:518
1602 #: ../libempathy-gtk/empathy-contact-widget.c:881
15891603 msgid "Last Updated on:"
15901604 msgstr "Последнее обновление:"
15911605
1592 #: ../libempathy-gtk/empathy-contact-widget.c:520
1606 #: ../libempathy-gtk/empathy-contact-widget.c:883
15931607 msgid "Longitude:"
15941608 msgstr "Долгота:"
15951609
1596 #: ../libempathy-gtk/empathy-contact-widget.c:522
1610 #: ../libempathy-gtk/empathy-contact-widget.c:885
15971611 msgid "Latitude:"
15981612 msgstr "Широта:"
15991613
1600 #: ../libempathy-gtk/empathy-contact-widget.c:524
1614 #: ../libempathy-gtk/empathy-contact-widget.c:887
16011615 msgid "Altitude:"
16021616 msgstr "Высота:"
16031617
1604 #: ../libempathy-gtk/empathy-contact-widget.c:587
1618 #: ../libempathy-gtk/empathy-contact-widget.c:950
16051619 #: ../src/empathy-preferences.ui.h:12
16061620 msgid "Location"
16071621 msgstr "Местоположение"
16081622
1609 #: ../libempathy-gtk/empathy-contact-widget.c:603
1623 #: ../libempathy-gtk/empathy-contact-widget.c:966
16101624 msgid "<b>Location</b>, "
16111625 msgstr "<b>Местоположение</b>,"
16121626
1613 #: ../libempathy-gtk/empathy-contact-widget.c:653
1627 #: ../libempathy-gtk/empathy-contact-widget.c:1017
16141628 msgid "%B %e, %Y at %R UTC"
16151629 msgstr "%e %b %Y в %R UTC"
16161630
1617 #: ../libempathy-gtk/empathy-contact-widget.c:736
1631 #: ../libempathy-gtk/empathy-contact-widget.c:1100
16181632 msgid "Save Avatar"
16191633 msgstr "Сохранить аватар"
16201634
1621 #: ../libempathy-gtk/empathy-contact-widget.c:792
1635 #: ../libempathy-gtk/empathy-contact-widget.c:1156
16221636 msgid "Unable to save avatar"
16231637 msgstr "Невозможно сохранить аватар"
16241638
16311645 msgstr "Прозвище:"
16321646
16331647 #: ../libempathy-gtk/empathy-contact-widget.ui.h:4
1634 msgid "Birthday:"
1635 msgstr "День рождения:"
1636
1637 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
16381648 msgid "Client Information"
16391649 msgstr "Информация о клиенте"
16401650
1641 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
1651 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
16421652 msgid "Client:"
16431653 msgstr "Программа:"
16441654
1645 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
1655 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
16461656 msgid "Contact Details"
16471657 msgstr "Информация о собеседнике"
16481658
1649 #: ../libempathy-gtk/empathy-contact-widget.ui.h:8
1650 msgid "E-mail address:"
1651 msgstr "Адрес эл. почты:"
1652
1653 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
1654 msgid "Full name:"
1655 msgstr "Полное имя:"
1656
1657 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
1659 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
16581660 msgid "Groups"
16591661 msgstr "Группы"
16601662
16611663 #. Identifier to connect to Instant Messaging network
1662 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
1664 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
16631665 msgid "Identifier:"
16641666 msgstr "Идентификатор:"
16651667
1666 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
1668 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
16671669 msgid "Information requested…"
16681670 msgstr "Информация запрошена..."
16691671
1670 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
1672 #: ../libempathy-gtk/empathy-contact-widget.ui.h:11
16711673 msgid "OS:"
16721674 msgstr "Операционная система:"
16731675
1674 #: ../libempathy-gtk/empathy-contact-widget.ui.h:15
1676 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
16751677 msgid ""
16761678 "Select the groups you want this contact to appear in. Note that you can "
16771679 "select more than one group or no groups."
16791681 "Выберите группы, в которых должен появиться собеседник. Можно выбрать больше "
16801682 "одной группы или не выбирать вообще."
16811683
1682 #: ../libempathy-gtk/empathy-contact-widget.ui.h:16
1684 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
16831685 msgid "Version:"
16841686 msgstr "Версия:"
16851687
1686 #: ../libempathy-gtk/empathy-contact-widget.ui.h:17
1687 msgid "Website:"
1688 msgstr "Веб-сайт:"
1689
1690 #: ../libempathy-gtk/empathy-contact-widget.ui.h:18
1688 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
16911689 msgid "_Add Group"
16921690 msgstr "_Добавить группу"
1691
1692 #: ../libempathy-gtk/empathy-individual-menu.c:603
1693 #, fuzzy
1694 msgctxt "Edit individual (contextual menu)"
1695 msgid "_Edit"
1696 msgstr "_Правка"
16931697
16941698 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16951699 msgid "new server"
17071711 msgid "SSL"
17081712 msgstr "Шифрование SSL"
17091713
1710 #: ../libempathy-gtk/empathy-log-window.c:700
1711 #: ../src/empathy-import-widget.c:310
1714 #: ../libempathy-gtk/empathy-log-window.c:632
1715 #: ../src/empathy-import-widget.c:312
17121716 msgid "Account"
17131717 msgstr "Учётная запись"
17141718
1715 #: ../libempathy-gtk/empathy-log-window.c:717
1719 #: ../libempathy-gtk/empathy-log-window.c:649
17161720 msgid "Date"
17171721 msgstr "Дата"
17181722
17371741 msgstr "Идентификатор собеседника:"
17381742
17391743 #. add chat button
1740 #: ../libempathy-gtk/empathy-new-message-dialog.c:144
1744 #: ../libempathy-gtk/empathy-new-message-dialog.c:145
17411745 msgid "C_hat"
17421746 msgstr "_Беседа"
17431747
17441748 #. Tweak the dialog
1745 #: ../libempathy-gtk/empathy-new-message-dialog.c:154
1749 #: ../libempathy-gtk/empathy-new-message-dialog.c:155
17461750 msgid "New Conversation"
17471751 msgstr "Новая беседа"
17481752
17491753 #. add video toggle
1750 #: ../libempathy-gtk/empathy-new-call-dialog.c:188
1754 #: ../libempathy-gtk/empathy-new-call-dialog.c:190
17511755 msgid "Send _Video"
17521756 msgstr "_Передавать видео"
17531757
17541758 #. add chat button
1755 #: ../libempathy-gtk/empathy-new-call-dialog.c:196
1756 #: ../src/empathy-call-window.ui.h:17
1759 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1760 #: ../src/empathy-call-window.ui.h:22
17571761 msgid "_Call"
17581762 msgstr "_Вызов"
17591763
17601764 #. Tweak the dialog
1761 #: ../libempathy-gtk/empathy-new-call-dialog.c:206
1765 #: ../libempathy-gtk/empathy-new-call-dialog.c:208
17621766 msgid "New Call"
17631767 msgstr "Новый вызов"
17641768
17951799 msgstr "Установить присутствие и текущее состояние"
17961800
17971801 #. Custom messages
1798 #: ../libempathy-gtk/empathy-presence-chooser.c:1128
1802 #: ../libempathy-gtk/empathy-presence-chooser.c:1124
17991803 msgid "Custom messages…"
18001804 msgstr "Другие сообщения…"
18011805
18111815 msgid "Phrase not found"
18121816 msgstr "Фраза не найдена"
18131817
1814 #: ../libempathy-gtk/empathy-sound.c:51
1818 #: ../libempathy-gtk/empathy-sound.c:50
18151819 msgid "Received an instant message"
18161820 msgstr "Получено сообщение"
18171821
1818 #: ../libempathy-gtk/empathy-sound.c:53
1822 #: ../libempathy-gtk/empathy-sound.c:52
18191823 msgid "Sent an instant message"
18201824 msgstr "Отправлено сообщение"
18211825
1822 #: ../libempathy-gtk/empathy-sound.c:55
1826 #: ../libempathy-gtk/empathy-sound.c:54
18231827 msgid "Incoming chat request"
18241828 msgstr "Предложение о беседе"
18251829
1826 #: ../libempathy-gtk/empathy-sound.c:57
1830 #: ../libempathy-gtk/empathy-sound.c:56
18271831 msgid "Contact connected"
18281832 msgstr "Контакт вошёл в сеть"
18291833
1830 #: ../libempathy-gtk/empathy-sound.c:59
1834 #: ../libempathy-gtk/empathy-sound.c:58
18311835 msgid "Contact disconnected"
18321836 msgstr "Контакт вышел из сети"
18331837
1834 #: ../libempathy-gtk/empathy-sound.c:61
1838 #: ../libempathy-gtk/empathy-sound.c:60
18351839 msgid "Connected to server"
18361840 msgstr "Соединение"
18371841
1838 #: ../libempathy-gtk/empathy-sound.c:63
1842 #: ../libempathy-gtk/empathy-sound.c:62
18391843 msgid "Disconnected from server"
18401844 msgstr "Отсоединение от сервера"
18411845
1842 #: ../libempathy-gtk/empathy-sound.c:65
1846 #: ../libempathy-gtk/empathy-sound.c:64
18431847 msgid "Incoming voice call"
18441848 msgstr "Входящий вызов"
18451849
1846 #: ../libempathy-gtk/empathy-sound.c:67
1850 #: ../libempathy-gtk/empathy-sound.c:66
18471851 msgid "Outgoing voice call"
18481852 msgstr "Исходящий вызов"
18491853
1850 #: ../libempathy-gtk/empathy-sound.c:69
1854 #: ../libempathy-gtk/empathy-sound.c:68
18511855 msgid "Voice call ended"
18521856 msgstr "Вызов завершён"
18531857
18831887 msgid "Blue"
18841888 msgstr "Голубая"
18851889
1886 #: ../libempathy-gtk/empathy-ui-utils.c:1501
1890 #: ../libempathy-gtk/empathy-ui-utils.c:1696
18871891 msgid "Unable to open URI"
18881892 msgstr "Невозможно открыть URL"
18891893
1890 #: ../libempathy-gtk/empathy-ui-utils.c:1618
1894 #: ../libempathy-gtk/empathy-ui-utils.c:1791
18911895 msgid "Select a file"
18921896 msgstr "Выберите файл"
18931897
1894 #: ../libempathy-gtk/empathy-ui-utils.c:1682
1895 msgid "Select a destination"
1896 msgstr "Выберите назначение"
1898 #: ../libempathy-gtk/empathy-ui-utils.c:1860
1899 #, fuzzy, c-format
1900 msgid "Incoming file from %s"
1901 msgstr "Входящий вызов от %s"
18971902
18981903 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
18991904 msgid "Current Locale"
20742079 msgid "No error message"
20752080 msgstr "Сообщение об ошибке отсутствует"
20762081
2077 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:242
2082 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:244
2083 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:259
20782084 msgid "Instant Message (Empathy)"
20792085 msgstr "Мгновенное сообщение (Empathy)"
20802086
2081 #: ../src/empathy.c:596
2087 #: ../src/empathy.c:474
20822088 msgid "Don't connect on startup"
20832089 msgstr "Не соединяться при запуске"
20842090
2085 #: ../src/empathy.c:600
2091 #: ../src/empathy.c:478
20862092 msgid "Don't display the contact list or any other dialogs on startup"
20872093 msgstr "Не показывать список собеседников и диалоговые окна при запуске"
20882094
2089 #: ../src/empathy.c:612
2095 #: ../src/empathy.c:490
20902096 msgid "- Empathy IM Client"
20912097 msgstr " - клиент обмена мгновенными сообщениями Empathy"
20922098
21682174 "«Правка»."
21692175
21702176 #: ../src/empathy-account-assistant.c:220
2171 #: ../src/empathy-account-assistant.c:1303
2177 #: ../src/empathy-account-assistant.c:1315
21722178 msgid "An error occurred"
21732179 msgstr "Произошла ошибка"
21742180
21772183 #. To translator: %s is the name of the protocol, such as "Google Talk" or
21782184 #. * "Yahoo!"
21792185 #.
2180 #: ../src/empathy-account-assistant.c:413 ../src/empathy-accounts-dialog.c:580
2186 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:604
21812187 #, c-format
21822188 msgid "New %s account"
21832189 msgstr "Новая учетная запись %s"
21842190
2185 #: ../src/empathy-account-assistant.c:508
2191 #: ../src/empathy-account-assistant.c:510
21862192 msgid "What kind of chat account do you have?"
21872193 msgstr "Какой у вас тип учётной записи?"
21882194
2189 #: ../src/empathy-account-assistant.c:514
2195 #: ../src/empathy-account-assistant.c:516
21902196 msgid "Do you have any other chat accounts you want to set up?"
21912197 msgstr "У вас есть ещё какие-нибудь учётные записи для настройки?"
21922198
2193 #: ../src/empathy-account-assistant.c:520
2199 #: ../src/empathy-account-assistant.c:522
21942200 msgid "Enter your account details"
21952201 msgstr "Введите информацию о вашей учётной записи"
21962202
2197 #: ../src/empathy-account-assistant.c:525
2203 #: ../src/empathy-account-assistant.c:527
21982204 msgid "What kind of chat account do you want to create?"
21992205 msgstr "Какой тип учётной записи вы хотите создать?"
22002206
2201 #: ../src/empathy-account-assistant.c:531
2207 #: ../src/empathy-account-assistant.c:533
22022208 msgid "Do you want to create other chat accounts?"
22032209 msgstr "Хотите создать другие учётные записи?"
22042210
2205 #: ../src/empathy-account-assistant.c:538
2211 #: ../src/empathy-account-assistant.c:540
22062212 msgid "Enter the details for the new account"
22072213 msgstr "Введите информацию о новой учётной записи"
22082214
2209 #: ../src/empathy-account-assistant.c:653
2215 #: ../src/empathy-account-assistant.c:655
22102216 msgid ""
22112217 "With Empathy you can chat with people online nearby and with friends and "
22122218 "colleagues who use Google Talk, AIM, Windows Live and many other chat "
22182224 "многие другие программы. При наличии микрофона и веб-камеры можно совершать "
22192225 "аудио- и видеовызовы."
22202226
2221 #: ../src/empathy-account-assistant.c:670
2227 #: ../src/empathy-account-assistant.c:672
22222228 msgid "Do you have an account you've been using with another chat program?"
22232229 msgstr "У вас есть учётная запись, которую вы использовали в другой программе?"
22242230
2225 #: ../src/empathy-account-assistant.c:693
2231 #: ../src/empathy-account-assistant.c:695
22262232 msgid "Yes, import my account details from "
22272233 msgstr "Да, импортировать информацию о моей учётной записи"
22282234
2229 #: ../src/empathy-account-assistant.c:714
2235 #: ../src/empathy-account-assistant.c:716
22302236 msgid "Yes, I'll enter my account details now"
22312237 msgstr "Да, я сейчас введу информацию об учётной записи"
22322238
2233 #: ../src/empathy-account-assistant.c:736
2239 #: ../src/empathy-account-assistant.c:738
22342240 msgid "No, I want a new account"
22352241 msgstr "Нет, я хочу новую учётную запись"
22362242
2237 #: ../src/empathy-account-assistant.c:746
2243 #: ../src/empathy-account-assistant.c:748
22382244 msgid "No, I just want to see people online nearby for now"
22392245 msgstr "Нет, я только хочу найти поблизости людей в сети"
22402246
2241 #: ../src/empathy-account-assistant.c:767
2247 #: ../src/empathy-account-assistant.c:769
22422248 msgid "Select the accounts you want to import:"
22432249 msgstr "Выберите учётные записи для импортирования:"
22442250
2245 #: ../src/empathy-account-assistant.c:851
2246 #: ../src/empathy-new-chatroom-dialog.c:541
2247 #: ../src/empathy-new-chatroom-dialog.c:542
2251 #: ../src/empathy-account-assistant.c:853
2252 #: ../src/empathy-new-chatroom-dialog.c:607
2253 #: ../src/empathy-new-chatroom-dialog.c:608
22482254 msgid "Yes"
22492255 msgstr "Да"
22502256
2251 #: ../src/empathy-account-assistant.c:858
2257 #: ../src/empathy-account-assistant.c:860
22522258 msgid "No, that's all for now"
22532259 msgstr "Нет, на данный момент это всё"
22542260
2255 #: ../src/empathy-account-assistant.c:1117
2261 #: ../src/empathy-account-assistant.c:1129
22562262 msgid ""
22572263 "Empathy can automatically discover and chat with the people connected on the "
22582264 "same network as you. If you want to use this feature, please check that the "
22652271 "позже или отключить эту возможность, используя диалоговое окно «Учётные "
22662272 "записи»."
22672273
2268 #: ../src/empathy-account-assistant.c:1123
2269 #: ../src/empathy-account-assistant.c:1179
2274 #: ../src/empathy-account-assistant.c:1135
2275 #: ../src/empathy-account-assistant.c:1191
22702276 msgid "Edit->Accounts"
22712277 msgstr "Правка->Учётные записи"
22722278
2273 #: ../src/empathy-account-assistant.c:1139
2279 #: ../src/empathy-account-assistant.c:1151
22742280 msgid "I don't want to enable this feature for now"
22752281 msgstr "Я не хочу сейчас включать эту возможность"
22762282
2277 #: ../src/empathy-account-assistant.c:1175
2283 #: ../src/empathy-account-assistant.c:1187
22782284 msgid ""
22792285 "You won't be able to chat with people connected to your local network, as "
22802286 "telepathy-salut is not installed. If you want to enable this feature, please "
22862292 "установите пакет telepathy-salut и создайте учётную запись «Люди поблизости» "
22872293 "в диалоговом окне «Учётные записи»"
22882294
2289 #: ../src/empathy-account-assistant.c:1181
2295 #: ../src/empathy-account-assistant.c:1193
22902296 msgid "telepathy-salut not installed"
22912297 msgstr "telepathy-salut не установлен"
22922298
2293 #: ../src/empathy-account-assistant.c:1227
2299 #: ../src/empathy-account-assistant.c:1239
22942300 msgid "Messaging and VoIP Accounts Assistant"
22952301 msgstr "Мастер учётных записей обмена сообщениями и VoIP"
22962302
2297 #: ../src/empathy-account-assistant.c:1261
2303 #: ../src/empathy-account-assistant.c:1273
22982304 msgid "Welcome to Empathy"
22992305 msgstr "Добро пожаловать в Empathy"
23002306
2301 #: ../src/empathy-account-assistant.c:1270
2307 #: ../src/empathy-account-assistant.c:1282
23022308 msgid "Import your existing accounts"
23032309 msgstr "Импортировать существующие учётные записи"
23042310
2305 #: ../src/empathy-account-assistant.c:1288
2311 #: ../src/empathy-account-assistant.c:1300
23062312 msgid "Please enter personal details"
23072313 msgstr "Введите персональную информацию"
23082314
23092315 #. The primary text of the dialog shown to the user when he is about to lose
23102316 #. * unsaved changes
2311 #: ../src/empathy-accounts-dialog.c:66
2317 #: ../src/empathy-accounts-dialog.c:65
23122318 #, c-format
23132319 msgid "There are unsaved modifications to your %s account."
23142320 msgstr "В учётной записи %s имеются несохранённые изменения."
23152321
23162322 #. The primary text of the dialog shown to the user when he is about to lose
23172323 #. * an unsaved new account
2318 #: ../src/empathy-accounts-dialog.c:70
2324 #: ../src/empathy-accounts-dialog.c:69
23192325 msgid "Your new account has not been saved yet."
23202326 msgstr "Ваша новая учётная запись ещё не была сохранена."
23212327
2322 #: ../src/empathy-accounts-dialog.c:263 ../src/empathy-call-window.c:729
2328 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
23232329 msgid "Connecting…"
23242330 msgstr "Соединение…"
23252331
2326 #: ../src/empathy-accounts-dialog.c:290
2332 #: ../src/empathy-accounts-dialog.c:312
2333 #, c-format
2334 msgid "Offline — %s"
2335 msgstr "Не в сети — %s"
2336
2337 #: ../src/empathy-accounts-dialog.c:324
23272338 #, c-format
23282339 msgid "Disconnected — %s"
23292340 msgstr "Отсоединён — %s"
23302341
2331 #: ../src/empathy-accounts-dialog.c:295
2332 #, c-format
2333 msgid "Offline — %s"
2334 msgstr "Не в сети — %s"
2335
2336 #: ../src/empathy-accounts-dialog.c:308
2342 #: ../src/empathy-accounts-dialog.c:335
23372343 msgid "Offline — No Network Connection"
23382344 msgstr "Не в сети — подключение к сети отсутствует"
23392345
2340 #: ../src/empathy-accounts-dialog.c:316
2346 #: ../src/empathy-accounts-dialog.c:342
23412347 msgid "Unknown Status"
23422348 msgstr "Неизвестный статус"
23432349
2344 #: ../src/empathy-accounts-dialog.c:327
2350 #: ../src/empathy-accounts-dialog.c:354
23452351 msgid "Offline — Account Disabled"
23462352 msgstr "Не в сети — учётная запись отключена"
23472353
2348 #: ../src/empathy-accounts-dialog.c:768
2354 #: ../src/empathy-accounts-dialog.c:795
23492355 msgid ""
23502356 "You are about to create a new account, which will discard\n"
23512357 "your changes. Are you sure you want to proceed?"
23532359 "Вы собираетесь создать новую учётную запись, это приведёт\n"
23542360 "к отмене сделанных изменений. Хотите продолжить?"
23552361
2356 #: ../src/empathy-accounts-dialog.c:1115
2362 #: ../src/empathy-accounts-dialog.c:1142
23572363 #, c-format
23582364 msgid "Do you want to remove %s from your computer?"
23592365 msgstr "Хотите удалить %s со своего компьютера?"
23602366
2361 #: ../src/empathy-accounts-dialog.c:1119
2367 #: ../src/empathy-accounts-dialog.c:1146
23622368 msgid "This will not remove your account on the server."
23632369 msgstr "Это не приведёт к удалению вашей учётной записи с сервера."
23642370
2365 #: ../src/empathy-accounts-dialog.c:1356
2371 #: ../src/empathy-accounts-dialog.c:1383
23662372 msgid ""
23672373 "You are about to select another account, which will discard\n"
23682374 "your changes. Are you sure you want to proceed?"
23702376 "Вы собираетесь выбрать другую учётную запись, это приведёт\n"
23712377 "к отмене сделанных изменений. Хотите продолжить?"
23722378
2373 #: ../src/empathy-accounts-dialog.c:1933
2379 #: ../src/empathy-accounts-dialog.c:1960
23742380 msgid ""
23752381 "You are about to close the window, which will discard\n"
23762382 "your changes. Are you sure you want to proceed?"
24022408 msgid "_Import…"
24032409 msgstr "_Импорт..."
24042410
2405 #: ../src/empathy-call-window.c:453
2411 #: ../src/empathy-auto-salut-account-helper.c:78
2412 msgid "People nearby"
2413 msgstr "Люди поблизости"
2414
2415 #: ../src/empathy-av.c:133
2416 #, fuzzy
2417 msgid "- Empathy Audio/Video Client"
2418 msgstr " - клиент обмена мгновенными сообщениями Empathy"
2419
2420 #: ../src/empathy-av.c:149
2421 #, fuzzy
2422 msgid "Empathy Audio/Video Client"
2423 msgstr "Клиент обмена мгновенными сообщениями Empathy"
2424
2425 #: ../src/empathy-call-window.c:470
24062426 msgid "Contrast"
24072427 msgstr "Контраст"
24082428
2409 #: ../src/empathy-call-window.c:456
2429 #: ../src/empathy-call-window.c:473
24102430 msgid "Brightness"
24112431 msgstr "Яркость"
24122432
2413 #: ../src/empathy-call-window.c:459
2433 #: ../src/empathy-call-window.c:476
24142434 msgid "Gamma"
24152435 msgstr "Гамма"
24162436
2417 #: ../src/empathy-call-window.c:567
2437 #: ../src/empathy-call-window.c:581
24182438 msgid "Volume"
24192439 msgstr "Громкость"
24202440
2421 #: ../src/empathy-call-window.c:1022
2441 #: ../src/empathy-call-window.c:1146
24222442 msgid "_Sidebar"
24232443 msgstr "_Боковая панель"
24242444
2425 #: ../src/empathy-call-window.c:1041
2445 #: ../src/empathy-call-window.c:1165
24262446 msgid "Audio input"
24272447 msgstr "Вход звука"
24282448
2429 #: ../src/empathy-call-window.c:1045
2449 #: ../src/empathy-call-window.c:1169
24302450 msgid "Video input"
24312451 msgstr "Вход видео"
24322452
2433 #: ../src/empathy-call-window.c:1049
2453 #: ../src/empathy-call-window.c:1173
24342454 msgid "Dialpad"
24352455 msgstr "Цифровая панель"
24362456
2457 #: ../src/empathy-call-window.c:1178
2458 #, fuzzy
2459 msgid "Details"
2460 msgstr "Информация о собеседнике"
2461
24372462 #. translators: Call is a noun and %s is the contact name. This string
24382463 #. * is used in the window title
2439 #: ../src/empathy-call-window.c:1117
2464 #: ../src/empathy-call-window.c:1246
24402465 #, c-format
24412466 msgid "Call with %s"
24422467 msgstr "Разговор с %s"
24432468
24442469 #. translators: Call is a noun. This string is used in the window
24452470 #. * title
2446 #: ../src/empathy-call-window.c:1198
2471 #: ../src/empathy-call-window.c:1325
24472472 msgid "Call"
24482473 msgstr "Вызов"
24492474
24502475 #. Translators: number of minutes:seconds the caller has been connected
2451 #: ../src/empathy-call-window.c:1695
2476 #: ../src/empathy-call-window.c:2117
24522477 #, c-format
24532478 msgid "Connected — %d:%02dm"
24542479 msgstr "Соединён — %d:%02dm"
24552480
2456 #: ../src/empathy-call-window.c:1756
2481 #: ../src/empathy-call-window.c:2178
24572482 msgid "Technical Details"
24582483 msgstr "Информация о собеседнике"
24592484
2460 #: ../src/empathy-call-window.c:1794
2485 #: ../src/empathy-call-window.c:2216
24612486 #, c-format
24622487 msgid ""
24632488 "%s's software does not understand any of the audio formats supported by your "
24662491 "Программное обеспечение %s не понимает аудиоформаты, поддерживаемые вашим "
24672492 "компьютером"
24682493
2469 #: ../src/empathy-call-window.c:1799
2494 #: ../src/empathy-call-window.c:2221
24702495 #, c-format
24712496 msgid ""
24722497 "%s's software does not understand any of the video formats supported by your "
24752500 "Программное обеспечение %s не понимает видеоформаты, поддерживаемые вашим "
24762501 "компьютером"
24772502
2478 #: ../src/empathy-call-window.c:1805
2503 #: ../src/empathy-call-window.c:2227
24792504 #, c-format
24802505 msgid ""
24812506 "Can't establish a connection to %s. One of you might be on a network that "
24842509 "Не удалось установить соединение с %s. Один из вас может находиться в сети, "
24852510 "которая не поддерживает прямые подключения."
24862511
2487 #: ../src/empathy-call-window.c:1811
2512 #: ../src/empathy-call-window.c:2233
24882513 msgid "There was a failure on the network"
24892514 msgstr "Сбой сети"
24902515
2491 #: ../src/empathy-call-window.c:1815
2516 #: ../src/empathy-call-window.c:2237
24922517 msgid ""
24932518 "The audio formats necessary for this call are not installed on your computer"
24942519 msgstr ""
24952520 "Аудиоформаты, необходимые для этого вызова, не установлены на вашем "
24962521 "компьютере"
24972522
2498 #: ../src/empathy-call-window.c:1818
2523 #: ../src/empathy-call-window.c:2240
24992524 msgid ""
25002525 "The video formats necessary for this call are not installed on your computer"
25012526 msgstr ""
25022527 "Видеоформаты, необходимые для этого вызова, не установлены на вашем "
25032528 "компьютере"
25042529
2505 #: ../src/empathy-call-window.c:1828
2530 #: ../src/empathy-call-window.c:2250
25062531 #, c-format
25072532 msgid ""
25082533 "Something unexpected happened in a Telepathy component. Please <a href=\"%s"
25132538 "\">Сообщите об этой ошибке</a> и прикрепите журналы, собранные из окна "
25142539 "отладки в меню «Справка»."
25152540
2516 #: ../src/empathy-call-window.c:1836
2541 #: ../src/empathy-call-window.c:2258
25172542 msgid "There was a failure in the call engine"
25182543 msgstr "Сбой в движке вызова"
25192544
2520 #: ../src/empathy-call-window.c:1875
2545 #: ../src/empathy-call-window.c:2297
25212546 msgid "Can't establish audio stream"
25222547 msgstr "Не удалось установить аудиопоток"
25232548
2524 #: ../src/empathy-call-window.c:1885
2549 #: ../src/empathy-call-window.c:2307
25252550 msgid "Can't establish video stream"
25262551 msgstr "Не удалось установить видеопоток"
25272552
25282553 #: ../src/empathy-call-window.ui.h:1
2554 #, fuzzy
2555 msgid "Audio"
2556 msgstr "Автоматический"
2557
2558 #: ../src/empathy-call-window.ui.h:2
25292559 msgid "Call the contact again"
25302560 msgstr "Перезвонить собеседнику"
25312561
2532 #: ../src/empathy-call-window.ui.h:2
2562 #: ../src/empathy-call-window.ui.h:3
25332563 msgid "Camera Off"
25342564 msgstr "Камера выключена"
25352565
2536 #: ../src/empathy-call-window.ui.h:3
2566 #: ../src/empathy-call-window.ui.h:4
25372567 msgid "Camera On"
25382568 msgstr "Камера включена"
25392569
2540 #: ../src/empathy-call-window.ui.h:4
2570 #: ../src/empathy-call-window.ui.h:5
2571 msgid "Decoding Codec:"
2572 msgstr ""
2573
2574 #: ../src/empathy-call-window.ui.h:6
25412575 msgid "Disable camera and stop sending video"
25422576 msgstr "Выключить камеру и остановить отправку видео"
25432577
2544 #: ../src/empathy-call-window.ui.h:5
2578 #: ../src/empathy-call-window.ui.h:7
25452579 msgid "Enable camera and send video"
25462580 msgstr "Включить камеру и отправить видео"
25472581
2548 #: ../src/empathy-call-window.ui.h:6
2582 #: ../src/empathy-call-window.ui.h:8
25492583 msgid "Enable camera but don't send video"
25502584 msgstr "Включить камеру, но не отправлять видео"
25512585
2552 #: ../src/empathy-call-window.ui.h:7
2586 #: ../src/empathy-call-window.ui.h:9
2587 msgid "Encoding Codec:"
2588 msgstr ""
2589
2590 #: ../src/empathy-call-window.ui.h:10
25532591 msgid "Hang up"
25542592 msgstr "Сбросить"
25552593
2556 #: ../src/empathy-call-window.ui.h:8
2594 #: ../src/empathy-call-window.ui.h:11
25572595 msgid "Hang up current call"
25582596 msgstr "Завершить текущий вызов"
25592597
2560 #: ../src/empathy-call-window.ui.h:9
2598 #: ../src/empathy-call-window.ui.h:12
25612599 msgid "Preview"
25622600 msgstr "Предварительный просмотр"
25632601
2564 #: ../src/empathy-call-window.ui.h:10
2602 #: ../src/empathy-call-window.ui.h:13
25652603 msgid "Redial"
25662604 msgstr "Перезвонить"
25672605
2568 #: ../src/empathy-call-window.ui.h:11
2606 #: ../src/empathy-call-window.ui.h:14
25692607 msgid "Send Audio"
25702608 msgstr "Передавать звук"
25712609
2572 #: ../src/empathy-call-window.ui.h:12
2610 #: ../src/empathy-call-window.ui.h:15
25732611 msgid "Toggle audio transmission"
25742612 msgstr "Включить или выключить передачу звука"
25752613
2576 #: ../src/empathy-call-window.ui.h:13
2614 #: ../src/empathy-call-window.ui.h:17
25772615 msgid "V_ideo"
25782616 msgstr "В_идео"
25792617
2580 #: ../src/empathy-call-window.ui.h:14
2618 #: ../src/empathy-call-window.ui.h:18
2619 #, fuzzy
2620 msgid "Video"
2621 msgstr "В_идео"
2622
2623 #: ../src/empathy-call-window.ui.h:19
25812624 msgid "Video Off"
25822625 msgstr "Видео выключено"
25832626
2584 #: ../src/empathy-call-window.ui.h:15
2627 #: ../src/empathy-call-window.ui.h:20
25852628 msgid "Video On"
25862629 msgstr "Видео включено"
25872630
2588 #: ../src/empathy-call-window.ui.h:16
2631 #: ../src/empathy-call-window.ui.h:21
25892632 msgid "Video Preview"
25902633 msgstr "Предварительный просмотр видео"
25912634
2592 #: ../src/empathy-call-window.ui.h:18 ../src/empathy-main-window.ui.h:28
2635 #: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:27
25932636 msgid "_View"
25942637 msgstr "_Вид"
25952638
2596 #: ../src/empathy-chat-window.c:440 ../src/empathy-chat-window.c:460
2639 #: ../src/empathy-chat-window.c:452 ../src/empathy-chat-window.c:472
25972640 #, c-format
25982641 msgid "%s (%d unread)"
25992642 msgid_plural "%s (%d unread)"
26012644 msgstr[1] "%s (%d непрочитанных)"
26022645 msgstr[2] "%s (%d непрочитанных)"
26032646
2604 #: ../src/empathy-chat-window.c:452
2647 #: ../src/empathy-chat-window.c:464
26052648 #, c-format
26062649 msgid "%s (and %u other)"
26072650 msgid_plural "%s (and %u others)"
26092652 msgstr[1] "%s (и %u других)"
26102653 msgstr[2] "%s (и %u других)"
26112654
2612 #: ../src/empathy-chat-window.c:468
2655 #: ../src/empathy-chat-window.c:480
26132656 #, c-format
26142657 msgid "%s (%d unread from others)"
26152658 msgid_plural "%s (%d unread from others)"
26172660 msgstr[1] "%s (%d непрочитанных от других)"
26182661 msgstr[2] "%s (%d непрочитанных от других)"
26192662
2620 #: ../src/empathy-chat-window.c:477
2663 #: ../src/empathy-chat-window.c:489
26212664 #, c-format
26222665 msgid "%s (%d unread from all)"
26232666 msgid_plural "%s (%d unread from all)"
26252668 msgstr[1] "%s (%d непрочитанных ото всех)"
26262669 msgstr[2] "%s (%d непрочитанных ото всех)"
26272670
2628 #: ../src/empathy-chat-window.c:688
2671 #: ../src/empathy-chat-window.c:695
26292672 msgid "Typing a message."
26302673 msgstr "Набирает сообщение."
26312674
26572700 msgid "Move Tab _Right"
26582701 msgstr "Передвинуть вкладку в_право"
26592702
2660 #: ../src/empathy-chat-window.ui.h:8 ../src/empathy-main-window.ui.h:17
2703 #: ../src/empathy-chat-window.ui.h:8
2704 #, fuzzy
2705 msgid "Notify for All Messages"
2706 msgstr "Сообщение об ошибке отсутствует"
2707
2708 #: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:16
26612709 msgid "_Contents"
26622710 msgstr "_Содержание"
26632711
2664 #: ../src/empathy-chat-window.ui.h:9
2712 #: ../src/empathy-chat-window.ui.h:10
26652713 msgid "_Conversation"
26662714 msgstr "_Беседа"
26672715
2668 #: ../src/empathy-chat-window.ui.h:10
2716 #: ../src/empathy-chat-window.ui.h:11
26692717 msgid "_Detach Tab"
26702718 msgstr "_Отсоединить вкладку"
26712719
2672 #: ../src/empathy-chat-window.ui.h:11 ../src/empathy-main-window.ui.h:19
2720 #: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:18
26732721 msgid "_Edit"
26742722 msgstr "_Правка"
26752723
2676 #: ../src/empathy-chat-window.ui.h:12
2724 #: ../src/empathy-chat-window.ui.h:13
26772725 msgid "_Favorite Chat Room"
26782726 msgstr "_Любимая комната"
26792727
2680 #: ../src/empathy-chat-window.ui.h:13 ../src/empathy-main-window.ui.h:21
2728 #: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:20
26812729 msgid "_Help"
26822730 msgstr "_Справка"
26832731
2684 #: ../src/empathy-chat-window.ui.h:14
2732 #: ../src/empathy-chat-window.ui.h:15
26852733 msgid "_Next Tab"
26862734 msgstr "На след_ующую вкладку"
26872735
2688 #: ../src/empathy-chat-window.ui.h:15
2736 #: ../src/empathy-chat-window.ui.h:16
26892737 msgid "_Previous Tab"
26902738 msgstr "На пред_ыдущую вкладку"
26912739
2692 #: ../src/empathy-chat-window.ui.h:16 ../src/empathy-status-icon.ui.h:5
2740 #: ../src/empathy-chat-window.ui.h:17 ../src/empathy-status-icon.ui.h:5
26932741 msgid "_Show Contact List"
26942742 msgstr "_Показывать список собеседников"
26952743
2696 #: ../src/empathy-chat-window.ui.h:17
2744 #: ../src/empathy-chat-window.ui.h:18
26972745 msgid "_Tabs"
26982746 msgstr "В_кладки"
26992747
2700 #: ../src/empathy-chatrooms-window.c:256
2748 #: ../src/empathy-chat-window.ui.h:19
2749 msgid "_Undo Close Tab"
2750 msgstr "_Восстановить закрытую вкладку"
2751
2752 #: ../src/empathy-chatrooms-window.c:241
27012753 msgid "Name"
27022754 msgstr "Имя"
27032755
2704 #: ../src/empathy-chatrooms-window.c:274
2756 #: ../src/empathy-chatrooms-window.c:259
27052757 msgid "Room"
27062758 msgstr "Комната"
27072759
2708 #: ../src/empathy-chatrooms-window.c:282
2760 #: ../src/empathy-chatrooms-window.c:267
27092761 msgid "Auto-Connect"
27102762 msgstr "Автоматическое соединение"
27112763
27132765 msgid "Manage Favorite Rooms"
27142766 msgstr "Управление любимыми комнатами"
27152767
2716 #: ../src/empathy-event-manager.c:339
2768 #: ../src/empathy-event-manager.c:473
27172769 msgid "Incoming video call"
27182770 msgstr "Входящий видеовызов"
27192771
2720 #: ../src/empathy-event-manager.c:339
2772 #: ../src/empathy-event-manager.c:473
27212773 msgid "Incoming call"
27222774 msgstr "Входящий вызов"
27232775
2724 #: ../src/empathy-event-manager.c:343
2776 #: ../src/empathy-event-manager.c:477
27252777 #, c-format
27262778 msgid "%s is video calling you. Do you want to answer?"
27272779 msgstr "%s делает видеовызов. Хотите ответить?"
27282780
2729 #: ../src/empathy-event-manager.c:344
2781 #: ../src/empathy-event-manager.c:478
27302782 #, c-format
27312783 msgid "%s is calling you. Do you want to answer?"
27322784 msgstr "%s вызывает вас. Хотите ответить?"
27332785
2734 #: ../src/empathy-event-manager.c:366
2786 #: ../src/empathy-event-manager.c:481 ../src/empathy-event-manager.c:623
2787 #, c-format
2788 msgid "Incoming call from %s"
2789 msgstr "Входящий вызов от %s"
2790
2791 #: ../src/empathy-event-manager.c:506
27352792 msgid "_Reject"
27362793 msgstr "_Отказать"
27372794
2738 #: ../src/empathy-event-manager.c:372
2795 #: ../src/empathy-event-manager.c:512
27392796 msgid "_Answer"
27402797 msgstr "_Ответить"
27412798
2742 #: ../src/empathy-event-manager.c:489
2799 #: ../src/empathy-event-manager.c:623
27432800 #, c-format
27442801 msgid "Incoming video call from %s"
27452802 msgstr "Входящий видеовызов от %s"
27462803
2747 #: ../src/empathy-event-manager.c:489
2748 #, c-format
2749 msgid "Incoming call from %s"
2750 msgstr "Входящий вызов от %s"
2751
2752 #: ../src/empathy-event-manager.c:579
2804 #: ../src/empathy-event-manager.c:700
27532805 msgid "Room invitation"
27542806 msgstr "Приглашение к беседе"
27552807
2756 #: ../src/empathy-event-manager.c:582
2808 #: ../src/empathy-event-manager.c:702
2809 #, fuzzy, c-format
2810 msgid "Invitation to join %s"
2811 msgstr "%s предложил присоединиться к %s"
2812
2813 #: ../src/empathy-event-manager.c:709
27572814 #, c-format
27582815 msgid "%s is inviting you to join %s"
27592816 msgstr "%s предлагает присоединиться к %s"
27602817
2761 #: ../src/empathy-event-manager.c:590
2818 #: ../src/empathy-event-manager.c:717
27622819 msgid "_Decline"
27632820 msgstr "_Отклонить"
27642821
2765 #: ../src/empathy-event-manager.c:595
2822 #: ../src/empathy-event-manager.c:722
27662823 #: ../src/empathy-new-chatroom-dialog.ui.h:7
27672824 msgid "_Join"
27682825 msgstr "_Войти"
27692826
2770 #: ../src/empathy-event-manager.c:634
2827 #: ../src/empathy-event-manager.c:760
27712828 #, c-format
27722829 msgid "%s invited you to join %s"
27732830 msgstr "%s предложил присоединиться к %s"
27742831
2775 #: ../src/empathy-event-manager.c:660
2832 #: ../src/empathy-event-manager.c:787
27762833 #, c-format
27772834 msgid "Incoming file transfer from %s"
27782835 msgstr "Входящий файл от %s"
27792836
2780 #: ../src/empathy-event-manager.c:818
2837 #: ../src/empathy-event-manager.c:988
27812838 #, c-format
27822839 msgid "Subscription requested by %s"
27832840 msgstr "Запрос на подписку от %s"
27842841
2785 #: ../src/empathy-event-manager.c:822
2842 #: ../src/empathy-event-manager.c:992
27862843 #, c-format
27872844 msgid ""
27882845 "\n"
27912848 "\n"
27922849 "Сообщение: %s"
27932850
2794 #. someone is logging off
2795 #: ../src/empathy-event-manager.c:862
2851 #: ../src/empathy-event-manager.c:1035
27962852 #, c-format
27972853 msgid "%s is now offline."
27982854 msgstr "%s вышел из сети."
27992855
2800 #. someone is logging in
2801 #: ../src/empathy-event-manager.c:878
2856 #: ../src/empathy-event-manager.c:1055
28022857 #, c-format
28032858 msgid "%s is now online."
28042859 msgstr "%s в сети."
28052860
28062861 #. Translators: time left, when it is more than one hour
2807 #: ../src/empathy-ft-manager.c:100
2862 #: ../src/empathy-ft-manager.c:99
28082863 #, c-format
28092864 msgid "%u:%02u.%02u"
28102865 msgstr "%u:%02u.%02u"
28112866
28122867 #. Translators: time left, when is is less than one hour
2813 #: ../src/empathy-ft-manager.c:103
2868 #: ../src/empathy-ft-manager.c:102
28142869 #, c-format
28152870 msgid "%02u.%02u"
28162871 msgstr "%02u.%02u"
28172872
2818 #: ../src/empathy-ft-manager.c:179
2873 #: ../src/empathy-ft-manager.c:178
28192874 msgctxt "file transfer percent"
28202875 msgid "Unknown"
28212876 msgstr "Неизвестен"
28222877
2823 #: ../src/empathy-ft-manager.c:274
2878 #: ../src/empathy-ft-manager.c:273
28242879 #, c-format
28252880 msgid "%s of %s at %s/s"
28262881 msgstr "%s из %s, %s/s"
28272882
2828 #: ../src/empathy-ft-manager.c:275
2883 #: ../src/empathy-ft-manager.c:274
28292884 #, c-format
28302885 msgid "%s of %s"
28312886 msgstr "%s из %s"
28322887
28332888 #. translators: first %s is filename, second %s is the contact name
2834 #: ../src/empathy-ft-manager.c:306
2889 #: ../src/empathy-ft-manager.c:305
28352890 #, c-format
28362891 msgid "Receiving \"%s\" from %s"
28372892 msgstr "Получение «%s» от %s"
28382893
28392894 #. translators: first %s is filename, second %s is the contact name
2840 #: ../src/empathy-ft-manager.c:309
2895 #: ../src/empathy-ft-manager.c:308
28412896 #, c-format
28422897 msgid "Sending \"%s\" to %s"
28432898 msgstr "Отправка «%s» %s"
28442899
28452900 #. translators: first %s is filename, second %s
28462901 #. * is the contact name
2847 #: ../src/empathy-ft-manager.c:339
2902 #: ../src/empathy-ft-manager.c:338
28482903 #, c-format
28492904 msgid "Error receiving \"%s\" from %s"
28502905 msgstr "Ошибка получения «%s» от %s"
28512906
2852 #: ../src/empathy-ft-manager.c:342
2907 #: ../src/empathy-ft-manager.c:341
28532908 msgid "Error receiving a file"
28542909 msgstr "Ошибка получения файла"
28552910
2856 #: ../src/empathy-ft-manager.c:347
2911 #: ../src/empathy-ft-manager.c:346
28572912 #, c-format
28582913 msgid "Error sending \"%s\" to %s"
28592914 msgstr "Ошибка отправки «%s» %s"
28602915
2861 #: ../src/empathy-ft-manager.c:350
2916 #: ../src/empathy-ft-manager.c:349
28622917 msgid "Error sending a file"
28632918 msgstr "Ошибка отправки файла"
28642919
28652920 #. translators: first %s is filename, second %s
28662921 #. * is the contact name
2867 #: ../src/empathy-ft-manager.c:489
2922 #: ../src/empathy-ft-manager.c:488
28682923 #, c-format
28692924 msgid "\"%s\" received from %s"
28702925 msgstr "Получен «%s» от %s"
28712926
28722927 #. translators: first %s is filename, second %s
28732928 #. * is the contact name
2874 #: ../src/empathy-ft-manager.c:494
2929 #: ../src/empathy-ft-manager.c:493
28752930 #, c-format
28762931 msgid "\"%s\" sent to %s"
28772932 msgstr "«%s» отправлен %s"
28782933
2879 #: ../src/empathy-ft-manager.c:497
2934 #: ../src/empathy-ft-manager.c:496
28802935 msgid "File transfer completed"
28812936 msgstr "Передача файла завершена"
28822937
2883 #: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
2938 #: ../src/empathy-ft-manager.c:615 ../src/empathy-ft-manager.c:782
28842939 msgid "Waiting for the other participant's response"
28852940 msgstr "Ожидание ответа от других участников"
28862941
2887 #: ../src/empathy-ft-manager.c:642 ../src/empathy-ft-manager.c:680
2942 #: ../src/empathy-ft-manager.c:641 ../src/empathy-ft-manager.c:679
28882943 #, c-format
28892944 msgid "Checking integrity of \"%s\""
28902945 msgstr "Проверка целостности «%s»"
28912946
2892 #: ../src/empathy-ft-manager.c:645 ../src/empathy-ft-manager.c:683
2947 #: ../src/empathy-ft-manager.c:644 ../src/empathy-ft-manager.c:682
28932948 #, c-format
28942949 msgid "Hashing \"%s\""
28952950 msgstr "Хэширование «%s»"
28962951
2897 #: ../src/empathy-ft-manager.c:991
2952 #: ../src/empathy-ft-manager.c:990
28982953 msgid "%"
28992954 msgstr "%"
29002955
2901 #: ../src/empathy-ft-manager.c:1003
2956 #: ../src/empathy-ft-manager.c:1002
29022957 msgid "File"
29032958 msgstr "Файл"
29042959
2905 #: ../src/empathy-ft-manager.c:1025
2960 #: ../src/empathy-ft-manager.c:1024
29062961 msgid "Remaining"
29072962 msgstr "Осталось"
29082963
29282983 msgstr "Импортировать учётные записи"
29292984
29302985 #. Translators: this is the header of a treeview column
2931 #: ../src/empathy-import-widget.c:290
2986 #: ../src/empathy-import-widget.c:292
29322987 msgid "Import"
29332988 msgstr "Импорт"
29342989
2935 #: ../src/empathy-import-widget.c:299
2990 #: ../src/empathy-import-widget.c:301
29362991 msgid "Protocol"
29372992 msgstr "Протокол"
29382993
2939 #: ../src/empathy-import-widget.c:323
2994 #: ../src/empathy-import-widget.c:325
29402995 msgid "Source"
29412996 msgstr "Источник"
29422997
2943 #: ../src/empathy-import-mc4-accounts.c:106
2944 #, c-format
2945 msgid "%s account"
2946 msgstr "Учётная запись %s"
2947
2948 #: ../src/empathy-main-window.c:437
2998 #: ../src/empathy-main-window.c:476
29492999 msgid "Reconnect"
29503000 msgstr "Переподключиться"
29513001
2952 #: ../src/empathy-main-window.c:443
3002 #: ../src/empathy-main-window.c:482
29533003 msgid "Edit Account"
29543004 msgstr "Правка учётной записи"
29553005
2956 #: ../src/empathy-main-window.c:449
3006 #: ../src/empathy-main-window.c:488
29573007 msgid "Close"
29583008 msgstr "Закрыть"
29593009
2960 #: ../src/empathy-main-window.c:1033
3010 #: ../src/empathy-main-window.c:1177
29613011 msgid "Contact"
29623012 msgstr "Собеседник"
29633013
2964 #: ../src/empathy-main-window.c:1414
3014 #: ../src/empathy-main-window.c:1501
3015 msgid "Contact List"
3016 msgstr "Список собеседников"
3017
3018 #: ../src/empathy-main-window.c:1608
29653019 msgid "Show and edit accounts"
29663020 msgstr "_Показать и редактировать учётные записи"
29673021
29683022 #: ../src/empathy-main-window.ui.h:1
2969 msgid "Contact List"
2970 msgstr "Список собеседников"
2971
2972 #: ../src/empathy-main-window.ui.h:2
29733023 msgid "Contacts on a _Map"
29743024 msgstr "Собеседники на _карте"
29753025
2976 #: ../src/empathy-main-window.ui.h:3
3026 #: ../src/empathy-main-window.ui.h:2
29773027 msgid "Context"
29783028 msgstr "Содержание"
29793029
2980 #: ../src/empathy-main-window.ui.h:4
3030 #: ../src/empathy-main-window.ui.h:3
29813031 msgid "Join _Favorites"
29823032 msgstr "П_одключить любимые"
29833033
2984 #: ../src/empathy-main-window.ui.h:5
3034 #: ../src/empathy-main-window.ui.h:4
29853035 msgid "Manage Favorites"
29863036 msgstr "Настроить любимые"
29873037
2988 #: ../src/empathy-main-window.ui.h:6
3038 #: ../src/empathy-main-window.ui.h:5
29893039 msgid "N_ormal Size"
29903040 msgstr "Обычный _размер"
29913041
2992 #: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
3042 #: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
29933043 msgid "New _Call…"
29943044 msgstr "Новый _вызов…"
29953045
2996 #: ../src/empathy-main-window.ui.h:8
3046 #: ../src/empathy-main-window.ui.h:7
29973047 msgid "Normal Size With _Avatars"
29983048 msgstr "Обычный размер с _аватарами"
29993049
3000 #: ../src/empathy-main-window.ui.h:9
3050 #: ../src/empathy-main-window.ui.h:8
30013051 msgid "P_references"
30023052 msgstr "_Параметры"
30033053
3004 #: ../src/empathy-main-window.ui.h:10
3054 #: ../src/empathy-main-window.ui.h:9
30053055 msgid "Show P_rotocols"
30063056 msgstr "Показывать п_ротоколы"
30073057
3008 #: ../src/empathy-main-window.ui.h:11
3058 #: ../src/empathy-main-window.ui.h:10
30093059 msgid "Sort by _Name"
30103060 msgstr "Упорядочить по _имени"
30113061
3012 #: ../src/empathy-main-window.ui.h:12
3062 #: ../src/empathy-main-window.ui.h:11
30133063 msgid "Sort by _Status"
30143064 msgstr "Упорядочить по с_татусу"
30153065
3016 #: ../src/empathy-main-window.ui.h:13
3066 #: ../src/empathy-main-window.ui.h:12
30173067 msgid "_Accounts"
30183068 msgstr "_Учётные записи"
30193069
3020 #: ../src/empathy-main-window.ui.h:16
3070 #: ../src/empathy-main-window.ui.h:15
30213071 msgid "_Compact Size"
30223072 msgstr "_Компактный размер"
30233073
3024 #: ../src/empathy-main-window.ui.h:18
3074 #: ../src/empathy-main-window.ui.h:17
30253075 msgid "_Debug"
30263076 msgstr "О_тладка"
30273077
3028 #: ../src/empathy-main-window.ui.h:20
3078 #: ../src/empathy-main-window.ui.h:19
30293079 msgid "_File Transfers"
30303080 msgstr "Передачи _файлов"
30313081
3032 #: ../src/empathy-main-window.ui.h:22
3082 #: ../src/empathy-main-window.ui.h:21
30333083 msgid "_Join…"
30343084 msgstr "_Войти…"
30353085
3036 #: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
3086 #: ../src/empathy-main-window.ui.h:22 ../src/empathy-status-icon.ui.h:3
30373087 msgid "_New Conversation…"
30383088 msgstr "Новая _беседа…"
30393089
3040 #: ../src/empathy-main-window.ui.h:24
3090 #: ../src/empathy-main-window.ui.h:23
30413091 msgid "_Offline Contacts"
30423092 msgstr "Собеседники _не в сети"
30433093
3044 #: ../src/empathy-main-window.ui.h:25
3094 #: ../src/empathy-main-window.ui.h:24
30453095 msgid "_Personal Information"
30463096 msgstr "_Личная информация"
30473097
3048 #: ../src/empathy-main-window.ui.h:27
3098 #: ../src/empathy-main-window.ui.h:26
30493099 msgid "_Room"
30503100 msgstr "_Комната"
30513101
3052 #: ../src/empathy-new-chatroom-dialog.c:338
3102 #: ../src/empathy-new-chatroom-dialog.c:379
30533103 msgid "Chat Room"
30543104 msgstr "Комната"
30553105
3056 #: ../src/empathy-new-chatroom-dialog.c:354
3106 #: ../src/empathy-new-chatroom-dialog.c:395
30573107 msgid "Members"
30583108 msgstr "Участники"
30593109
30603110 #. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
30613111 #. yes/no, yes/no and a number.
3062 #: ../src/empathy-new-chatroom-dialog.c:539
3112 #: ../src/empathy-new-chatroom-dialog.c:605
30633113 #, c-format
30643114 msgid ""
30653115 "<b>%s</b>\n"
30723122 "Требуется пароль: %s\n"
30733123 "Участники: %s"
30743124
3075 #: ../src/empathy-new-chatroom-dialog.c:541
3076 #: ../src/empathy-new-chatroom-dialog.c:542
3125 #: ../src/empathy-new-chatroom-dialog.c:607
3126 #: ../src/empathy-new-chatroom-dialog.c:608
30773127 msgid "No"
30783128 msgstr "Нет"
30793129
3080 #: ../src/empathy-new-chatroom-dialog.c:569
3130 #: ../src/empathy-new-chatroom-dialog.c:635
30813131 msgid "Could not start room listing"
30823132 msgstr "Не удалось начать формирование списка комнат"
30833133
3084 #: ../src/empathy-new-chatroom-dialog.c:579
3134 #: ../src/empathy-new-chatroom-dialog.c:645
30853135 msgid "Could not stop room listing"
30863136 msgstr "Не удалось остановить формирование списка комнат"
30873137
31163166 msgid "_Room:"
31173167 msgstr "_Комната:"
31183168
3119 #: ../src/empathy-preferences.c:148
3169 #: ../src/empathy-preferences.c:136
31203170 msgid "Message received"
31213171 msgstr "Сообщение получено"
31223172
3123 #: ../src/empathy-preferences.c:149
3173 #: ../src/empathy-preferences.c:137
31243174 msgid "Message sent"
31253175 msgstr "Сообщение отправлено"
31263176
3127 #: ../src/empathy-preferences.c:150
3177 #: ../src/empathy-preferences.c:138
31283178 msgid "New conversation"
31293179 msgstr "Новая беседа"
31303180
3131 #: ../src/empathy-preferences.c:151
3181 #: ../src/empathy-preferences.c:139
31323182 msgid "Contact goes online"
31333183 msgstr "Собеседник вошёл в сеть"
31343184
3135 #: ../src/empathy-preferences.c:152
3185 #: ../src/empathy-preferences.c:140
31363186 msgid "Contact goes offline"
31373187 msgstr "Собеседник вышел из сети"
31383188
3139 #: ../src/empathy-preferences.c:153
3189 #: ../src/empathy-preferences.c:141
31403190 msgid "Account connected"
31413191 msgstr "Учётная запись зарегистрирована"
31423192
3143 #: ../src/empathy-preferences.c:154
3193 #: ../src/empathy-preferences.c:142
31443194 msgid "Account disconnected"
31453195 msgstr "Учётная запись отключена"
31463196
3147 #: ../src/empathy-preferences.c:394
3197 #: ../src/empathy-preferences.c:437
31483198 msgid "Language"
31493199 msgstr "Язык"
3200
3201 #: ../src/empathy-preferences.c:873
3202 msgid "Preferences"
3203 msgstr "Параметры"
31503204
31513205 #: ../src/empathy-preferences.ui.h:1
31523206 msgid "Appearance"
31533207 msgstr "Внешний вид"
31543208
31553209 #: ../src/empathy-preferences.ui.h:2
3156 msgid "Automatically _connect on startup "
3157 msgstr "_Автоматически соединяться при запуске"
3158
3159 #: ../src/empathy-preferences.ui.h:3
31603210 msgid "Behavior"
31613211 msgstr "Поведение"
31623212
3163 #: ../src/empathy-preferences.ui.h:4
3213 #: ../src/empathy-preferences.ui.h:3
31643214 msgid "Chat Th_eme:"
31653215 msgstr "_Тема оформления беседы:"
31663216
3167 #: ../src/empathy-preferences.ui.h:5
3217 #: ../src/empathy-preferences.ui.h:4
31683218 msgid "Disable notifications when _away or busy"
31693219 msgstr "Выключить уведомления, когда пользователь отошёл или занят"
31703220
3171 #: ../src/empathy-preferences.ui.h:6
3221 #: ../src/empathy-preferences.ui.h:5
31723222 msgid "Disable sounds when _away or busy"
31733223 msgstr "В_ыключить звуки в состоянии «отошёл» или «занят»"
3224
3225 #: ../src/empathy-preferences.ui.h:6
3226 msgid "Display incoming events in the notification area"
3227 msgstr ""
31743228
31753229 #: ../src/empathy-preferences.ui.h:7
31763230 msgid "Enable notifications when a contact comes online"
32053259 msgstr "Воспроизводить звук для событий"
32063260
32073261 #: ../src/empathy-preferences.ui.h:16
3208 msgid "Preferences"
3209 msgstr "Параметры"
3210
3211 #: ../src/empathy-preferences.ui.h:17
32123262 msgid "Privacy"
32133263 msgstr "Приватность"
32143264
3215 #: ../src/empathy-preferences.ui.h:18
3265 #: ../src/empathy-preferences.ui.h:17
32163266 msgid ""
32173267 "Reduced location accuracy means that nothing more precise than your city, "
32183268 "state and country will be published. GPS coordinates will be accurate to 1 "
32223272 "город, регион и страна. Координаты GPS будут отображаться с точностью до 1 "
32233273 "знака после запятой."
32243274
3225 #: ../src/empathy-preferences.ui.h:19
3275 #: ../src/empathy-preferences.ui.h:18
32263276 msgid "Show _smileys as images"
32273277 msgstr "Показывать _графические улыбки"
32283278
3229 #: ../src/empathy-preferences.ui.h:20
3279 #: ../src/empathy-preferences.ui.h:19
32303280 msgid "Show contact _list in rooms"
32313281 msgstr "Показывать _список собеседников в комнатах"
32323282
3233 #: ../src/empathy-preferences.ui.h:21
3283 #: ../src/empathy-preferences.ui.h:20
32343284 msgid "Sounds"
32353285 msgstr "Звуки"
32363286
3237 #: ../src/empathy-preferences.ui.h:22
3287 #: ../src/empathy-preferences.ui.h:21
32383288 msgid "Spell Checking"
32393289 msgstr "Проверка орфографии"
32403290
3241 #: ../src/empathy-preferences.ui.h:23
3291 #: ../src/empathy-preferences.ui.h:22
32423292 msgid ""
32433293 "The list of languages reflects only the languages for which you have a "
32443294 "dictionary installed."
32453295 msgstr ""
32463296 "В этом списке показаны только те языки, для которых установлены словари."
32473297
3248 #: ../src/empathy-preferences.ui.h:24
3298 #: ../src/empathy-preferences.ui.h:23
32493299 msgid "Themes"
32503300 msgstr "Темы"
3301
3302 #: ../src/empathy-preferences.ui.h:24
3303 msgid "_Automatically connect on startup"
3304 msgstr "_Автоматически соединяться при запуске"
32513305
32523306 #: ../src/empathy-preferences.ui.h:25
32533307 msgid "_Cellphone"
32773331 msgid "_Publish location to my contacts"
32783332 msgstr "Пу_бликовать местоположение для собеседников"
32793333
3280 #: ../src/empathy-preferences.ui.h:32
3334 #. 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.
3335 #: ../src/empathy-preferences.ui.h:33
32813336 msgid "_Reduce location accuracy"
32823337 msgstr "_Снижать точность определения местоположения"
32833338
3284 #: ../src/empathy-status-icon.c:176
3339 #: ../src/empathy-status-icon.c:141
32853340 msgid "Respond"
32863341 msgstr "Ответить"
3342
3343 #: ../src/empathy-status-icon.c:147
3344 #, fuzzy
3345 msgid "Reject"
3346 msgstr "_Отказать"
3347
3348 #: ../src/empathy-status-icon.c:151
3349 #, fuzzy
3350 msgid "Answer"
3351 msgstr "_Ответить"
3352
3353 #: ../src/empathy-status-icon.c:158
3354 #, fuzzy
3355 msgid "Decline"
3356 msgstr "_Отклонить"
3357
3358 #: ../src/empathy-status-icon.c:162
3359 #, fuzzy
3360 msgid "Accept"
3361 msgstr "Учётная запись"
32873362
32883363 #: ../src/empathy-status-icon.ui.h:2
32893364 msgid "Status"
32933368 msgid "_Quit"
32943369 msgstr "В_ыход"
32953370
3296 #: ../src/empathy-map-view.ui.h:1
3371 #: ../src/empathy-map-view.c:452
32973372 msgid "Contact Map View"
32983373 msgstr "Собеседники на карте"
32993374
3300 #: ../src/empathy-debug-window.c:1066
3375 #: ../src/empathy-debug-window.c:1219
33013376 msgid "Save"
33023377 msgstr "Сохранить"
33033378
3304 #: ../src/empathy-debug-window.c:1219
3379 #: ../src/empathy-debug-window.c:1395
33053380 msgid "Debug Window"
33063381 msgstr "Окно отладки"
33073382
3308 #: ../src/empathy-debug-window.c:1299
3383 #: ../src/empathy-debug-window.c:1475
33093384 msgid "Pause"
33103385 msgstr "Пауза"
33113386
3312 #: ../src/empathy-debug-window.c:1311
3387 #: ../src/empathy-debug-window.c:1487
33133388 msgid "Level "
33143389 msgstr "Уровень"
33153390
3316 #: ../src/empathy-debug-window.c:1331
3391 #: ../src/empathy-debug-window.c:1507
33173392 msgid "Debug"
33183393 msgstr "Отладка"
33193394
3320 #: ../src/empathy-debug-window.c:1337
3395 #: ../src/empathy-debug-window.c:1513
33213396 msgid "Info"
33223397 msgstr "Информация"
33233398
3324 #: ../src/empathy-debug-window.c:1343 ../src/empathy-debug-window.c:1392
3399 #: ../src/empathy-debug-window.c:1519 ../src/empathy-debug-window.c:1568
33253400 msgid "Message"
33263401 msgstr "Сообщение"
33273402
3328 #: ../src/empathy-debug-window.c:1349
3403 #: ../src/empathy-debug-window.c:1525
33293404 msgid "Warning"
33303405 msgstr "Предупреждение"
33313406
3332 #: ../src/empathy-debug-window.c:1355
3407 #: ../src/empathy-debug-window.c:1531
33333408 msgid "Critical"
33343409 msgstr "Критическая ошибка"
33353410
3336 #: ../src/empathy-debug-window.c:1361
3411 #: ../src/empathy-debug-window.c:1537
33373412 msgid "Error"
33383413 msgstr "Ошибка"
33393414
3340 #: ../src/empathy-debug-window.c:1380
3415 #: ../src/empathy-debug-window.c:1556
33413416 msgid "Time"
33423417 msgstr "Время"
33433418
3344 #: ../src/empathy-debug-window.c:1383
3419 #: ../src/empathy-debug-window.c:1559
33453420 msgid "Domain"
33463421 msgstr "Домен"
33473422
3348 #: ../src/empathy-debug-window.c:1385
3423 #: ../src/empathy-debug-window.c:1561
33493424 msgid "Category"
33503425 msgstr "Категория"
33513426
3352 #: ../src/empathy-debug-window.c:1387
3427 #: ../src/empathy-debug-window.c:1563
33533428 msgid "Level"
33543429 msgstr "Уровень"
33553430
3356 #: ../src/empathy-debug-window.c:1424
3431 #: ../src/empathy-debug-window.c:1600
33573432 msgid ""
33583433 "The selected connection manager does not support the remote debugging "
33593434 "extension."
33693444 msgid "Choose a contact to invite into the conversation:"
33703445 msgstr "Выберите собеседника для приглашения к беседе:"
33713446
3372 #: ../src/empathy-accounts.c:213
3447 #: ../src/empathy-invite-participant-dialog.c:45
3448 #, fuzzy
3449 msgid "Invite"
3450 msgstr "Невидимый"
3451
3452 #: ../src/empathy-accounts.c:182
33733453 msgid "Don't display any dialogs; do any work (eg, importing) and exit"
33743454 msgstr ""
33753455 "Не показывать диалоговые окна; выполнить работу (напр., импортирование) и "
33763456 "выйти"
33773457
3378 #: ../src/empathy-accounts.c:217
3458 #: ../src/empathy-accounts.c:186
33793459 msgid "Don't display any dialogs if there are any non-salut accounts"
33803460 msgstr ""
33813461 "Не показывать диалоговые окна, если имеются учётные записи, отличные от salut"
33823462
3383 #: ../src/empathy-accounts.c:221
3463 #: ../src/empathy-accounts.c:190
33843464 msgid "Initially select given account (eg, gabble/jabber/foo_40example_2eorg0)"
33853465 msgstr ""
33863466 "Сначала выберите учётную запись (например, gabble/jabber/"
33873467 "foo_40example_2eorg0)"
33883468
3389 #: ../src/empathy-accounts.c:223
3469 #: ../src/empathy-accounts.c:192
33903470 msgid "<account-id>"
33913471 msgstr "<account-id>"
33923472
3393 #: ../src/empathy-accounts.c:231
3473 #: ../src/empathy-accounts.c:200
33943474 msgid "- Empathy Accounts"
33953475 msgstr "- Учётные записи Empathy"
33963476
3397 #: ../src/empathy-accounts.c:247
3477 #: ../src/empathy-accounts.c:216
33983478 msgid "Empathy Accounts"
33993479 msgstr "Учётные записи Empathy"
34003480
34013481 #: ../src/empathy-debugger.c:40
34023482 msgid "Empathy Debugger"
34033483 msgstr "Отладчик Empathy"
3484
3485 #~ msgid "Send and receive messages"
3486 #~ msgstr "Получение и отправка сообщений"
3487
3488 #~ msgid "MC 4 accounts have been imported"
3489 #~ msgstr "Учётные записи MC 4 импортированы"
3490
3491 #~ msgid "MC 4 accounts have been imported."
3492 #~ msgstr "Учётные записи MC 4 импортированы."
3493
3494 #~ msgid "Failed to reconnect this chat"
3495 #~ msgstr "Не удалсь повторно подключиться к этому чату"
3496
3497 #~ msgid "Failed to join chat room"
3498 #~ msgstr "Не удалось войти в комнату"
3499
3500 #~ msgid "Select a destination"
3501 #~ msgstr "Выберите назначение"
3502
3503 #~ msgid "%s account"
3504 #~ msgstr "Учётная запись %s"
3505
3506 #~ msgid "Hostname of the proxy for outbound requests."
3507 #~ msgstr "Имя хоста прокси для исходящих запросов"
3508
3509 #~ msgid ""
3510 #~ "Look up the DNS SRV record at the service's domain for the host name of a "
3511 #~ "STUN server."
3512 #~ msgstr "Искать запись DNS SRV в домене службы для имени хоста сервера STUN."
3513
3514 #~ msgid "Port of the proxy for outbound requests."
3515 #~ msgstr "Порт прокси для исходящих запросов."
3516
3517 #~ msgid ""
3518 #~ "The username for SIP authentication, if different from the SIP URI\n"
3519 #~ "username."
3520 #~ msgstr ""
3521 #~ "Имя пользователя для аутентификации SIP, если оно отличается\n"
3522 #~ "от имени пользователя SIP URI."
3523
3524 #~ msgid ""
3525 #~ "Update the registration binding if the external address for the client is "
3526 #~ "discovered to be different from the local binding."
3527 #~ msgstr ""
3528 #~ "Обновлять регистрационное соединение, если обнаружено, что внешний адрес "
3529 #~ "для клиента отличается от локального соединения."
3530
3531 #~ msgid ""
3532 #~ "Use the loose routing behavior and the Route header as recommended in RFC "
3533 #~ "3261."
3534 #~ msgstr ""
3535 #~ "Использовать свободную маршрутизацию и заголовок маршрута, как "
3536 #~ "рекомендуется в RFC 3261."
+656
-425
po/sl.po less more
0 # Slovenian translation for empathy.
0 # Slovenian translation of empathy.
11 # Copyright (C) 2009 empathy COPYRIGHT HOLDER
22 # This file is distributed under the same license as the empathy package.
33 #
66 #
77 msgid ""
88 msgstr ""
9 "Project-Id-Version: empathy\n"
9 "Project-Id-Version: empathy master\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&component=general\n"
11 "POT-Creation-Date: 2010-07-05 13:33+0000\n"
12 "PO-Revision-Date: 2010-07-25 19:14+0100\n"
13 "Last-Translator: Andrej Žnidaršič <andrej.znidarsic@gmail.com>\n"
11 "POT-Creation-Date: 2010-08-17 12:27+0000\n"
12 "PO-Revision-Date: 2010-08-17 14:38+0100\n"
13 "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
1414 "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
1515 "MIME-Version: 1.0\n"
1616 "Content-Type: text/plain; charset=UTF-8\n"
2121 "X-Poedit-SourceCharset: utf-8\n"
2222
2323 #: ../data/empathy.desktop.in.in.h:1
24 msgid "Chat on Google Talk, Facebook, MSN, and many other chat services"
25 msgstr "Klepet na Google Talk, Facebook, MSN in drugih klepetalnih storitvah."
26
27 #: ../data/empathy.desktop.in.in.h:2
2428 msgid "Empathy"
2529 msgstr "Empathy"
2630
27 #: ../data/empathy.desktop.in.in.h:2
31 #: ../data/empathy.desktop.in.in.h:3
2832 msgid "Empathy Internet Messaging"
2933 msgstr "Hipno sporočanje Empathy"
3034
31 #: ../data/empathy.desktop.in.in.h:3
35 #: ../data/empathy.desktop.in.in.h:4
3236 msgid "IM Client"
3337 msgstr "Hipni sporočilnik"
34
35 #: ../data/empathy.desktop.in.in.h:4
36 msgid "Send and receive messages"
37 msgstr "Pošiljanje in prejemanje hipnih sporočil"
3838
3939 #: ../data/org.gnome.Empathy.gschema.xml.in.h:1
4040 msgid "Always open a separate chat window for new chats."
7777 msgstr "Onemogoči zvok ob odsotnosti"
7878
7979 #: ../data/org.gnome.Empathy.gschema.xml.in.h:11
80 msgid "Display incoming events in the status area"
81 msgstr "Prikaz prihajajočih dogodkov v vrstici stanja."
82
83 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
84 msgid "Display incoming events in the status area. If false present them right away to the user."
85 msgstr "Prikaz prihajajočih dogodkov v vrstici stanja. V primeru, da možnost ni izbrana, bodo prikazane takoj."
86
87 #: ../data/org.gnome.Empathy.gschema.xml.in.h:13
8088 msgid "Empathy can publish the user's location"
8189 msgstr "Program Empathy lahko objavi mesto nahajanja uporabnika"
8290
83 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
91 #: ../data/org.gnome.Empathy.gschema.xml.in.h:14
8492 msgid "Empathy can use the GPS to guess the location"
8593 msgstr "Program Empathy lahko uporabi GPS za ugotavljanje mesta nahajanja"
8694
87 #: ../data/org.gnome.Empathy.gschema.xml.in.h:13
95 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
8896 msgid "Empathy can use the cellular network to guess the location"
8997 msgstr "Program Empathy lahko uporabi mobilni telefon za ugotavljanje mesta nahajanja"
9098
91 #: ../data/org.gnome.Empathy.gschema.xml.in.h:14
99 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
92100 msgid "Empathy can use the network to guess the location"
93101 msgstr "Program Empathy lahko uporabi omrežje za ugotavljanje mesta nahajanja"
94102
95 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
103 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
96104 msgid "Empathy default download folder"
97105 msgstr "Privzeta mapa za prenos datotek"
98106
99 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
107 #: ../data/org.gnome.Empathy.gschema.xml.in.h:18
100108 msgid "Empathy has asked about importing accounts"
101109 msgstr "Program Empathy zahteva podrobnosti o uvozu računov"
102110
103 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
111 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
104112 msgid "Empathy has migrated butterfly logs"
105113 msgstr "Empathy je prenesel dnevniške zapise butterfly."
106114
107 #: ../data/org.gnome.Empathy.gschema.xml.in.h:18
115 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
108116 msgid "Empathy should auto-away when idle"
109117 msgstr "Ob nedejavnosti samodejno preklopi na stanje odsotnosti"
110118
111 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
119 #: ../data/org.gnome.Empathy.gschema.xml.in.h:21
112120 msgid "Empathy should auto-connect on startup"
113121 msgstr "Program Empathy naj se samodejno poveže ob zagonu"
114122
115 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
123 #: ../data/org.gnome.Empathy.gschema.xml.in.h:22
116124 msgid "Empathy should reduce the location's accuracy"
117125 msgstr "Program Empathy naj zmanjša natančnost določevanja nahajanja"
118126
119 #: ../data/org.gnome.Empathy.gschema.xml.in.h:21
127 #: ../data/org.gnome.Empathy.gschema.xml.in.h:23
120128 msgid "Empathy should use the avatar of the contact as the chat window icon"
121129 msgstr "Program naj uporabi podobo stika kot ikono klepetalnega okna"
122130
123 #: ../data/org.gnome.Empathy.gschema.xml.in.h:22
131 #: ../data/org.gnome.Empathy.gschema.xml.in.h:24
124132 msgid "Enable WebKit Developer Tools"
125133 msgstr "Omogoči razvojna orodja WebKit"
126134
127 #: ../data/org.gnome.Empathy.gschema.xml.in.h:23
135 #: ../data/org.gnome.Empathy.gschema.xml.in.h:25
128136 msgid "Enable popup notifications for new messages"
129137 msgstr "Omogoči pojavna obvestila ob novih sporočilih"
130138
131 #: ../data/org.gnome.Empathy.gschema.xml.in.h:24
139 #: ../data/org.gnome.Empathy.gschema.xml.in.h:26
132140 msgid "Enable spell checker"
133141 msgstr "Omogoči črkovalnik"
134142
135 #: ../data/org.gnome.Empathy.gschema.xml.in.h:25
143 #: ../data/org.gnome.Empathy.gschema.xml.in.h:27
136144 msgid "Hide main window"
137145 msgstr "Skrij glavno okno"
138146
139 #: ../data/org.gnome.Empathy.gschema.xml.in.h:26
147 #: ../data/org.gnome.Empathy.gschema.xml.in.h:28
140148 msgid "Hide the main window."
141149 msgstr "Skrivanje glavnega okna."
142150
143 #: ../data/org.gnome.Empathy.gschema.xml.in.h:27
151 #: ../data/org.gnome.Empathy.gschema.xml.in.h:29
144152 msgid "Nick completed character"
145153 msgstr "Znak na koncu vzdevka"
146154
147 #: ../data/org.gnome.Empathy.gschema.xml.in.h:28
155 #: ../data/org.gnome.Empathy.gschema.xml.in.h:30
148156 msgid "Open new chats in separate windows"
149157 msgstr "Nov klepet naj se odpre v ločenem oknu"
150158
151 #: ../data/org.gnome.Empathy.gschema.xml.in.h:29
159 #: ../data/org.gnome.Empathy.gschema.xml.in.h:31
152160 msgid "Path of the Adium theme to use"
153161 msgstr "Pot do želene teme Adium "
154162
155 #: ../data/org.gnome.Empathy.gschema.xml.in.h:30
163 #: ../data/org.gnome.Empathy.gschema.xml.in.h:32
156164 msgid "Path of the Adium theme to use if the theme used for chat is Adium."
157165 msgstr "Pot do želene teme Adium, kadar je ta določena za klepet."
158166
159 #: ../data/org.gnome.Empathy.gschema.xml.in.h:31
167 #: ../data/org.gnome.Empathy.gschema.xml.in.h:33
160168 msgid "Play a sound for incoming messages"
161169 msgstr "Predvajaj zvok ob prejetju novih sporočil"
162170
163 #: ../data/org.gnome.Empathy.gschema.xml.in.h:32
171 #: ../data/org.gnome.Empathy.gschema.xml.in.h:34
164172 msgid "Play a sound for new conversations"
165173 msgstr "Predvajaj zvok ob novih pogovorih"
166174
167 #: ../data/org.gnome.Empathy.gschema.xml.in.h:33
175 #: ../data/org.gnome.Empathy.gschema.xml.in.h:35
168176 msgid "Play a sound for outgoing messages"
169177 msgstr "Predvajaj zvok ob pošiljanju sporočil"
170178
171 #: ../data/org.gnome.Empathy.gschema.xml.in.h:34
179 #: ../data/org.gnome.Empathy.gschema.xml.in.h:36
172180 msgid "Play a sound when a contact logs in"
173181 msgstr "Predvajaj zvok ob prijavi stika"
174182
175 #: ../data/org.gnome.Empathy.gschema.xml.in.h:35
183 #: ../data/org.gnome.Empathy.gschema.xml.in.h:37
176184 msgid "Play a sound when a contact logs out"
177185 msgstr "Predvajaj zvok ob odjavi stika"
178186
179 #: ../data/org.gnome.Empathy.gschema.xml.in.h:36
187 #: ../data/org.gnome.Empathy.gschema.xml.in.h:38
180188 msgid "Play a sound when we log in"
181189 msgstr "Predvajaj zvok ob prijavi"
182190
183 #: ../data/org.gnome.Empathy.gschema.xml.in.h:37
191 #: ../data/org.gnome.Empathy.gschema.xml.in.h:39
184192 msgid "Play a sound when we log out"
185193 msgstr "Predvajaj zvok ob odjavi"
186194
187 #: ../data/org.gnome.Empathy.gschema.xml.in.h:38
195 #: ../data/org.gnome.Empathy.gschema.xml.in.h:40
188196 msgid "Pop up notifications if the chat isn't focused"
189197 msgstr "Pokaži pojavna obvestila, ko klepetalno okno ni v žarišču."
190198
191 #: ../data/org.gnome.Empathy.gschema.xml.in.h:39
199 #: ../data/org.gnome.Empathy.gschema.xml.in.h:41
192200 msgid "Pop up notifications when a contact logs in"
193201 msgstr "Pokaži pojavna obvestila ob prijavi stikov"
194202
195 #: ../data/org.gnome.Empathy.gschema.xml.in.h:40
203 #: ../data/org.gnome.Empathy.gschema.xml.in.h:42
196204 msgid "Pop up notifications when a contact logs out"
197205 msgstr "Pokaži pojavna obvestila ob odjavi stikov"
198206
199 #: ../data/org.gnome.Empathy.gschema.xml.in.h:41
207 #: ../data/org.gnome.Empathy.gschema.xml.in.h:43
200208 msgid "Show avatars"
201209 msgstr "Pokaži podobe"
202210
203 #: ../data/org.gnome.Empathy.gschema.xml.in.h:42
211 #: ../data/org.gnome.Empathy.gschema.xml.in.h:44
204212 msgid "Show contact list in rooms"
205213 msgstr "Pokaži seznam stikov v klepetalnicah"
206214
207 #: ../data/org.gnome.Empathy.gschema.xml.in.h:43
215 #: ../data/org.gnome.Empathy.gschema.xml.in.h:45
208216 msgid "Show hint about closing the main window"
209217 msgstr "Pokaži namig ob zapiranju glavnega okna"
210218
211 #: ../data/org.gnome.Empathy.gschema.xml.in.h:44
219 #: ../data/org.gnome.Empathy.gschema.xml.in.h:46
212220 msgid "Show offline contacts"
213221 msgstr "Pokaži tudi nepovezane stike"
214222
215 #: ../data/org.gnome.Empathy.gschema.xml.in.h:45
223 #: ../data/org.gnome.Empathy.gschema.xml.in.h:47
216224 msgid "Show protocols"
217225 msgstr "Pokaži protokole"
218226
219 #: ../data/org.gnome.Empathy.gschema.xml.in.h:46
227 #: ../data/org.gnome.Empathy.gschema.xml.in.h:48
220228 msgid "Spell checking languages"
221229 msgstr "Jeziki za črkovanje"
222230
223 #: ../data/org.gnome.Empathy.gschema.xml.in.h:47
231 #: ../data/org.gnome.Empathy.gschema.xml.in.h:49
224232 msgid "The default folder to save file transfers in."
225233 msgstr "Privzeta mapa za shranjevanje prejetih datotek."
226234
227 #: ../data/org.gnome.Empathy.gschema.xml.in.h:48
235 #: ../data/org.gnome.Empathy.gschema.xml.in.h:50
228236 msgid "The last directory that an avatar image was chosen from."
229237 msgstr "Zadnja mapa iz katere je bila izbrana podoba."
230238
231 #: ../data/org.gnome.Empathy.gschema.xml.in.h:49
239 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
232240 msgid "The position for the chat window side pane"
233241 msgstr "Položaj stranskega pladnja v klepetalnem oknu"
234242
235 #: ../data/org.gnome.Empathy.gschema.xml.in.h:50
243 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
236244 msgid "The stored position (in pixels) of the chat window side pane."
237245 msgstr "Shranjen položaj (v točkah) stranskega pladnja v klepetalnem oknu."
238246
239 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
247 #: ../data/org.gnome.Empathy.gschema.xml.in.h:53
240248 msgid "The theme that is used to display the conversation in chat windows."
241249 msgstr "Tema uporabljena za prikaz pogovorov v klepetalnih oknih."
242250
243 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
251 #: ../data/org.gnome.Empathy.gschema.xml.in.h:54
244252 msgid "Use graphical smileys"
245253 msgstr "Uporabi slikovne smeške"
246254
247 #: ../data/org.gnome.Empathy.gschema.xml.in.h:53
255 #: ../data/org.gnome.Empathy.gschema.xml.in.h:55
248256 msgid "Use notification sounds"
249257 msgstr "Uporabi zvoke obvestil"
250258
251 #: ../data/org.gnome.Empathy.gschema.xml.in.h:54
259 #: ../data/org.gnome.Empathy.gschema.xml.in.h:56
252260 msgid "Use theme for chat rooms"
253261 msgstr "Uporabi temo za klepetalnice"
254262
255 #: ../data/org.gnome.Empathy.gschema.xml.in.h:55
263 #: ../data/org.gnome.Empathy.gschema.xml.in.h:57
256264 msgid "Whether Empathy can publish the user's location to their contacts."
257265 msgstr "Ali naj program Empathy objavlja mesta nahajanja uporabnika njegovim stikom."
258266
259 #: ../data/org.gnome.Empathy.gschema.xml.in.h:56
267 #: ../data/org.gnome.Empathy.gschema.xml.in.h:58
260268 msgid "Whether Empathy can use the GPS to guess the location."
261269 msgstr "Ali naj program Empathy za pridobivanje mesta nahajanja uporablja GPS."
262270
263 #: ../data/org.gnome.Empathy.gschema.xml.in.h:57
271 #: ../data/org.gnome.Empathy.gschema.xml.in.h:59
264272 msgid "Whether Empathy can use the cellular network to guess the location."
265273 msgstr "Ali naj Empathy za pridobivanje mesta nahajanja uporablja podatke mobilnega omrežja."
266274
267 #: ../data/org.gnome.Empathy.gschema.xml.in.h:58
275 #: ../data/org.gnome.Empathy.gschema.xml.in.h:60
268276 msgid "Whether Empathy can use the network to guess the location."
269277 msgstr "Ali naj Empathy za pridobivanje mesta nahajanja uporablja omrežje."
270278
271 #: ../data/org.gnome.Empathy.gschema.xml.in.h:59
279 #: ../data/org.gnome.Empathy.gschema.xml.in.h:61
272280 msgid "Whether Empathy has asked about importing accounts from other programs."
273281 msgstr "Ali naj program Empathy zahteva podrobnosti o uvozu računov iz drugih programov."
274282
275 #: ../data/org.gnome.Empathy.gschema.xml.in.h:60
283 #: ../data/org.gnome.Empathy.gschema.xml.in.h:62
276284 msgid "Whether Empathy has migrated butterfly logs."
277285 msgstr "Ali je program Empathy preselil dnevniške zapise butterfly."
278286
279 #: ../data/org.gnome.Empathy.gschema.xml.in.h:61
287 #: ../data/org.gnome.Empathy.gschema.xml.in.h:63
280288 msgid "Whether Empathy should automatically log into your accounts on startup."
281289 msgstr "Ali naj se ob zagonu program Empathy samodejno prijavi v vaše račune."
282290
283 #: ../data/org.gnome.Empathy.gschema.xml.in.h:62
291 #: ../data/org.gnome.Empathy.gschema.xml.in.h:64
284292 msgid "Whether Empathy should go into away mode automatically if user is idle."
285293 msgstr "Ali naj se ob nedejavnosti program Empathy samodejno postavi v stanje odsotnosti."
286294
287 #: ../data/org.gnome.Empathy.gschema.xml.in.h:63
295 #: ../data/org.gnome.Empathy.gschema.xml.in.h:65
288296 msgid "Whether Empathy should reduce the location's accuracy for privacy reasons."
289297 msgstr "Ali naj program Empathy zaradi zasebnosti zmanjšuje natančnost položaja."
290298
291 #: ../data/org.gnome.Empathy.gschema.xml.in.h:64
299 #: ../data/org.gnome.Empathy.gschema.xml.in.h:66
292300 msgid "Whether Empathy should use the avatar of the contact as the chat window icon."
293301 msgstr "Ali naj program Empathy uporablja podobe stikov za ikone klepetalnih oken."
294302
295 #: ../data/org.gnome.Empathy.gschema.xml.in.h:65
303 #: ../data/org.gnome.Empathy.gschema.xml.in.h:67
296304 msgid "Whether WebKit developer tools, such as the Web Inspector, should be enabled."
297305 msgstr "Ali naj bodo vključena razvijalna orodja WebKit kot je na primer Web Inspector."
298306
299 #: ../data/org.gnome.Empathy.gschema.xml.in.h:66
307 #: ../data/org.gnome.Empathy.gschema.xml.in.h:68
300308 msgid "Whether connectivity managers should be used to automatically disconnect/reconnect."
301309 msgstr "Ali naj upravljalnik omrežja samodejno vzpostavi in prekine povezavo."
302310
303 #: ../data/org.gnome.Empathy.gschema.xml.in.h:67
311 #: ../data/org.gnome.Empathy.gschema.xml.in.h:69
304312 msgid "Whether to check words typed against the languages you want to check with."
305313 msgstr "Ali naj se preverja črkovanje besed v želenih jezikih."
306314
307 #: ../data/org.gnome.Empathy.gschema.xml.in.h:68
315 #: ../data/org.gnome.Empathy.gschema.xml.in.h:70
308316 msgid "Whether to convert smileys into graphical images in conversations."
309317 msgstr "Ali naj se pri pogovorih smeški pretvorijo v sličice."
310318
311 #: ../data/org.gnome.Empathy.gschema.xml.in.h:69
319 #: ../data/org.gnome.Empathy.gschema.xml.in.h:71
312320 msgid "Whether to play a sound to notify of contacts logging into the network."
313321 msgstr "Ali naj se predvaja zvok ob prijavi stika v omrežje."
314322
315 #: ../data/org.gnome.Empathy.gschema.xml.in.h:70
323 #: ../data/org.gnome.Empathy.gschema.xml.in.h:72
316324 msgid "Whether to play a sound to notify of contacts logging out of the network."
317325 msgstr "Ali naj se predvaja zvok ob odjavi stika iz omrežja."
318326
319 #: ../data/org.gnome.Empathy.gschema.xml.in.h:71
327 #: ../data/org.gnome.Empathy.gschema.xml.in.h:73
320328 msgid "Whether to play a sound to notify of events."
321329 msgstr "Ali naj se predvaja zvok ob dogodkih."
322330
323 #: ../data/org.gnome.Empathy.gschema.xml.in.h:72
331 #: ../data/org.gnome.Empathy.gschema.xml.in.h:74
324332 msgid "Whether to play a sound to notify of incoming messages."
325333 msgstr "Ali naj se predvaja zvok ob prejetju novega sporočila."
326334
327 #: ../data/org.gnome.Empathy.gschema.xml.in.h:73
335 #: ../data/org.gnome.Empathy.gschema.xml.in.h:75
328336 msgid "Whether to play a sound to notify of new conversations."
329337 msgstr "Ali naj se predvaja zvok ob novih pogovorih."
330338
331 #: ../data/org.gnome.Empathy.gschema.xml.in.h:74
339 #: ../data/org.gnome.Empathy.gschema.xml.in.h:76
332340 msgid "Whether to play a sound to notify of outgoing messages."
333341 msgstr "Ali naj se predvaja zvok ob pošiljanju sporočil."
334342
335 #: ../data/org.gnome.Empathy.gschema.xml.in.h:75
343 #: ../data/org.gnome.Empathy.gschema.xml.in.h:77
336344 msgid "Whether to play a sound when logging into a network."
337345 msgstr "Ali naj se predvaja zvok ob prijavi v omrežje."
338346
339 #: ../data/org.gnome.Empathy.gschema.xml.in.h:76
347 #: ../data/org.gnome.Empathy.gschema.xml.in.h:78
340348 msgid "Whether to play a sound when logging out of a network."
341349 msgstr "Ali naj se predvaja zvok ob odjavi iz omrežja."
342350
343 #: ../data/org.gnome.Empathy.gschema.xml.in.h:77
351 #: ../data/org.gnome.Empathy.gschema.xml.in.h:79
344352 msgid "Whether to play sound notifications when away or busy."
345353 msgstr "Ali naj se predvaja zvok ob odsotnosti in zaposlenosti."
346354
347 #: ../data/org.gnome.Empathy.gschema.xml.in.h:78
355 #: ../data/org.gnome.Empathy.gschema.xml.in.h:80
348356 msgid "Whether to show a popup notification when a contact goes offline."
349357 msgstr "Ali naj se pojavi obvestilo, ko stik izklopi povezavo."
350358
351 #: ../data/org.gnome.Empathy.gschema.xml.in.h:79
359 #: ../data/org.gnome.Empathy.gschema.xml.in.h:81
352360 msgid "Whether to show a popup notification when a contact goes online."
353361 msgstr "Ali naj se pojavi obvestilo ob vzpostavitvi povezave stika."
354362
355 #: ../data/org.gnome.Empathy.gschema.xml.in.h:80
363 #: ../data/org.gnome.Empathy.gschema.xml.in.h:82
356364 msgid "Whether to show a popup notification when receiving a new message even if the chat is already opened, but not focused."
357365 msgstr "Ali naj se pojavi obvestilo ob prejetju novega sporočila tudi, kadar je klepetalno okno že odprto, vendar ni v žarišču."
358366
359 #: ../data/org.gnome.Empathy.gschema.xml.in.h:81
367 #: ../data/org.gnome.Empathy.gschema.xml.in.h:83
360368 msgid "Whether to show a popup notification when receiving a new message."
361369 msgstr "Ali naj se pojavi obvestilo ob prejetju novega sporočila."
362370
363 #: ../data/org.gnome.Empathy.gschema.xml.in.h:82
371 #: ../data/org.gnome.Empathy.gschema.xml.in.h:84
364372 msgid "Whether to show avatars for contacts in the contact list and chat windows."
365373 msgstr "Ali naj bodo podobe stikov prikazane v seznamih in klepetalnih oknih."
366374
367 #: ../data/org.gnome.Empathy.gschema.xml.in.h:83
375 #: ../data/org.gnome.Empathy.gschema.xml.in.h:85
368376 msgid "Whether to show contacts that are offline in the contact list."
369377 msgstr "Ali naj bodo na seznamu stikov prikazani tudi nepovezani stiki."
370378
371 #: ../data/org.gnome.Empathy.gschema.xml.in.h:84
379 #: ../data/org.gnome.Empathy.gschema.xml.in.h:86
372380 msgid "Whether to show popup notifications when away or busy."
373381 msgstr "Ali naj bodo pojavna obvestila prikazana ob odsotnosti ali zaposlenosti."
374382
375 #: ../data/org.gnome.Empathy.gschema.xml.in.h:85
383 #: ../data/org.gnome.Empathy.gschema.xml.in.h:87
376384 msgid "Whether to show protocols for contacts in the contact list."
377385 msgstr "Ali naj bodo v seznamih stikov in klepetalnih oknih prikazani protokoli stikov."
378386
379 #: ../data/org.gnome.Empathy.gschema.xml.in.h:86
387 #: ../data/org.gnome.Empathy.gschema.xml.in.h:88
380388 msgid "Whether to show the contact list in chat rooms."
381389 msgstr "Ali naj bo v klepetalnicah prikazan seznam stikov."
382390
383 #: ../data/org.gnome.Empathy.gschema.xml.in.h:87
391 #: ../data/org.gnome.Empathy.gschema.xml.in.h:89
384392 msgid "Whether to show the contact list in compact mode."
385393 msgstr "Ali naj bo v skrčenem pogledu prikazan seznam stikov."
386394
387 #: ../data/org.gnome.Empathy.gschema.xml.in.h:88
395 #: ../data/org.gnome.Empathy.gschema.xml.in.h:90
388396 msgid "Whether to show the message dialog about closing the main window with the 'x' button in the title bar."
389397 msgstr "Ali naj bo pogovorno okno sporočila o zapiranju glavnega okna prikazano z gumbom 'x' v nazivni vrstici."
390398
391 #: ../data/org.gnome.Empathy.gschema.xml.in.h:89
399 #: ../data/org.gnome.Empathy.gschema.xml.in.h:91
392400 msgid "Whether to use the theme for chat rooms."
393401 msgstr "Ali naj se za klepetalnice uporablja tema."
394402
395 #: ../data/org.gnome.Empathy.gschema.xml.in.h:90
403 #: ../data/org.gnome.Empathy.gschema.xml.in.h:92
396404 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 the contact list by state."
397405 msgstr "Kateri kriterij naj se uporabi za razvrščanje seznama stikov. Privzeto je razvrščanje po imenu stika z vrednostjo \"ime\". Vrednost \"stanje\" pa razvrsti seznam glede na stanje stikov."
398406
402410
403411 #. Tweak the dialog
404412 #: ../data/empathy-accounts.desktop.in.in.h:2
405 #: ../src/empathy-accounts-dialog.c:2094
406 #: ../src/cc-empathy-accounts-page.c:244
407 #: ../src/cc-empathy-accounts-panel.c:91
413 #: ../src/empathy-accounts-dialog.c:2092
408414 msgid "Messaging and VoIP Accounts"
409415 msgstr "Sporočanje in računi VoIP"
410416
411 #: ../libempathy/empathy-ft-handler.c:843
417 #: ../libempathy/empathy-ft-handler.c:851
412418 msgid "The hash of the received file and the sent one do not match"
413419 msgstr "Razpršili prejete in poslane datoteke se ne skladata"
414420
415 #: ../libempathy/empathy-ft-handler.c:1103
421 #: ../libempathy/empathy-ft-handler.c:1111
416422 msgid "File transfer not supported by remote contact"
417423 msgstr "Prenos datotek s strani oddaljenega stika ni podprt"
418424
419 #: ../libempathy/empathy-ft-handler.c:1161
425 #: ../libempathy/empathy-ft-handler.c:1169
420426 msgid "The selected file is not a regular file"
421427 msgstr "Izbrana datoteka ni običajna datoteka"
422428
423 #: ../libempathy/empathy-ft-handler.c:1170
429 #: ../libempathy/empathy-ft-handler.c:1178
424430 msgid "The selected file is empty"
425431 msgstr "Izbrana datoteka je prazna"
426432
427 #: ../libempathy/empathy-tp-file.c:281
433 #: ../libempathy/empathy-tp-file.c:283
428434 msgid "Socket type not supported"
429435 msgstr "Vrsta vtičnice ni podprta"
430436
431 #: ../libempathy/empathy-tp-file.c:400
437 #: ../libempathy/empathy-tp-file.c:402
432438 msgid "No reason was specified"
433439 msgstr "Ni navedenega vzroka"
434440
435 #: ../libempathy/empathy-tp-file.c:403
441 #: ../libempathy/empathy-tp-file.c:405
436442 msgid "The change in state was requested"
437443 msgstr "Zahtevana je bila zamenjava stanja"
438444
439 #: ../libempathy/empathy-tp-file.c:406
445 #: ../libempathy/empathy-tp-file.c:408
440446 msgid "You canceled the file transfer"
441447 msgstr "Prenos datoteke ste preklicali"
442448
443 #: ../libempathy/empathy-tp-file.c:409
449 #: ../libempathy/empathy-tp-file.c:411
444450 msgid "The other participant canceled the file transfer"
445451 msgstr "Drug uporabnik je preklical prenos datoteke"
446452
447 #: ../libempathy/empathy-tp-file.c:412
453 #: ../libempathy/empathy-tp-file.c:414
448454 msgid "Error while trying to transfer the file"
449455 msgstr "Prišlo je do napake med prenosom datoteke"
450456
451 #: ../libempathy/empathy-tp-file.c:415
457 #: ../libempathy/empathy-tp-file.c:417
452458 msgid "The other participant is unable to transfer the file"
453459 msgstr "Drug uporabnik ne more prenesti datoteke"
454460
455 #: ../libempathy/empathy-tp-file.c:418
456 #: ../libempathy/empathy-utils.c:315
461 #: ../libempathy/empathy-tp-file.c:420
462 #: ../libempathy/empathy-utils.c:320
457463 msgid "Unknown reason"
458464 msgstr "Neznan vzrok"
459465
460 #: ../libempathy/empathy-utils.c:238
466 #: ../libempathy/empathy-utils.c:242
461467 msgid "Available"
462468 msgstr "Na voljo"
463469
464 #: ../libempathy/empathy-utils.c:240
470 #: ../libempathy/empathy-utils.c:244
465471 msgid "Busy"
466472 msgstr "Zaposleno"
467473
468 #: ../libempathy/empathy-utils.c:243
474 #: ../libempathy/empathy-utils.c:247
469475 msgid "Away"
470476 msgstr "Odsotno"
471477
472 #: ../libempathy/empathy-utils.c:245
478 #: ../libempathy/empathy-utils.c:249
473479 msgid "Invisible"
474480 msgstr "Nevidno"
475481
476 #: ../libempathy/empathy-utils.c:247
482 #: ../libempathy/empathy-utils.c:251
477483 msgid "Offline"
478484 msgstr "Nepovezano"
479485
480 #: ../libempathy/empathy-utils.c:249
486 #: ../libempathy/empathy-utils.c:253
487 #: ../src/empathy-call-window.c:1883
488 #: ../src/empathy-call-window.c:1884
489 #: ../src/empathy-call-window.c:1885
490 #: ../src/empathy-call-window.c:1886
491 #: ../src/empathy-call-window.ui.h:18
481492 msgid "Unknown"
482493 msgstr "Neznano"
483494
484 #: ../libempathy/empathy-utils.c:287
495 #: ../libempathy/empathy-utils.c:292
485496 msgid "No reason specified"
486497 msgstr "Ni določenega razloga"
487498
488 #: ../libempathy/empathy-utils.c:289
499 #: ../libempathy/empathy-utils.c:294
500 #: ../libempathy/empathy-utils.c:350
489501 msgid "Status is set to offline"
490502 msgstr "Stanje je nastavljeno na brez povezave"
491503
492 #: ../libempathy/empathy-utils.c:291
504 #: ../libempathy/empathy-utils.c:296
505 #: ../libempathy/empathy-utils.c:330
493506 msgid "Network error"
494507 msgstr "Napaka omrežja"
495508
496 #: ../libempathy/empathy-utils.c:293
509 #: ../libempathy/empathy-utils.c:298
510 #: ../libempathy/empathy-utils.c:332
497511 msgid "Authentication failed"
498512 msgstr "Overitev ni uspela"
499513
500 #: ../libempathy/empathy-utils.c:295
514 #: ../libempathy/empathy-utils.c:300
515 #: ../libempathy/empathy-utils.c:334
501516 msgid "Encryption error"
502517 msgstr "Napaka šifriranja"
503518
504 #: ../libempathy/empathy-utils.c:297
519 #: ../libempathy/empathy-utils.c:302
505520 msgid "Name in use"
506521 msgstr "Ime je v uporabi"
507522
508 #: ../libempathy/empathy-utils.c:299
523 #: ../libempathy/empathy-utils.c:304
524 #: ../libempathy/empathy-utils.c:336
509525 msgid "Certificate not provided"
510526 msgstr "Potrdilo ni na voljo"
511527
512 #: ../libempathy/empathy-utils.c:301
528 #: ../libempathy/empathy-utils.c:306
529 #: ../libempathy/empathy-utils.c:338
513530 msgid "Certificate untrusted"
514531 msgstr "Potrdilo ni overjeno"
515532
516 #: ../libempathy/empathy-utils.c:303
533 #: ../libempathy/empathy-utils.c:308
534 #: ../libempathy/empathy-utils.c:340
517535 msgid "Certificate expired"
518536 msgstr "Potrdilo je preteklo"
519537
520 #: ../libempathy/empathy-utils.c:305
538 #: ../libempathy/empathy-utils.c:310
539 #: ../libempathy/empathy-utils.c:342
521540 msgid "Certificate not activated"
522541 msgstr "Potrdilo ni potrjeno"
523542
524 #: ../libempathy/empathy-utils.c:307
543 #: ../libempathy/empathy-utils.c:312
544 #: ../libempathy/empathy-utils.c:344
525545 msgid "Certificate hostname mismatch"
526546 msgstr "Neustrezno potrdilo gostitelja"
527547
528 #: ../libempathy/empathy-utils.c:309
548 #: ../libempathy/empathy-utils.c:314
549 #: ../libempathy/empathy-utils.c:346
529550 msgid "Certificate fingerprint mismatch"
530551 msgstr "Neustrezen prstni odtis potrdila"
531552
532 #: ../libempathy/empathy-utils.c:311
553 #: ../libempathy/empathy-utils.c:316
554 #: ../libempathy/empathy-utils.c:348
533555 msgid "Certificate self-signed"
534556 msgstr "Potrdilo je samo-podpisano"
535557
536 #: ../libempathy/empathy-utils.c:313
558 #: ../libempathy/empathy-utils.c:318
537559 msgid "Certificate error"
538560 msgstr "Napaka potrdila"
539561
540 #: ../libempathy/empathy-utils.c:430
562 #: ../libempathy/empathy-utils.c:352
563 msgid "Encryption is not available"
564 msgstr "Šifriranje ni na voljo."
565
566 #: ../libempathy/empathy-utils.c:354
567 msgid "Certificate is invalid"
568 msgstr "Potrdilo je neveljavno."
569
570 #: ../libempathy/empathy-utils.c:356
571 msgid "Connection has been refused"
572 msgstr "Omrežna povezava je zavrnjena."
573
574 #: ../libempathy/empathy-utils.c:358
575 msgid "Connection can't be established"
576 msgstr "Povezave ni mogoče vzpostaviti."
577
578 #: ../libempathy/empathy-utils.c:360
579 msgid "Connection has been lost"
580 msgstr "Povezava je prekinjena."
581
582 #: ../libempathy/empathy-utils.c:362
583 msgid "This resource is already connected to the server"
584 msgstr "Vir je s strežnikom že povezan"
585
586 #: ../libempathy/empathy-utils.c:364
587 msgid "Connection has been replaced by a new connection using the same resource"
588 msgstr "Povezava je zamenjana z novo povezavo, ki uporablja isti vir."
589
590 #: ../libempathy/empathy-utils.c:367
591 msgid "The account already exists on the server"
592 msgstr "Račun na strežniku že obstaja"
593
594 #: ../libempathy/empathy-utils.c:369
595 msgid "Server is currently too busy to handle the connection"
596 msgstr "Strežnik je trenutno preveč zaposlen za upravljanje s povezavo."
597
598 #: ../libempathy/empathy-utils.c:371
599 msgid "Certificate has been revoked"
600 msgstr "Potrdilo je preklicano"
601
602 #: ../libempathy/empathy-utils.c:373
603 msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
604 msgstr "Potrdilo ne uporablja varnega algoritma ali pa uporablja šibko šifriranje."
605
606 #: ../libempathy/empathy-utils.c:376
607 msgid "The length of the server certificate, or the depth of the server certificate chain exceed the limits imposed by the crypto library"
608 msgstr "Dolžina potrdila strežnika ali pa globina ravni potrdila presega omejitev, ki je določena s šifrirno knjižnico."
609
610 #: ../libempathy/empathy-utils.c:529
541611 msgid "People Nearby"
542612 msgstr "Uporabniki v bližini"
543613
544 #: ../libempathy/empathy-utils.c:435
614 #: ../libempathy/empathy-utils.c:534
545615 msgid "Yahoo! Japan"
546616 msgstr "Yahoo! Japan"
547617
548 #: ../libempathy/empathy-utils.c:436
618 #: ../libempathy/empathy-utils.c:535
549619 msgid "Facebook Chat"
550620 msgstr "Facebook klepetanje"
551621
612682 msgstr "Vse"
613683
614684 #: ../libempathy-gtk/empathy-account-widget.c:549
615 #: ../libempathy-gtk/empathy-account-widget.c:605
685 #: ../libempathy-gtk/empathy-account-widget.c:606
616686 #, c-format
617687 msgid "%s:"
618688 msgstr "%s:"
619689
620 #: ../libempathy-gtk/empathy-account-widget.c:1136
690 #: ../libempathy-gtk/empathy-account-widget.c:1137
621691 msgid "Username:"
622692 msgstr "Uporabniško ime:"
623693
624 #: ../libempathy-gtk/empathy-account-widget.c:1479
694 #: ../libempathy-gtk/empathy-account-widget.c:1480
625695 msgid "L_og in"
626696 msgstr "_Prijava"
627697
628 #: ../libempathy-gtk/empathy-account-widget.c:1547
698 #: ../libempathy-gtk/empathy-account-widget.c:1548
629699 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
630700 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
631701 #: ../src/empathy-chatrooms-window.ui.h:1
633703 msgid "Account:"
634704 msgstr "Račun:"
635705
636 #: ../libempathy-gtk/empathy-account-widget.c:1558
706 #: ../libempathy-gtk/empathy-account-widget.c:1559
637707 msgid "Enabled"
638708 msgstr "Omogočeno"
639709
640 #: ../libempathy-gtk/empathy-account-widget.c:1623
710 #: ../libempathy-gtk/empathy-account-widget.c:1624
641711 msgid "This account already exists on the server"
642712 msgstr "Ta račun na strežniku že obstaja"
643713
644 #: ../libempathy-gtk/empathy-account-widget.c:1626
714 #: ../libempathy-gtk/empathy-account-widget.c:1627
645715 msgid "Create a new account on the server"
646716 msgstr "_Ustvari nov račun na strežniku"
647717
650720 #. * like: "MyUserName on chat.freenode.net".
651721 #. * You should reverse the order of these arguments if the
652722 #. * server should come before the login id in your locale.
653 #: ../libempathy-gtk/empathy-account-widget.c:1995
723 #: ../libempathy-gtk/empathy-account-widget.c:1996
654724 #, c-format
655725 msgid "%1$s on %2$s"
656726 msgstr "%1$s na %2$s"
657727
658728 #. To translators: The parameter is the protocol name. The resulting
659729 #. * string will be something like: "Jabber Account"
660 #: ../libempathy-gtk/empathy-account-widget.c:2021
730 #: ../libempathy-gtk/empathy-account-widget.c:2022
661731 #, c-format
662732 msgid "%s Account"
663733 msgstr "%s račun"
664734
665 #: ../libempathy-gtk/empathy-account-widget.c:2025
735 #: ../libempathy-gtk/empathy-account-widget.c:2026
666736 msgid "New account"
667737 msgstr "Nov račun"
668738
763833 msgid "_Character set:"
764834 msgstr "_Znakovni nabor:"
765835
766 #: ../libempathy-gtk/empathy-account-widget-irc.c:245
836 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
767837 msgid "New Network"
768838 msgstr "Novo omrežje"
769839
10641134 msgid "All Files"
10651135 msgstr "Vse datoteke"
10661136
1067 #: ../libempathy-gtk/empathy-avatar-image.c:325
1137 #: ../libempathy-gtk/empathy-avatar-image.c:323
10681138 msgid "Click to enlarge"
10691139 msgstr "Kliknite za povečavo"
10701140
1071 #: ../libempathy-gtk/empathy-chat.c:240
1072 msgid "Failed to reconnect this chat"
1073 msgstr "Ponovna povezava s tem klepetom ni bila uspešna"
1074
1075 #: ../libempathy-gtk/empathy-chat.c:662
1076 msgid "Failed to join chat room"
1077 msgstr "Napaka med pridruževanjem klepetalnici"
1078
1079 #: ../libempathy-gtk/empathy-chat.c:680
1141 #: ../libempathy-gtk/empathy-chat.c:639
10801142 msgid "Failed to open private chat"
10811143 msgstr "Napaka med odpiranjem zasebnega klepeta"
10821144
1083 #: ../libempathy-gtk/empathy-chat.c:719
1145 #: ../libempathy-gtk/empathy-chat.c:679
10841146 msgid "Topic not supported on this conversation"
10851147 msgstr "Tema ni podprta pri tem pogovoru"
10861148
1087 #: ../libempathy-gtk/empathy-chat.c:725
1149 #: ../libempathy-gtk/empathy-chat.c:685
10881150 msgid "You are not allowed to change the topic"
10891151 msgstr "Za spreminjanje teme nimate ustreznih dovoljenj."
10901152
1091 #: ../libempathy-gtk/empathy-chat.c:856
1153 #: ../libempathy-gtk/empathy-chat.c:819
10921154 msgid "/clear: clear all messages from the current conversation"
10931155 msgstr "/clear: počisti vsa sporočila trenutnega pogovora"
10941156
1095 #: ../libempathy-gtk/empathy-chat.c:859
1157 #: ../libempathy-gtk/empathy-chat.c:822
10961158 msgid "/topic <topic>: set the topic of the current conversation"
10971159 msgstr "/topic <tema>: določi temo trenutnega pogovora"
10981160
1099 #: ../libempathy-gtk/empathy-chat.c:862
1161 #: ../libempathy-gtk/empathy-chat.c:825
11001162 msgid "/join <chat room ID>: join a new chat room"
11011163 msgstr "/join <ID klepetalnice>: pridruževanje novi klepetalnici"
11021164
1103 #: ../libempathy-gtk/empathy-chat.c:865
1165 #: ../libempathy-gtk/empathy-chat.c:828
11041166 msgid "/j <chat room ID>: join a new chat room"
11051167 msgstr "/j <ID klepetalnice>: pridruži se novi klepetalnici"
11061168
1107 #: ../libempathy-gtk/empathy-chat.c:868
1169 #: ../libempathy-gtk/empathy-chat.c:833
11081170 msgid "/query <contact ID> [<message>]: open a private chat"
11091171 msgstr "/query <ID stika> [<sporočilo>]: odpre zasebni klepet"
11101172
1111 #: ../libempathy-gtk/empathy-chat.c:871
1173 #: ../libempathy-gtk/empathy-chat.c:836
11121174 msgid "/msg <contact ID> <message>: open a private chat"
11131175 msgstr "/msg <ID stika> <sporočilo>: odpre zasebni klepet"
11141176
1115 #: ../libempathy-gtk/empathy-chat.c:874
1177 #: ../libempathy-gtk/empathy-chat.c:840
11161178 msgid "/nick <nickname>: change your nickname on the current server"
11171179 msgstr "/nick <vzdevek>: spremeni vaš vzdevek na trenutnem strežniku"
11181180
1119 #: ../libempathy-gtk/empathy-chat.c:877
1181 #: ../libempathy-gtk/empathy-chat.c:843
11201182 msgid "/me <message>: send an ACTION message to the current conversation"
11211183 msgstr "/me <sporočilo>: pošlje sporočilo DEJANJA v trenutni pogovor"
11221184
1123 #: ../libempathy-gtk/empathy-chat.c:880
1185 #: ../libempathy-gtk/empathy-chat.c:846
11241186 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 join a new chat room\""
11251187 msgstr "/say <sporočilo>: pošlje <sporočilo> v trenutni pogovor. Možnost se uporablja za pošiljanje sporočila, ki se začne z '/'. Primer: \"/say /join se uporablja za pridruževanje novi klepetalnici\""
11261188
1127 #: ../libempathy-gtk/empathy-chat.c:885
1189 #: ../libempathy-gtk/empathy-chat.c:851
11281190 msgid "/help [<command>]: show all supported commands. If <command> is defined, show its usage."
11291191 msgstr "/help [<ukaz>], pokaže vse podprte ukaze in njihov način uporabe."
11301192
1131 #: ../libempathy-gtk/empathy-chat.c:895
1193 #: ../libempathy-gtk/empathy-chat.c:861
11321194 #, c-format
11331195 msgid "Usage: %s"
11341196 msgstr "Uporaba: %s"
11351197
1136 #: ../libempathy-gtk/empathy-chat.c:924
1198 #: ../libempathy-gtk/empathy-chat.c:890
11371199 msgid "Unknown command"
11381200 msgstr "Neznan ukaz"
11391201
1140 #: ../libempathy-gtk/empathy-chat.c:1045
1202 #: ../libempathy-gtk/empathy-chat.c:1011
11411203 msgid "Unknown command; see /help for the available commands"
11421204 msgstr "Neznan ukaz, za več si vpišite /help"
11431205
1144 #: ../libempathy-gtk/empathy-chat.c:1183
1206 #: ../libempathy-gtk/empathy-chat.c:1149
11451207 msgid "offline"
11461208 msgstr "brez povezave"
11471209
1148 #: ../libempathy-gtk/empathy-chat.c:1186
1210 #: ../libempathy-gtk/empathy-chat.c:1152
11491211 msgid "invalid contact"
11501212 msgstr "neveljaven stik"
11511213
1152 #: ../libempathy-gtk/empathy-chat.c:1189
1214 #: ../libempathy-gtk/empathy-chat.c:1155
11531215 msgid "permission denied"
11541216 msgstr "ni dovoljenja"
11551217
1156 #: ../libempathy-gtk/empathy-chat.c:1192
1218 #: ../libempathy-gtk/empathy-chat.c:1158
11571219 msgid "too long message"
11581220 msgstr "predolgo sporočilo"
11591221
1160 #: ../libempathy-gtk/empathy-chat.c:1195
1222 #: ../libempathy-gtk/empathy-chat.c:1161
11611223 msgid "not implemented"
11621224 msgstr "ni del programa"
11631225
1164 #: ../libempathy-gtk/empathy-chat.c:1198
1226 #: ../libempathy-gtk/empathy-chat.c:1165
11651227 msgid "unknown"
11661228 msgstr "neznano"
11671229
1168 #: ../libempathy-gtk/empathy-chat.c:1202
1230 #: ../libempathy-gtk/empathy-chat.c:1169
11691231 #, c-format
11701232 msgid "Error sending message '%s': %s"
11711233 msgstr "Napaka med pošiljanjem sporočila '%s': %s"
11721234
1173 #: ../libempathy-gtk/empathy-chat.c:1312
1235 #: ../libempathy-gtk/empathy-chat.c:1279
11741236 #: ../src/empathy-chat-window.c:691
11751237 msgid "Topic:"
11761238 msgstr "Tema:"
11771239
1178 #: ../libempathy-gtk/empathy-chat.c:1324
1240 #: ../libempathy-gtk/empathy-chat.c:1291
11791241 #, c-format
11801242 msgid "Topic set to: %s"
11811243 msgstr "Tema je določena na: %s"
11821244
1183 #: ../libempathy-gtk/empathy-chat.c:1326
1245 #: ../libempathy-gtk/empathy-chat.c:1293
11841246 msgid "No topic defined"
11851247 msgstr "Ni določene teme"
11861248
1187 #: ../libempathy-gtk/empathy-chat.c:1805
1249 #: ../libempathy-gtk/empathy-chat.c:1772
11881250 msgid "(No Suggestions)"
11891251 msgstr "(Ni predlogov)"
11901252
1191 #: ../libempathy-gtk/empathy-chat.c:1859
1253 #: ../libempathy-gtk/empathy-chat.c:1826
11921254 msgid "Insert Smiley"
11931255 msgstr "Vstavi smeška"
11941256
11951257 #. send button
1196 #: ../libempathy-gtk/empathy-chat.c:1877
1197 #: ../libempathy-gtk/empathy-ui-utils.c:1618
1258 #: ../libempathy-gtk/empathy-chat.c:1844
1259 #: ../libempathy-gtk/empathy-ui-utils.c:1800
11981260 msgid "_Send"
11991261 msgstr "_Pošlji"
12001262
1201 #: ../libempathy-gtk/empathy-chat.c:1911
1263 #: ../libempathy-gtk/empathy-chat.c:1878
12021264 msgid "_Spelling Suggestions"
12031265 msgstr "Predlogi čr_kovalnika"
12041266
1205 #: ../libempathy-gtk/empathy-chat.c:1988
1267 #: ../libempathy-gtk/empathy-chat.c:1955
12061268 msgid "Failed to retrieve recent logs"
12071269 msgstr "Napaka med pridobivanjem nedavnih dnevnikov"
12081270
1209 #: ../libempathy-gtk/empathy-chat.c:2094
1271 #: ../libempathy-gtk/empathy-chat.c:2061
12101272 #, c-format
12111273 msgid "%s has disconnected"
12121274 msgstr "%s je prekinil povezavo"
12141276 #. translators: reverse the order of these arguments
12151277 #. * if the kicked should come before the kicker in your locale.
12161278 #.
1217 #: ../libempathy-gtk/empathy-chat.c:2101
1279 #: ../libempathy-gtk/empathy-chat.c:2068
12181280 #, c-format
12191281 msgid "%1$s was kicked by %2$s"
12201282 msgstr "%2$s je izgnal %1$s"
12211283
1222 #: ../libempathy-gtk/empathy-chat.c:2104
1284 #: ../libempathy-gtk/empathy-chat.c:2071
12231285 #, c-format
12241286 msgid "%s was kicked"
12251287 msgstr "%s je bil izgnan"
12271289 #. translators: reverse the order of these arguments
12281290 #. * if the banned should come before the banner in your locale.
12291291 #.
1230 #: ../libempathy-gtk/empathy-chat.c:2112
1292 #: ../libempathy-gtk/empathy-chat.c:2079
12311293 #, c-format
12321294 msgid "%1$s was banned by %2$s"
12331295 msgstr "%2$s je izobčil %1$s"
12341296
1235 #: ../libempathy-gtk/empathy-chat.c:2115
1297 #: ../libempathy-gtk/empathy-chat.c:2082
12361298 #, c-format
12371299 msgid "%s was banned"
12381300 msgstr "%s je izobčen"
12391301
1240 #: ../libempathy-gtk/empathy-chat.c:2119
1302 #: ../libempathy-gtk/empathy-chat.c:2086
12411303 #, c-format
12421304 msgid "%s has left the room"
12431305 msgstr "%s je zapustil klepetalnico"
12471309 #. * given by the user living the room. If this poses a problem,
12481310 #. * please let us know. :-)
12491311 #.
1250 #: ../libempathy-gtk/empathy-chat.c:2128
1312 #: ../libempathy-gtk/empathy-chat.c:2095
12511313 #, c-format
12521314 msgid " (%s)"
12531315 msgstr " (%s)"
12541316
1255 #: ../libempathy-gtk/empathy-chat.c:2153
1317 #: ../libempathy-gtk/empathy-chat.c:2120
12561318 #, c-format
12571319 msgid "%s has joined the room"
12581320 msgstr "%s je vstopil v klepetalnico"
12591321
1260 #: ../libempathy-gtk/empathy-chat.c:2178
1322 #: ../libempathy-gtk/empathy-chat.c:2145
12611323 #, c-format
12621324 msgid "%s is now known as %s"
12631325 msgstr "%s je preimenovan v %s"
12641326
1265 #: ../libempathy-gtk/empathy-chat.c:2317
1266 #: ../src/empathy-call-window.c:1653
1327 #: ../libempathy-gtk/empathy-chat.c:2284
1328 #: ../src/empathy-call-window.c:1922
12671329 msgid "Disconnected"
12681330 msgstr "Prekinjena povezava"
12691331
1270 #: ../libempathy-gtk/empathy-chat.c:2955
1332 #: ../libempathy-gtk/empathy-chat.c:2922
12711333 msgid "Wrong password; please try again:"
12721334 msgstr "Napačno geslo; poskusite znova:"
12731335
1274 #: ../libempathy-gtk/empathy-chat.c:2956
1336 #: ../libempathy-gtk/empathy-chat.c:2923
12751337 msgid "Retry"
12761338 msgstr "Poskusi znova"
12771339
1278 #: ../libempathy-gtk/empathy-chat.c:2961
1340 #: ../libempathy-gtk/empathy-chat.c:2928
12791341 msgid "This room is protected by a password:"
12801342 msgstr "Klepetalnica je zaščitena z geslom:"
12811343
1282 #: ../libempathy-gtk/empathy-chat.c:2962
1344 #: ../libempathy-gtk/empathy-chat.c:2929
12831345 msgid "Join"
12841346 msgstr "Pridruži se"
12851347
1286 #: ../libempathy-gtk/empathy-chat.c:3102
1348 #: ../libempathy-gtk/empathy-chat.c:3069
12871349 msgid "Connected"
12881350 msgstr "Povezano"
12891351
1290 #: ../libempathy-gtk/empathy-chat.c:3155
1291 #: ../libempathy-gtk/empathy-log-window.c:639
1352 #: ../libempathy-gtk/empathy-chat.c:3122
1353 #: ../libempathy-gtk/empathy-log-window.c:653
12921354 msgid "Conversation"
12931355 msgstr "Pogovor"
12941356
12951357 #. Copy Link Address menu item
12961358 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1297 #: ../libempathy-gtk/empathy-theme-adium.c:785
1359 #: ../libempathy-gtk/empathy-theme-adium.c:791
12981360 msgid "_Copy Link Address"
12991361 msgstr "Kopiraj _naslov povezave"
13001362
13011363 #. Open Link menu item
13021364 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1303 #: ../libempathy-gtk/empathy-theme-adium.c:792
1365 #: ../libempathy-gtk/empathy-theme-adium.c:798
13041366 msgid "_Open Link"
13051367 msgstr "_Odpri povezavo"
13061368
13191381 msgstr "Osebni podatki"
13201382
13211383 #: ../libempathy-gtk/empathy-contact-dialogs.c:401
1384 #: ../libempathy-gtk/empathy-individual-dialogs.c:112
13221385 msgid "New Contact"
13231386 msgstr "Nov stik"
13241387
13301393 msgid "Subscription Request"
13311394 msgstr "Zahteva po naročilu"
13321395
1333 #: ../libempathy-gtk/empathy-contact-list-view.c:1984
1396 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1397 #: ../libempathy-gtk/empathy-individual-view.c:2025
13341398 #, c-format
13351399 msgid "Do you really want to remove the group '%s'?"
13361400 msgstr "Ali zares želite odstraniti skupino '%s'?"
13371401
1338 #: ../libempathy-gtk/empathy-contact-list-view.c:1986
1402 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1403 #: ../libempathy-gtk/empathy-individual-view.c:2028
13391404 msgid "Removing group"
13401405 msgstr "Odstranjevanje skupine"
13411406
13421407 #. Remove
1343 #: ../libempathy-gtk/empathy-contact-list-view.c:2035
1344 #: ../libempathy-gtk/empathy-contact-list-view.c:2112
1408 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1409 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1410 #: ../libempathy-gtk/empathy-individual-view.c:2082
1411 #: ../libempathy-gtk/empathy-individual-view.c:2167
13451412 #: ../src/empathy-accounts-dialog.ui.h:6
13461413 msgid "_Remove"
13471414 msgstr "_Odstrani"
13481415
1349 #: ../libempathy-gtk/empathy-contact-list-view.c:2065
1416 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1417 #: ../libempathy-gtk/empathy-individual-view.c:2113
13501418 #, c-format
13511419 msgid "Do you really want to remove the contact '%s'?"
13521420 msgstr "Ali zares želite odstraniti stik '%s'?"
13531421
1354 #: ../libempathy-gtk/empathy-contact-list-view.c:2067
1422 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1423 #: ../libempathy-gtk/empathy-individual-view.c:2115
13551424 msgid "Removing contact"
13561425 msgstr "Odstranjevanje stika"
13571426
13581427 #: ../libempathy-gtk/empathy-contact-menu.c:203
1428 #: ../libempathy-gtk/empathy-individual-menu.c:359
13591429 #: ../src/empathy-main-window.ui.h:13
13601430 msgid "_Add Contact…"
13611431 msgstr "_Dodaj stik ..."
13621432
1363 #: ../libempathy-gtk/empathy-contact-menu.c:231
1433 #: ../libempathy-gtk/empathy-contact-menu.c:230
1434 #: ../libempathy-gtk/empathy-individual-menu.c:462
13641435 #: ../src/empathy-main-window.ui.h:14
13651436 msgid "_Chat"
13661437 msgstr "_Klepet"
13671438
1368 #: ../libempathy-gtk/empathy-contact-menu.c:261
1439 #: ../libempathy-gtk/empathy-contact-menu.c:260
1440 #: ../libempathy-gtk/empathy-individual-menu.c:503
13691441 msgctxt "menu item"
13701442 msgid "_Audio Call"
13711443 msgstr "_Zvočni klic"
13721444
1373 #: ../libempathy-gtk/empathy-contact-menu.c:291
1445 #: ../libempathy-gtk/empathy-contact-menu.c:290
1446 #: ../libempathy-gtk/empathy-individual-menu.c:545
13741447 msgctxt "menu item"
13751448 msgid "_Video Call"
13761449 msgstr "_Video klic"
13771450
1378 #: ../libempathy-gtk/empathy-contact-menu.c:331
1451 #: ../libempathy-gtk/empathy-contact-menu.c:330
1452 #: ../libempathy-gtk/empathy-individual-menu.c:603
13791453 #: ../src/empathy-main-window.ui.h:25
13801454 msgid "_Previous Conversations"
13811455 msgstr "Predhodni po_govori"
13821456
1383 #: ../libempathy-gtk/empathy-contact-menu.c:353
1457 #: ../libempathy-gtk/empathy-contact-menu.c:352
1458 #: ../libempathy-gtk/empathy-individual-menu.c:644
13841459 msgid "Send File"
13851460 msgstr "Pošlji datoteko"
13861461
1387 #: ../libempathy-gtk/empathy-contact-menu.c:376
1462 #: ../libempathy-gtk/empathy-contact-menu.c:375
1463 #: ../libempathy-gtk/empathy-individual-menu.c:686
13881464 msgid "Share My Desktop"
13891465 msgstr "Souporaba namizja"
13901466
1391 #: ../libempathy-gtk/empathy-contact-menu.c:416
1392 #: ../libempathy-gtk/empathy-contact-widget.c:1819
1467 #: ../libempathy-gtk/empathy-contact-menu.c:415
1468 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1469 #: ../libempathy-gtk/empathy-individual-menu.c:720
13931470 msgid "Favorite"
13941471 msgstr "Priljubljeno"
13951472
1396 #: ../libempathy-gtk/empathy-contact-menu.c:445
1473 #: ../libempathy-gtk/empathy-contact-menu.c:444
1474 #: ../libempathy-gtk/empathy-individual-menu.c:747
13971475 msgid "Infor_mation"
13981476 msgstr "_Podrobnosti"
13991477
1400 #: ../libempathy-gtk/empathy-contact-menu.c:491
1478 #: ../libempathy-gtk/empathy-contact-menu.c:490
14011479 msgctxt "Edit contact (contextual menu)"
14021480 msgid "_Edit"
14031481 msgstr "_Uredi"
14041482
1405 #: ../libempathy-gtk/empathy-contact-menu.c:545
1483 #: ../libempathy-gtk/empathy-contact-menu.c:544
1484 #: ../libempathy-gtk/empathy-individual-menu.c:938
14061485 #: ../src/empathy-chat-window.c:903
14071486 msgid "Inviting you to this room"
14081487 msgstr "Vabila v klepetalnico"
14091488
1410 #: ../libempathy-gtk/empathy-contact-menu.c:576
1489 #: ../libempathy-gtk/empathy-contact-menu.c:575
1490 #: ../libempathy-gtk/empathy-individual-menu.c:985
14111491 msgid "_Invite to Chat Room"
14121492 msgstr "_Povabi v klepetalnico"
14131493
14351515 msgid "Birthday:"
14361516 msgstr "Rojstni dan:"
14371517
1438 #: ../libempathy-gtk/empathy-contact-widget.c:614
1518 #: ../libempathy-gtk/empathy-contact-widget.c:603
14391519 msgid "Select"
14401520 msgstr "Izberi"
14411521
1442 #: ../libempathy-gtk/empathy-contact-widget.c:623
1443 #: ../src/empathy-main-window.c:1171
1522 #: ../libempathy-gtk/empathy-contact-widget.c:612
1523 #: ../src/empathy-main-window.c:1231
14441524 msgid "Group"
14451525 msgstr "Skupina"
14461526
1447 #: ../libempathy-gtk/empathy-contact-widget.c:854
1527 #: ../libempathy-gtk/empathy-contact-widget.c:841
14481528 msgid "Country ISO Code:"
14491529 msgstr "ISO oznaka države:"
14501530
1451 #: ../libempathy-gtk/empathy-contact-widget.c:856
1531 #: ../libempathy-gtk/empathy-contact-widget.c:843
14521532 msgid "Country:"
14531533 msgstr "Država:"
14541534
1455 #: ../libempathy-gtk/empathy-contact-widget.c:858
1535 #: ../libempathy-gtk/empathy-contact-widget.c:845
14561536 msgid "State:"
14571537 msgstr "Okraj:"
14581538
1459 #: ../libempathy-gtk/empathy-contact-widget.c:860
1539 #: ../libempathy-gtk/empathy-contact-widget.c:847
14601540 msgid "City:"
14611541 msgstr "Mesto:"
14621542
1463 #: ../libempathy-gtk/empathy-contact-widget.c:862
1543 #: ../libempathy-gtk/empathy-contact-widget.c:849
14641544 msgid "Area:"
14651545 msgstr "Področje:"
14661546
1467 #: ../libempathy-gtk/empathy-contact-widget.c:864
1547 #: ../libempathy-gtk/empathy-contact-widget.c:851
14681548 msgid "Postal Code:"
14691549 msgstr "Poštna številka:"
14701550
1471 #: ../libempathy-gtk/empathy-contact-widget.c:866
1551 #: ../libempathy-gtk/empathy-contact-widget.c:853
14721552 msgid "Street:"
14731553 msgstr "Ulica:"
14741554
1475 #: ../libempathy-gtk/empathy-contact-widget.c:868
1555 #: ../libempathy-gtk/empathy-contact-widget.c:855
14761556 msgid "Building:"
14771557 msgstr "Stavba:"
14781558
1479 #: ../libempathy-gtk/empathy-contact-widget.c:870
1559 #: ../libempathy-gtk/empathy-contact-widget.c:857
14801560 msgid "Floor:"
14811561 msgstr "Nadstropje:"
14821562
1483 #: ../libempathy-gtk/empathy-contact-widget.c:872
1563 #: ../libempathy-gtk/empathy-contact-widget.c:859
14841564 msgid "Room:"
14851565 msgstr "Klepetalnica:"
14861566
1487 #: ../libempathy-gtk/empathy-contact-widget.c:874
1567 #: ../libempathy-gtk/empathy-contact-widget.c:861
14881568 msgid "Text:"
14891569 msgstr "Besedilo:"
14901570
1491 #: ../libempathy-gtk/empathy-contact-widget.c:876
1571 #: ../libempathy-gtk/empathy-contact-widget.c:863
14921572 msgid "Description:"
14931573 msgstr "Opis:"
14941574
1495 #: ../libempathy-gtk/empathy-contact-widget.c:878
1575 #: ../libempathy-gtk/empathy-contact-widget.c:865
14961576 msgid "URI:"
14971577 msgstr "URI:"
14981578
1499 #: ../libempathy-gtk/empathy-contact-widget.c:880
1579 #: ../libempathy-gtk/empathy-contact-widget.c:867
15001580 msgid "Accuracy Level:"
15011581 msgstr "Raven natančnosti:"
15021582
1503 #: ../libempathy-gtk/empathy-contact-widget.c:882
1583 #: ../libempathy-gtk/empathy-contact-widget.c:869
15041584 msgid "Error:"
15051585 msgstr "Napaka:"
15061586
1507 #: ../libempathy-gtk/empathy-contact-widget.c:884
1587 #: ../libempathy-gtk/empathy-contact-widget.c:871
15081588 msgid "Vertical Error (meters):"
15091589 msgstr "Napaka navpično (v metrih):"
15101590
1511 #: ../libempathy-gtk/empathy-contact-widget.c:886
1591 #: ../libempathy-gtk/empathy-contact-widget.c:873
15121592 msgid "Horizontal Error (meters):"
15131593 msgstr "Napaka vodoravno (v metrih):"
15141594
1515 #: ../libempathy-gtk/empathy-contact-widget.c:888
1595 #: ../libempathy-gtk/empathy-contact-widget.c:875
15161596 msgid "Speed:"
15171597 msgstr "Hitrost:"
15181598
1519 #: ../libempathy-gtk/empathy-contact-widget.c:890
1599 #: ../libempathy-gtk/empathy-contact-widget.c:877
15201600 msgid "Bearing:"
15211601 msgstr "Smer:"
15221602
1523 #: ../libempathy-gtk/empathy-contact-widget.c:892
1603 #: ../libempathy-gtk/empathy-contact-widget.c:879
15241604 msgid "Climb Speed:"
15251605 msgstr "Hitrost dviganja:"
15261606
1527 #: ../libempathy-gtk/empathy-contact-widget.c:894
1607 #: ../libempathy-gtk/empathy-contact-widget.c:881
15281608 msgid "Last Updated on:"
15291609 msgstr "Zadnjič posodobljeno:"
15301610
1531 #: ../libempathy-gtk/empathy-contact-widget.c:896
1611 #: ../libempathy-gtk/empathy-contact-widget.c:883
15321612 msgid "Longitude:"
15331613 msgstr "Zemljepisna dolžina:"
15341614
1535 #: ../libempathy-gtk/empathy-contact-widget.c:898
1615 #: ../libempathy-gtk/empathy-contact-widget.c:885
15361616 msgid "Latitude:"
15371617 msgstr "Zemljepisna širina:"
15381618
1539 #: ../libempathy-gtk/empathy-contact-widget.c:900
1619 #: ../libempathy-gtk/empathy-contact-widget.c:887
15401620 msgid "Altitude:"
15411621 msgstr "Nadmorska višina:"
15421622
1543 #: ../libempathy-gtk/empathy-contact-widget.c:963
1544 #: ../src/empathy-preferences.ui.h:11
1623 #: ../libempathy-gtk/empathy-contact-widget.c:950
1624 #: ../src/empathy-preferences.ui.h:12
15451625 msgid "Location"
15461626 msgstr "Mesto"
15471627
1548 #: ../libempathy-gtk/empathy-contact-widget.c:979
1628 #: ../libempathy-gtk/empathy-contact-widget.c:966
15491629 msgid "<b>Location</b>, "
15501630 msgstr "<b>Mesto</b>, "
15511631
1552 #: ../libempathy-gtk/empathy-contact-widget.c:1030
1632 #: ../libempathy-gtk/empathy-contact-widget.c:1017
15531633 msgid "%B %e, %Y at %R UTC"
15541634 msgstr "%e.%B.%Y ob %R UTC"
15551635
1556 #: ../libempathy-gtk/empathy-contact-widget.c:1113
1636 #: ../libempathy-gtk/empathy-contact-widget.c:1100
15571637 msgid "Save Avatar"
15581638 msgstr "Shrani podobo"
15591639
1560 #: ../libempathy-gtk/empathy-contact-widget.c:1169
1640 #: ../libempathy-gtk/empathy-contact-widget.c:1156
15611641 msgid "Unable to save avatar"
15621642 msgstr "Ni mogoče shraniti podobe"
15631643
16101690 msgid "_Add Group"
16111691 msgstr "_Dodaj skupino"
16121692
1693 #: ../libempathy-gtk/empathy-individual-linker.c:250
1694 msgid "Select contacts to link"
1695 msgstr "Izbor stikov za povezovanje"
1696
1697 #: ../libempathy-gtk/empathy-individual-linker.c:298
1698 msgid "New contact preview"
1699 msgstr "Nov predogled stika"
1700
1701 #: ../libempathy-gtk/empathy-individual-menu.c:107
1702 #, c-format
1703 msgid "%s (%s)"
1704 msgstr "%s (%s)"
1705
1706 #: ../libempathy-gtk/empathy-individual-menu.c:803
1707 msgctxt "Edit individual (contextual menu)"
1708 msgid "_Edit"
1709 msgstr "_Uredi"
1710
1711 #: ../libempathy-gtk/empathy-individual-menu.c:833
1712 msgctxt "Link individual (contextual menu)"
1713 msgid "_Link…"
1714 msgstr "_Poveži ..."
1715
16131716 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16141717 msgid "new server"
16151718 msgstr "nov strežnik"
16261729 msgid "SSL"
16271730 msgstr "SSL"
16281731
1629 #: ../libempathy-gtk/empathy-log-window.c:632
1732 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1733 msgid "Link Contacts"
1734 msgstr "Poveži stike"
1735
1736 #. Add button
1737 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1738 msgid "_Link"
1739 msgstr "_Povezava"
1740
1741 #: ../libempathy-gtk/empathy-log-window.c:646
16301742 #: ../src/empathy-import-widget.c:312
16311743 msgid "Account"
16321744 msgstr "Račun"
16331745
1634 #: ../libempathy-gtk/empathy-log-window.c:649
1746 #: ../libempathy-gtk/empathy-log-window.c:663
16351747 msgid "Date"
16361748 msgstr "Datum"
16371749
1638 #: ../libempathy-gtk/empathy-log-window.ui.h:1
1750 #. Tab Label
1751 #: ../libempathy-gtk/empathy-log-window.ui.h:2
16391752 msgid "Conversations"
16401753 msgstr "Pogovori"
16411754
1642 #: ../libempathy-gtk/empathy-log-window.ui.h:2
1755 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1756 msgid "Find next"
1757 msgstr "Najdi naslednje"
1758
1759 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1760 msgid "Find previous"
1761 msgstr "Najdi predhodno"
1762
1763 #: ../libempathy-gtk/empathy-log-window.ui.h:5
16431764 msgid "Previous Conversations"
16441765 msgstr "Predhodni pogovori"
16451766
1646 #: ../libempathy-gtk/empathy-log-window.ui.h:3
1767 #. Tab Label
1768 #: ../libempathy-gtk/empathy-log-window.ui.h:7
16471769 msgid "Search"
16481770 msgstr "Poišči"
16491771
1650 #: ../libempathy-gtk/empathy-log-window.ui.h:4
1772 #. Searching *for* something
1773 #: ../libempathy-gtk/empathy-log-window.ui.h:9
16511774 msgid "_For:"
16521775 msgstr "_Za:"
16531776
16661789 msgstr "Nov pogovor"
16671790
16681791 #. add video toggle
1669 #: ../libempathy-gtk/empathy-new-call-dialog.c:190
1792 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
16701793 msgid "Send _Video"
16711794 msgstr "Pošlji _video"
16721795
16731796 #. add chat button
1674 #: ../libempathy-gtk/empathy-new-call-dialog.c:198
1675 #: ../src/empathy-call-window.ui.h:17
1797 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
1798 #: ../src/empathy-call-window.ui.h:24
16761799 msgid "_Call"
16771800 msgstr "Po_kliči"
16781801
16791802 #. Tweak the dialog
1680 #: ../libempathy-gtk/empathy-new-call-dialog.c:208
1803 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
16811804 msgid "New Call"
16821805 msgstr "Nov klic"
16831806
17141837 msgstr "Nastavitev navzočnosti in trenutnega stanja"
17151838
17161839 #. Custom messages
1717 #: ../libempathy-gtk/empathy-presence-chooser.c:1128
1840 #: ../libempathy-gtk/empathy-presence-chooser.c:1124
17181841 msgid "Custom messages…"
17191842 msgstr "Sporočila po meri ..."
17201843
18021925 msgid "Blue"
18031926 msgstr "Modro"
18041927
1805 #: ../libempathy-gtk/empathy-ui-utils.c:1515
1928 #: ../libempathy-gtk/empathy-ui-utils.c:1697
18061929 msgid "Unable to open URI"
18071930 msgstr "Ni mogoče odpreti naslova URI"
18081931
1809 #: ../libempathy-gtk/empathy-ui-utils.c:1610
1932 #: ../libempathy-gtk/empathy-ui-utils.c:1792
18101933 msgid "Select a file"
18111934 msgstr "Izbor datoteke"
18121935
1813 #: ../libempathy-gtk/empathy-ui-utils.c:1674
1814 msgid "Select a destination"
1815 msgstr "Izbor cilja"
1936 #: ../libempathy-gtk/empathy-ui-utils.c:1861
1937 #, c-format
1938 msgid "Incoming file from %s"
1939 msgstr "Prihajajoča datoteka od %s"
18161940
18171941 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
18181942 msgid "Current Locale"
19932117 msgid "No error message"
19942118 msgstr "Ni sporočil o napakah"
19952119
1996 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:242
2120 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:244
2121 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:259
19972122 msgid "Instant Message (Empathy)"
19982123 msgstr "Hipno sporočanje (Empathy)"
19992124
2000 #: ../src/empathy.c:475
2125 #: ../src/empathy.c:414
20012126 msgid "Don't connect on startup"
20022127 msgstr "Brez samodejne povezave ob zagonu"
20032128
2004 #: ../src/empathy.c:479
2129 #: ../src/empathy.c:418
20052130 msgid "Don't display the contact list or any other dialogs on startup"
20062131 msgstr "Ne prikaži seznama stikov in drugih pogovornih oken ob zagonu"
20072132
2008 #: ../src/empathy.c:491
2133 #: ../src/empathy.c:435
20092134 msgid "- Empathy IM Client"
20102135 msgstr "- Empathy sporočilnik"
20112136
20552180 msgstr "Lahko ponovno vnesete podatke svojega računa ali pa končate pomočnika in dodate račune kasneje preko menija Uredi."
20562181
20572182 #: ../src/empathy-account-assistant.c:220
2058 #: ../src/empathy-account-assistant.c:1315
2183 #: ../src/empathy-account-assistant.c:1311
20592184 msgid "An error occurred"
20602185 msgstr "Prišlo je do napake"
20612186
20652190 #. * "Yahoo!"
20662191 #.
20672192 #: ../src/empathy-account-assistant.c:412
2068 #: ../src/empathy-accounts-dialog.c:606
2193 #: ../src/empathy-accounts-dialog.c:604
20692194 #, c-format
20702195 msgid "New %s account"
20712196 msgstr "Nov račun %s"
21322257 msgid "No, that's all for now"
21332258 msgstr "Ne, to je trenutno vse"
21342259
2135 #: ../src/empathy-account-assistant.c:1129
2260 #: ../src/empathy-account-assistant.c:1125
21362261 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 details below are correct. You can easily change these details later or disable this feature by using the 'Accounts' dialog"
21372262 msgstr "Program Empathy lahko samodejno odkrije in izmenjuje podatke z uporabniki istega omrežja. V primeru, da želite uporabljati to možnost, preverite spodnje podatke. Možnosti je mogoče spreminjati tudi kasneje v pogovornemu oknu 'računi'."
21382263
2139 #: ../src/empathy-account-assistant.c:1135
2140 #: ../src/empathy-account-assistant.c:1191
2264 #: ../src/empathy-account-assistant.c:1131
2265 #: ../src/empathy-account-assistant.c:1187
21412266 msgid "Edit->Accounts"
21422267 msgstr "Uredi->Računi"
21432268
2144 #: ../src/empathy-account-assistant.c:1151
2269 #: ../src/empathy-account-assistant.c:1147
21452270 msgid "I don't want to enable this feature for now"
21462271 msgstr "Te možnosti ne želim omogočiti"
21472272
2148 #: ../src/empathy-account-assistant.c:1187
2273 #: ../src/empathy-account-assistant.c:1183
21492274 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 install the telepathy-salut package and create a People Nearby account from the Accounts dialog"
21502275 msgstr "Ni mogoče klepetati z uporabniki, povezanimi v krajevnem omrežju, saj paket telepathy-salut ni nameščen. V primeru, da želite to možnost omogočiti, namestite zahtevani paket in ustvarite račun bližnjih uporabnikov med možnostmi računa."
21512276
2152 #: ../src/empathy-account-assistant.c:1193
2277 #: ../src/empathy-account-assistant.c:1189
21532278 msgid "telepathy-salut not installed"
21542279 msgstr "telepathy-salut ni nameščen"
21552280
2156 #: ../src/empathy-account-assistant.c:1239
2281 #: ../src/empathy-account-assistant.c:1235
21572282 msgid "Messaging and VoIP Accounts Assistant"
21582283 msgstr "Pomočnik sporočanja in računov VoIP"
21592284
2160 #: ../src/empathy-account-assistant.c:1273
2285 #: ../src/empathy-account-assistant.c:1269
21612286 msgid "Welcome to Empathy"
21622287 msgstr "Dobrodošli v program Empathy"
21632288
2164 #: ../src/empathy-account-assistant.c:1282
2289 #: ../src/empathy-account-assistant.c:1278
21652290 msgid "Import your existing accounts"
21662291 msgstr "Uvozite svoje obstoječe račune"
21672292
2168 #: ../src/empathy-account-assistant.c:1300
2293 #: ../src/empathy-account-assistant.c:1296
21692294 msgid "Please enter personal details"
21702295 msgstr "Vnesite osebne podatke"
21712296
21822307 msgid "Your new account has not been saved yet."
21832308 msgstr "Novi račun še ni bil shranjen."
21842309
2185 #: ../src/empathy-accounts-dialog.c:273
2186 #: ../src/empathy-call-window.c:792
2310 #: ../src/empathy-accounts-dialog.c:271
2311 #: ../src/empathy-call-window.c:808
21872312 msgid "Connecting…"
21882313 msgstr "Povezovanje ..."
21892314
2190 #: ../src/empathy-accounts-dialog.c:314
2315 #: ../src/empathy-accounts-dialog.c:312
21912316 #, c-format
21922317 msgid "Offline — %s"
21932318 msgstr "Brez povezave - %s"
21942319
2195 #: ../src/empathy-accounts-dialog.c:326
2320 #: ../src/empathy-accounts-dialog.c:324
21962321 #, c-format
21972322 msgid "Disconnected — %s"
21982323 msgstr "Prekinjena povezava - %s"
21992324
2200 #: ../src/empathy-accounts-dialog.c:337
2325 #: ../src/empathy-accounts-dialog.c:335
22012326 msgid "Offline — No Network Connection"
22022327 msgstr "Brez povezave - ni omrežne povezave"
22032328
2204 #: ../src/empathy-accounts-dialog.c:344
2329 #: ../src/empathy-accounts-dialog.c:342
22052330 msgid "Unknown Status"
22062331 msgstr "Neznano stanje"
22072332
2208 #: ../src/empathy-accounts-dialog.c:356
2333 #: ../src/empathy-accounts-dialog.c:354
22092334 msgid "Offline — Account Disabled"
22102335 msgstr "Brez povezave - račun je onemogočen"
22112336
2212 #: ../src/empathy-accounts-dialog.c:797
2337 #: ../src/empathy-accounts-dialog.c:795
22132338 msgid ""
22142339 "You are about to create a new account, which will discard\n"
22152340 "your changes. Are you sure you want to proceed?"
22172342 "Ustvarjen bo nov račun, trenutne spremembe pa bodo izgubljene!\n"
22182343 "Ali ste prepričani, da želite nadaljevati?"
22192344
2220 #: ../src/empathy-accounts-dialog.c:1144
2345 #: ../src/empathy-accounts-dialog.c:1142
22212346 #, c-format
22222347 msgid "Do you want to remove %s from your computer?"
22232348 msgstr "Ali želite odstraniti %s iz računalnika?"
22242349
2225 #: ../src/empathy-accounts-dialog.c:1148
2350 #: ../src/empathy-accounts-dialog.c:1146
22262351 msgid "This will not remove your account on the server."
22272352 msgstr "To ne bo odstranilo vašega računa s strežnika."
22282353
2229 #: ../src/empathy-accounts-dialog.c:1385
2354 #: ../src/empathy-accounts-dialog.c:1383
22302355 msgid ""
22312356 "You are about to select another account, which will discard\n"
22322357 "your changes. Are you sure you want to proceed?"
22342359 "Izbran bo nov račun, trenutne spremembe pa bodo izgubljene\n"
22352360 "Ali ste prepričani, da želite nadaljevati?"
22362361
2237 #: ../src/empathy-accounts-dialog.c:1962
2362 #: ../src/empathy-accounts-dialog.c:1960
22382363 msgid ""
22392364 "You are about to close the window, which will discard\n"
22402365 "your changes. Are you sure you want to proceed?"
22662391 msgid "People nearby"
22672392 msgstr "Uporabniki v bližini"
22682393
2269 #: ../src/empathy-call-window.c:463
2394 #: ../src/empathy-av.c:133
2395 msgid "- Empathy Audio/Video Client"
2396 msgstr "- Empathy odjemalec zvoka in slike"
2397
2398 #: ../src/empathy-av.c:149
2399 msgid "Empathy Audio/Video Client"
2400 msgstr "Empathy odjemalec zvoka in slike"
2401
2402 #: ../src/empathy-call-window.c:479
22702403 msgid "Contrast"
22712404 msgstr "Kontrast"
22722405
2273 #: ../src/empathy-call-window.c:466
2406 #: ../src/empathy-call-window.c:482
22742407 msgid "Brightness"
22752408 msgstr "Svetlost"
22762409
2277 #: ../src/empathy-call-window.c:469
2410 #: ../src/empathy-call-window.c:485
22782411 msgid "Gamma"
22792412 msgstr "Gama"
22802413
2281 #: ../src/empathy-call-window.c:574
2414 #: ../src/empathy-call-window.c:590
22822415 msgid "Volume"
22832416 msgstr "Glasnost"
22842417
2285 #: ../src/empathy-call-window.c:1134
2418 #: ../src/empathy-call-window.c:1163
22862419 msgid "_Sidebar"
22872420 msgstr "_Stranska vrstica"
22882421
2289 #: ../src/empathy-call-window.c:1153
2422 #: ../src/empathy-call-window.c:1182
22902423 msgid "Audio input"
22912424 msgstr "Zvočni vhod"
22922425
2293 #: ../src/empathy-call-window.c:1157
2426 #: ../src/empathy-call-window.c:1186
22942427 msgid "Video input"
22952428 msgstr "Video vhod"
22962429
2297 #: ../src/empathy-call-window.c:1161
2430 #: ../src/empathy-call-window.c:1190
22982431 msgid "Dialpad"
22992432 msgstr "Številčnica"
23002433
2434 #: ../src/empathy-call-window.c:1195
2435 msgid "Details"
2436 msgstr "Podrobnosti"
2437
23012438 #. translators: Call is a noun and %s is the contact name. This string
23022439 #. * is used in the window title
2303 #: ../src/empathy-call-window.c:1232
2440 #: ../src/empathy-call-window.c:1263
23042441 #, c-format
23052442 msgid "Call with %s"
23062443 msgstr "Pokliči z %s"
23072444
23082445 #. translators: Call is a noun. This string is used in the window
23092446 #. * title
2310 #: ../src/empathy-call-window.c:1309
2447 #: ../src/empathy-call-window.c:1342
23112448 msgid "Call"
23122449 msgstr "Kliči"
23132450
2451 #: ../src/empathy-call-window.c:1496
2452 msgid "The IP address as seen by the machine"
2453 msgstr "Naslov IP kot ga zazna strojna oprema"
2454
2455 #: ../src/empathy-call-window.c:1498
2456 msgid "The IP address as seen by a server on the Internet"
2457 msgstr "Naslov IP kot ga zazna strežnik v omrežju"
2458
2459 #: ../src/empathy-call-window.c:1500
2460 msgid "The IP address of the peer as seen by the other side"
2461 msgstr "Naslov IP kot ga zazna uporabnik na drugi strani"
2462
2463 #: ../src/empathy-call-window.c:1502
2464 msgid "The IP address of a relay server"
2465 msgstr "Naslov IP posredovalnega strežnika"
2466
2467 #: ../src/empathy-call-window.c:1504
2468 msgid "The IP address of the multicast group"
2469 msgstr "Naslov IP skupine za večsmerno oddajanje"
2470
23142471 #. Translators: number of minutes:seconds the caller has been connected
2315 #: ../src/empathy-call-window.c:1966
2472 #: ../src/empathy-call-window.c:2237
23162473 #, c-format
23172474 msgid "Connected — %d:%02dm"
23182475 msgstr "Povezan - %d:%02d m"
23192476
2320 #: ../src/empathy-call-window.c:2027
2477 #: ../src/empathy-call-window.c:2298
23212478 msgid "Technical Details"
23222479 msgstr "Tehnične podrobnosti"
23232480
2324 #: ../src/empathy-call-window.c:2065
2481 #: ../src/empathy-call-window.c:2336
23252482 #, c-format
23262483 msgid "%s's software does not understand any of the audio formats supported by your computer"
23272484 msgstr "Program stika %s ne prepozna zvočnih zapisov podprtih na vašem sistemu"
23282485
2329 #: ../src/empathy-call-window.c:2070
2486 #: ../src/empathy-call-window.c:2341
23302487 #, c-format
23312488 msgid "%s's software does not understand any of the video formats supported by your computer"
23322489 msgstr "Program stika %s ne prepozna video zapisov podprtih na vašem sistemu"
23332490
2334 #: ../src/empathy-call-window.c:2076
2491 #: ../src/empathy-call-window.c:2347
23352492 #, c-format
23362493 msgid "Can't establish a connection to %s. One of you might be on a network that does not allow direct connections."
23372494 msgstr "Ni mogoče vzpostaviti povezave z %s. Morda je eden od odjemalcev je v omrežju, ki ne dovoli neposrednih povezav."
23382495
2339 #: ../src/empathy-call-window.c:2082
2496 #: ../src/empathy-call-window.c:2353
23402497 msgid "There was a failure on the network"
23412498 msgstr "Prišlo je do napake na omrežju"
23422499
2343 #: ../src/empathy-call-window.c:2086
2500 #: ../src/empathy-call-window.c:2357
23442501 msgid "The audio formats necessary for this call are not installed on your computer"
23452502 msgstr "Zvočni zapisi za ta klic niso nameščeni"
23462503
2347 #: ../src/empathy-call-window.c:2089
2504 #: ../src/empathy-call-window.c:2360
23482505 msgid "The video formats necessary for this call are not installed on your computer"
23492506 msgstr "Video zapisi za ta klic niso nameščeni"
23502507
2351 #: ../src/empathy-call-window.c:2099
2508 #: ../src/empathy-call-window.c:2370
23522509 #, c-format
23532510 msgid "Something unexpected happened in a Telepathy component. Please <a href=\"%s\">report this bug</a> and attach logs gathered from the 'Debug' window in the Help menu."
23542511 msgstr "Prišlo je do nepričakovane napake v delu programa Telepathy. Pošljite <a href=\"%s\">poročilo o hrošču</a> in pripnite dnevnik razhroščevanja iz menija pomoči."
23552512
2356 #: ../src/empathy-call-window.c:2107
2513 #: ../src/empathy-call-window.c:2378
23572514 msgid "There was a failure in the call engine"
23582515 msgstr "Prišlo je do napake v klicnem programniku"
23592516
2360 #: ../src/empathy-call-window.c:2146
2517 #: ../src/empathy-call-window.c:2381
2518 msgid "The end of the stream was reached"
2519 msgstr "Dosežen je konec pretoka"
2520
2521 #: ../src/empathy-call-window.c:2421
23612522 msgid "Can't establish audio stream"
23622523 msgstr "Ni mogoče vzpostaviti zvočnega pretoka"
23632524
2364 #: ../src/empathy-call-window.c:2156
2525 #: ../src/empathy-call-window.c:2431
23652526 msgid "Can't establish video stream"
23662527 msgstr "Ni mogoče vzpostaviti video pretoka"
23672528
23682529 #: ../src/empathy-call-window.ui.h:1
2530 msgid "Audio"
2531 msgstr "Zvok"
2532
2533 #: ../src/empathy-call-window.ui.h:2
23692534 msgid "Call the contact again"
23702535 msgstr "Znova pokliči stik"
23712536
2372 #: ../src/empathy-call-window.ui.h:2
2537 #: ../src/empathy-call-window.ui.h:3
23732538 msgid "Camera Off"
23742539 msgstr "Kamera ni omogočena"
23752540
2376 #: ../src/empathy-call-window.ui.h:3
2541 #: ../src/empathy-call-window.ui.h:4
23772542 msgid "Camera On"
23782543 msgstr "Kamera je omogočena"
23792544
2380 #: ../src/empathy-call-window.ui.h:4
2545 #: ../src/empathy-call-window.ui.h:5
2546 msgid "Decoding Codec:"
2547 msgstr "Kodek odkodiranja:"
2548
2549 #: ../src/empathy-call-window.ui.h:6
23812550 msgid "Disable camera and stop sending video"
23822551 msgstr "Onemogoči kamero in zaustavi pošiljanje videa"
23832552
2384 #: ../src/empathy-call-window.ui.h:5
2553 #: ../src/empathy-call-window.ui.h:7
23852554 msgid "Enable camera and send video"
23862555 msgstr "Omogoči kamero in začni pošiljati video"
23872556
2388 #: ../src/empathy-call-window.ui.h:6
2557 #: ../src/empathy-call-window.ui.h:8
23892558 msgid "Enable camera but don't send video"
23902559 msgstr "Omogoči kamero, vendar ne pošlji videa"
23912560
2392 #: ../src/empathy-call-window.ui.h:7
2561 #: ../src/empathy-call-window.ui.h:9
2562 msgid "Encoding Codec:"
2563 msgstr "Kodek kodiranja:"
2564
2565 #: ../src/empathy-call-window.ui.h:10
23932566 msgid "Hang up"
23942567 msgstr "Odloži"
23952568
2396 #: ../src/empathy-call-window.ui.h:8
2569 #: ../src/empathy-call-window.ui.h:11
23972570 msgid "Hang up current call"
23982571 msgstr "Odloži trenutni klic"
23992572
2400 #: ../src/empathy-call-window.ui.h:9
2573 #: ../src/empathy-call-window.ui.h:12
2574 msgid "Local Candidate:"
2575 msgstr "Krajevni odjemalec:"
2576
2577 #: ../src/empathy-call-window.ui.h:13
24012578 msgid "Preview"
24022579 msgstr "Predogled"
24032580
2404 #: ../src/empathy-call-window.ui.h:10
2581 #: ../src/empathy-call-window.ui.h:14
24052582 msgid "Redial"
24062583 msgstr "Ponovno pokliči"
24072584
2408 #: ../src/empathy-call-window.ui.h:11
2585 #: ../src/empathy-call-window.ui.h:15
2586 msgid "Remote Candidate:"
2587 msgstr "Oddaljeni odjemalec:"
2588
2589 #: ../src/empathy-call-window.ui.h:16
24092590 msgid "Send Audio"
24102591 msgstr "Pošlji zvočni posnetek"
24112592
2412 #: ../src/empathy-call-window.ui.h:12
2593 #: ../src/empathy-call-window.ui.h:17
24132594 msgid "Toggle audio transmission"
24142595 msgstr "Preklopi prenos zvoka"
24152596
2416 #: ../src/empathy-call-window.ui.h:13
2597 #: ../src/empathy-call-window.ui.h:19
24172598 msgid "V_ideo"
24182599 msgstr "V_ideo"
24192600
2420 #: ../src/empathy-call-window.ui.h:14
2601 #: ../src/empathy-call-window.ui.h:20
2602 msgid "Video"
2603 msgstr "Video"
2604
2605 #: ../src/empathy-call-window.ui.h:21
24212606 msgid "Video Off"
24222607 msgstr "Video ni omogočen"
24232608
2424 #: ../src/empathy-call-window.ui.h:15
2609 #: ../src/empathy-call-window.ui.h:22
24252610 msgid "Video On"
24262611 msgstr "Video je omogočen"
24272612
2428 #: ../src/empathy-call-window.ui.h:16
2613 #: ../src/empathy-call-window.ui.h:23
24292614 msgid "Video Preview"
24302615 msgstr "Predogled videa"
24312616
2432 #: ../src/empathy-call-window.ui.h:18
2617 #: ../src/empathy-call-window.ui.h:25
24332618 #: ../src/empathy-main-window.ui.h:27
24342619 msgid "_View"
24352620 msgstr "_Pogled"
24882673 msgstr "Klepet"
24892674
24902675 #: ../src/empathy-chat-window.ui.h:4
2491 msgid "Important Room"
2492 msgstr "Pomembna klepetalnica"
2493
2494 #: ../src/empathy-chat-window.ui.h:5
24952676 msgid "Insert _Smiley"
24962677 msgstr "Vstavi _smeška"
24972678
2498 #: ../src/empathy-chat-window.ui.h:6
2679 #: ../src/empathy-chat-window.ui.h:5
24992680 msgid "Invite _Participant…"
25002681 msgstr "Povabi _udeleženca ..."
25012682
2502 #: ../src/empathy-chat-window.ui.h:7
2683 #: ../src/empathy-chat-window.ui.h:6
25032684 msgid "Move Tab _Left"
25042685 msgstr "Premakni zavihek _levo"
25052686
2506 #: ../src/empathy-chat-window.ui.h:8
2687 #: ../src/empathy-chat-window.ui.h:7
25072688 msgid "Move Tab _Right"
25082689 msgstr "Premakni zavihek _desno"
2690
2691 #: ../src/empathy-chat-window.ui.h:8
2692 msgid "Notify for All Messages"
2693 msgstr "Obvesti o vseh novih sporočilih"
25092694
25102695 #: ../src/empathy-chat-window.ui.h:9
25112696 #: ../src/empathy-main-window.ui.h:16
25712756 msgid "Manage Favorite Rooms"
25722757 msgstr "Upravljanje priljubljenih klepetalnic"
25732758
2574 #: ../src/empathy-event-manager.c:431
2759 #: ../src/empathy-event-manager.c:471
25752760 msgid "Incoming video call"
25762761 msgstr "Dohodni video klic"
25772762
2578 #: ../src/empathy-event-manager.c:431
2763 #: ../src/empathy-event-manager.c:471
25792764 msgid "Incoming call"
25802765 msgstr "Dohodni klic"
25812766
2582 #: ../src/empathy-event-manager.c:435
2767 #: ../src/empathy-event-manager.c:475
25832768 #, c-format
25842769 msgid "%s is video calling you. Do you want to answer?"
25852770 msgstr "%s vas kliče preko video kanala. Ali se želite javiti?"
25862771
2587 #: ../src/empathy-event-manager.c:436
2772 #: ../src/empathy-event-manager.c:476
25882773 #, c-format
25892774 msgid "%s is calling you. Do you want to answer?"
25902775 msgstr "%s vas kliče. Ali se želite javiti?"
25912776
2592 #: ../src/empathy-event-manager.c:458
2777 #: ../src/empathy-event-manager.c:479
2778 #: ../src/empathy-event-manager.c:621
2779 #, c-format
2780 msgid "Incoming call from %s"
2781 msgstr "Dohodni klic od %s"
2782
2783 #: ../src/empathy-event-manager.c:504
25932784 msgid "_Reject"
25942785 msgstr "_Zavrni"
25952786
2596 #: ../src/empathy-event-manager.c:464
2787 #: ../src/empathy-event-manager.c:510
25972788 msgid "_Answer"
25982789 msgstr "_Odgovori"
25992790
2600 #: ../src/empathy-event-manager.c:575
2791 #: ../src/empathy-event-manager.c:621
26012792 #, c-format
26022793 msgid "Incoming video call from %s"
26032794 msgstr "Dohodni video klic od %s"
26042795
2605 #: ../src/empathy-event-manager.c:575
2606 #, c-format
2607 msgid "Incoming call from %s"
2608 msgstr "Dohodni klic od %s"
2609
2610 #: ../src/empathy-event-manager.c:651
2796 #: ../src/empathy-event-manager.c:698
26112797 msgid "Room invitation"
26122798 msgstr "Vabilo v klepetalnico"
26132799
2614 #: ../src/empathy-event-manager.c:654
2800 #: ../src/empathy-event-manager.c:700
2801 #, c-format
2802 msgid "Invitation to join %s"
2803 msgstr "Povabilo v %s"
2804
2805 #: ../src/empathy-event-manager.c:707
26152806 #, c-format
26162807 msgid "%s is inviting you to join %s"
26172808 msgstr "%s vas vabi, da se pridružite v %s"
26182809
2619 #: ../src/empathy-event-manager.c:662
2810 #: ../src/empathy-event-manager.c:715
26202811 msgid "_Decline"
26212812 msgstr "_Odkloni"
26222813
2623 #: ../src/empathy-event-manager.c:667
2814 #: ../src/empathy-event-manager.c:720
26242815 #: ../src/empathy-new-chatroom-dialog.ui.h:7
26252816 msgid "_Join"
26262817 msgstr "_Pridruži se"
26272818
2628 #: ../src/empathy-event-manager.c:705
2819 #: ../src/empathy-event-manager.c:758
26292820 #, c-format
26302821 msgid "%s invited you to join %s"
26312822 msgstr "%s vas je povabil v %s"
26322823
2633 #: ../src/empathy-event-manager.c:732
2824 #: ../src/empathy-event-manager.c:785
26342825 #, c-format
26352826 msgid "Incoming file transfer from %s"
26362827 msgstr "Prihajajoč prenos datoteke od %s"
26372828
2638 #: ../src/empathy-event-manager.c:929
2829 #: ../src/empathy-event-manager.c:986
26392830 #, c-format
26402831 msgid "Subscription requested by %s"
26412832 msgstr "%s zahteva naročilo"
26422833
2643 #: ../src/empathy-event-manager.c:933
2834 #: ../src/empathy-event-manager.c:990
26442835 #, c-format
26452836 msgid ""
26462837 "\n"
26492840 "\n"
26502841 "Sporočilo: %s"
26512842
2652 #: ../src/empathy-event-manager.c:976
2843 #: ../src/empathy-event-manager.c:1033
26532844 #, c-format
26542845 msgid "%s is now offline."
26552846 msgstr "%s ni povezan."
26562847
2657 #: ../src/empathy-event-manager.c:996
2848 #: ../src/empathy-event-manager.c:1053
26582849 #, c-format
26592850 msgid "%s is now online."
26602851 msgstr "%s je povezan."
27532944 msgid "Hashing \"%s\""
27542945 msgstr "Ustvarjanje razpršila \"%s\""
27552946
2756 #: ../src/empathy-ft-manager.c:990
2947 #: ../src/empathy-ft-manager.c:996
27572948 msgid "%"
27582949 msgstr "%"
27592950
2760 #: ../src/empathy-ft-manager.c:1002
2951 #: ../src/empathy-ft-manager.c:1008
27612952 msgid "File"
27622953 msgstr "Datoteka"
27632954
2764 #: ../src/empathy-ft-manager.c:1024
2955 #: ../src/empathy-ft-manager.c:1030
27652956 msgid "Remaining"
27662957 msgstr "Preostalo"
27672958
27942985 msgid "Source"
27952986 msgstr "Vir"
27962987
2797 #: ../src/empathy-main-window.c:457
2988 #. Labels for empty contact list
2989 #: ../src/empathy-main-window.c:95
2990 msgid "No match found"
2991 msgstr "Ni najdenih zadetkov."
2992
2993 #: ../src/empathy-main-window.c:519
27982994 msgid "Reconnect"
27992995 msgstr "Ponovno se poveži"
28002996
2801 #: ../src/empathy-main-window.c:463
2997 #: ../src/empathy-main-window.c:525
28022998 msgid "Edit Account"
28032999 msgstr "Uredi račun"
28043000
2805 #: ../src/empathy-main-window.c:469
3001 #: ../src/empathy-main-window.c:531
28063002 msgid "Close"
28073003 msgstr "Zapri"
28083004
2809 #: ../src/empathy-main-window.c:1154
3005 #: ../src/empathy-main-window.c:1213
28103006 msgid "Contact"
28113007 msgstr "Stik"
28123008
2813 #: ../src/empathy-main-window.c:1476
3009 #: ../src/empathy-main-window.c:1538
28143010 msgid "Contact List"
28153011 msgstr "Seznam stikov"
28163012
2817 #: ../src/empathy-main-window.c:1583
3013 #: ../src/empathy-main-window.c:1647
28183014 msgid "Show and edit accounts"
28193015 msgstr "Pokaži in uredi račune"
28203016
29603156 msgid "_Room:"
29613157 msgstr "_Klepetalnica:"
29623158
2963 #: ../src/empathy-preferences.c:135
3159 #: ../src/empathy-preferences.c:138
29643160 msgid "Message received"
29653161 msgstr "Sporočilo je bilo prejeto"
29663162
2967 #: ../src/empathy-preferences.c:136
3163 #: ../src/empathy-preferences.c:139
29683164 msgid "Message sent"
29693165 msgstr "Sporočilo je bilo poslano"
29703166
2971 #: ../src/empathy-preferences.c:137
3167 #: ../src/empathy-preferences.c:140
29723168 msgid "New conversation"
29733169 msgstr "Nov pogovor"
29743170
2975 #: ../src/empathy-preferences.c:138
3171 #: ../src/empathy-preferences.c:141
29763172 msgid "Contact goes online"
29773173 msgstr "Stik se je povezal"
29783174
2979 #: ../src/empathy-preferences.c:139
3175 #: ../src/empathy-preferences.c:142
29803176 msgid "Contact goes offline"
29813177 msgstr "Stik se je odjavil"
29823178
2983 #: ../src/empathy-preferences.c:140
3179 #: ../src/empathy-preferences.c:143
29843180 msgid "Account connected"
29853181 msgstr "Povezava z računom je vzpostavljena"
29863182
2987 #: ../src/empathy-preferences.c:141
3183 #: ../src/empathy-preferences.c:144
29883184 msgid "Account disconnected"
29893185 msgstr "Povezava z računom je prekinjena"
29903186
2991 #: ../src/empathy-preferences.c:430
3187 #: ../src/empathy-preferences.c:445
29923188 msgid "Language"
29933189 msgstr "Jezik"
29943190
2995 #: ../src/empathy-preferences.c:866
3191 #: ../src/empathy-preferences.c:882
29963192 msgid "Preferences"
29973193 msgstr "Možnosti"
29983194
30173213 msgstr "Onemogoči zvok ob _odsotnosti ali zaposlenosti"
30183214
30193215 #: ../src/empathy-preferences.ui.h:6
3216 msgid "Display incoming events in the notification area"
3217 msgstr "Prikaz prihajajočih dogodkov v obvestilnem področju"
3218
3219 #: ../src/empathy-preferences.ui.h:7
30203220 msgid "Enable notifications when a contact comes online"
30213221 msgstr "Omogoči obvestila ob prijavah stikov"
30223222
3023 #: ../src/empathy-preferences.ui.h:7
3223 #: ../src/empathy-preferences.ui.h:8
30243224 msgid "Enable notifications when a contact goes offline"
30253225 msgstr "Omogoči obvestila ob odjavah stikov"
30263226
3027 #: ../src/empathy-preferences.ui.h:8
3227 #: ../src/empathy-preferences.ui.h:9
30283228 msgid "Enable notifications when the _chat is not focused"
30293229 msgstr "Omogoči obvestila, kadar _klepetalno okno ni v žarišču"
30303230
3031 #: ../src/empathy-preferences.ui.h:9
3231 #: ../src/empathy-preferences.ui.h:10
30323232 msgid "Enable spell checking for languages:"
30333233 msgstr "Omogoči preverjanje črkovanja za jezike:"
30343234
3035 #: ../src/empathy-preferences.ui.h:10
3235 #: ../src/empathy-preferences.ui.h:11
30363236 msgid "General"
30373237 msgstr "Splošno"
30383238
3039 #: ../src/empathy-preferences.ui.h:12
3239 #: ../src/empathy-preferences.ui.h:13
30403240 msgid "Location sources:"
30413241 msgstr "Mesta virov:"
30423242
3043 #: ../src/empathy-preferences.ui.h:13
3243 #: ../src/empathy-preferences.ui.h:14
3244 msgid "Log conversations"
3245 msgstr "Beleži pogovore"
3246
3247 #: ../src/empathy-preferences.ui.h:15
30443248 msgid "Notifications"
30453249 msgstr "Obvestila"
30463250
3047 #: ../src/empathy-preferences.ui.h:14
3251 #: ../src/empathy-preferences.ui.h:16
30483252 msgid "Play sound for events"
30493253 msgstr "Predvajaj zvoke ob dogodkih"
30503254
3051 #: ../src/empathy-preferences.ui.h:15
3255 #: ../src/empathy-preferences.ui.h:17
30523256 msgid "Privacy"
30533257 msgstr "Zasebnost"
30543258
3055 #: ../src/empathy-preferences.ui.h:16
3259 #: ../src/empathy-preferences.ui.h:18
30563260 msgid "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."
30573261 msgstr "Zmanjšana natančnost mesta pomeni, da ne bo objavljenih podatkov natančnejših od mesta in države. Koordinate GPS bodo natančne na eno decimalno mesto."
30583262
3059 #: ../src/empathy-preferences.ui.h:17
3263 #: ../src/empathy-preferences.ui.h:19
30603264 msgid "Show _smileys as images"
30613265 msgstr "Pokaži _smeške kot slike"
30623266
3063 #: ../src/empathy-preferences.ui.h:18
3267 #: ../src/empathy-preferences.ui.h:20
30643268 msgid "Show contact _list in rooms"
30653269 msgstr "Pokaži _seznam stikov v klepetalnicah"
30663270
3067 #: ../src/empathy-preferences.ui.h:19
3271 #: ../src/empathy-preferences.ui.h:21
30683272 msgid "Sounds"
30693273 msgstr "Zvoki"
30703274
3071 #: ../src/empathy-preferences.ui.h:20
3275 #: ../src/empathy-preferences.ui.h:22
30723276 msgid "Spell Checking"
30733277 msgstr "Preverjanje črkovanja"
30743278
3075 #: ../src/empathy-preferences.ui.h:21
3279 #: ../src/empathy-preferences.ui.h:23
30763280 msgid "The list of languages reflects only the languages for which you have a dictionary installed."
30773281 msgstr "Na seznamu jezikov so le tisti, za katere imate nameščene slovarje."
30783282
3079 #: ../src/empathy-preferences.ui.h:22
3283 #: ../src/empathy-preferences.ui.h:24
30803284 msgid "Themes"
30813285 msgstr "Teme"
30823286
3083 #: ../src/empathy-preferences.ui.h:23
3287 #: ../src/empathy-preferences.ui.h:25
30843288 msgid "_Automatically connect on startup"
30853289 msgstr "Samodejno _poveži ob zagonu "
30863290
3087 #: ../src/empathy-preferences.ui.h:24
3291 #: ../src/empathy-preferences.ui.h:26
30883292 msgid "_Cellphone"
30893293 msgstr "_Mobilni telefon"
30903294
3091 #: ../src/empathy-preferences.ui.h:25
3295 #: ../src/empathy-preferences.ui.h:27
30923296 msgid "_Enable bubble notifications"
30933297 msgstr "_Omogoči obvestila v oblačkih"
30943298
3095 #: ../src/empathy-preferences.ui.h:26
3299 #: ../src/empathy-preferences.ui.h:28
30963300 msgid "_Enable sound notifications"
30973301 msgstr "_Omogoči zvočna obvestila"
30983302
3099 #: ../src/empathy-preferences.ui.h:27
3303 #: ../src/empathy-preferences.ui.h:29
31003304 msgid "_GPS"
31013305 msgstr "_GPS"
31023306
3103 #: ../src/empathy-preferences.ui.h:28
3307 #: ../src/empathy-preferences.ui.h:30
31043308 msgid "_Network (IP, Wi-Fi)"
31053309 msgstr "_Omrežje (IP, Wifi)"
31063310
3107 #: ../src/empathy-preferences.ui.h:29
3311 #: ../src/empathy-preferences.ui.h:31
31083312 msgid "_Open new chats in separate windows"
31093313 msgstr "N_ove klepete odpiraj v ločenih oknih"
31103314
3111 #: ../src/empathy-preferences.ui.h:30
3315 #: ../src/empathy-preferences.ui.h:32
31123316 msgid "_Publish location to my contacts"
31133317 msgstr "O_bjavi mesto mojim stikom"
31143318
3115 #: ../src/empathy-preferences.ui.h:31
3319 #. 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.
3320 #: ../src/empathy-preferences.ui.h:34
31163321 msgid "_Reduce location accuracy"
31173322 msgstr "_Zmanjšaj natančnost mesta"
31183323
3119 #: ../src/empathy-status-icon.c:179
3324 #: ../src/empathy-status-icon.c:141
31203325 msgid "Respond"
31213326 msgstr "Odgovori"
3327
3328 #: ../src/empathy-status-icon.c:147
3329 msgid "Reject"
3330 msgstr "Zavrni"
3331
3332 #: ../src/empathy-status-icon.c:151
3333 msgid "Answer"
3334 msgstr "Odgovori"
3335
3336 #: ../src/empathy-status-icon.c:158
3337 msgid "Decline"
3338 msgstr "Odkloni"
3339
3340 #: ../src/empathy-status-icon.c:162
3341 msgid "Accept"
3342 msgstr "Sprejmi"
31223343
31233344 #: ../src/empathy-status-icon.ui.h:2
31243345 msgid "Status"
31283349 msgid "_Quit"
31293350 msgstr "_Končaj"
31303351
3131 #: ../src/empathy-map-view.ui.h:1
3352 #: ../src/empathy-map-view.c:452
31323353 msgid "Contact Map View"
31333354 msgstr "Prikaz zemljevida stikov"
31343355
3135 #: ../src/empathy-debug-window.c:1168
3356 #: ../src/empathy-debug-window.c:1219
31363357 msgid "Save"
31373358 msgstr "Shrani"
31383359
3139 #: ../src/empathy-debug-window.c:1344
3360 #: ../src/empathy-debug-window.c:1395
31403361 msgid "Debug Window"
31413362 msgstr "Razhroščevalno okno"
31423363
3143 #: ../src/empathy-debug-window.c:1424
3364 #: ../src/empathy-debug-window.c:1475
31443365 msgid "Pause"
31453366 msgstr "Premor"
31463367
3147 #: ../src/empathy-debug-window.c:1436
3368 #: ../src/empathy-debug-window.c:1487
31483369 msgid "Level "
31493370 msgstr "Raven"
31503371
3151 #: ../src/empathy-debug-window.c:1456
3372 #: ../src/empathy-debug-window.c:1507
31523373 msgid "Debug"
31533374 msgstr "Razhroščevanje"
31543375
3155 #: ../src/empathy-debug-window.c:1462
3376 #: ../src/empathy-debug-window.c:1513
31563377 msgid "Info"
31573378 msgstr "Podrobnosti"
31583379
3159 #: ../src/empathy-debug-window.c:1468
3160 #: ../src/empathy-debug-window.c:1517
3380 #: ../src/empathy-debug-window.c:1519
3381 #: ../src/empathy-debug-window.c:1568
31613382 msgid "Message"
31623383 msgstr "Sporočilo"
31633384
3164 #: ../src/empathy-debug-window.c:1474
3385 #: ../src/empathy-debug-window.c:1525
31653386 msgid "Warning"
31663387 msgstr "Opozorilo"
31673388
3168 #: ../src/empathy-debug-window.c:1480
3389 #: ../src/empathy-debug-window.c:1531
31693390 msgid "Critical"
31703391 msgstr "Kritično"
31713392
3172 #: ../src/empathy-debug-window.c:1486
3393 #: ../src/empathy-debug-window.c:1537
31733394 msgid "Error"
31743395 msgstr "Napaka"
31753396
3176 #: ../src/empathy-debug-window.c:1505
3397 #: ../src/empathy-debug-window.c:1556
31773398 msgid "Time"
31783399 msgstr "Čas"
31793400
3180 #: ../src/empathy-debug-window.c:1508
3401 #: ../src/empathy-debug-window.c:1559
31813402 msgid "Domain"
31823403 msgstr "Domena"
31833404
3184 #: ../src/empathy-debug-window.c:1510
3405 #: ../src/empathy-debug-window.c:1561
31853406 msgid "Category"
31863407 msgstr "Kategorija"
31873408
3188 #: ../src/empathy-debug-window.c:1512
3409 #: ../src/empathy-debug-window.c:1563
31893410 msgid "Level"
31903411 msgstr "Raven"
31913412
3192 #: ../src/empathy-debug-window.c:1549
3413 #: ../src/empathy-debug-window.c:1600
31933414 msgid "The selected connection manager does not support the remote debugging extension."
31943415 msgstr "Izbrani upravljalnik povezav ne podpira razširitve za oddaljeno razhroščevanje."
31953416
32343455 msgid "Empathy Debugger"
32353456 msgstr "Empathy razhroščevalnik"
32363457
3237 #~ msgid "Empathy IM Client"
3238 #~ msgstr "Empathy sporočilnik"
3458 #~ msgid "Your contact list is empty"
3459 #~ msgstr "Seznam stikov je prazen"
3460 #~ msgid "Send and receive messages"
3461 #~ msgstr "Pošiljanje in prejemanje hipnih sporočil"
3462 #~ msgid "Failed to reconnect this chat"
3463 #~ msgstr "Ponovna povezava s tem klepetom ni bila uspešna"
3464 #~ msgid "Failed to join chat room"
3465 #~ msgstr "Napaka med pridruževanjem klepetalnici"
3466 #~ msgid "Select a destination"
3467 #~ msgstr "Izbor cilja"
3468 #~ msgid "Important Room"
3469 #~ msgstr "Pomembna klepetalnica"
32393470 #~ msgid "MC 4 accounts have been imported"
32403471 #~ msgstr "MC 4 računi so boli uvoženi"
32413472 #~ msgid "MC 4 accounts have been imported."
+903
-685
po/sv.po less more
99 msgstr ""
1010 "Project-Id-Version: empathy\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2010-03-19 00:10+0100\n"
13 "PO-Revision-Date: 2010-03-19 00:10+0100\n"
12 "POT-Creation-Date: 2010-08-14 13:09+0200\n"
13 "PO-Revision-Date: 2010-08-14 13:11+0100\n"
1414 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
1515 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
1616 "MIME-Version: 1.0\n"
1919 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
2020
2121 #: ../data/empathy.desktop.in.in.h:1
22 msgid "Chat on Google Talk, Facebook, MSN, and many other chat services"
23 msgstr "Chatta på Google Talk, Facebook, MSN och många andra chattjänster"
24
25 #: ../data/empathy.desktop.in.in.h:2
2226 msgid "Empathy"
2327 msgstr "Empathy"
2428
25 #: ../data/empathy.desktop.in.in.h:2
26 msgid "Empathy IM Client"
27 msgstr "Snabbmeddelandeklienten Empathy"
28
2929 #: ../data/empathy.desktop.in.in.h:3
30 msgid "Empathy Internet Messaging"
31 msgstr "Meddelandeklienten Empathy"
32
33 #: ../data/empathy.desktop.in.in.h:4
3034 msgid "IM Client"
3135 msgstr "Snabbmeddelandeklient"
3236
33 #: ../data/empathy.desktop.in.in.h:4
34 msgid "Send and receive messages"
35 msgstr "Skicka och ta emot meddelanden"
36
37 #: ../data/empathy.schemas.in.h:1
37 #: ../data/org.gnome.Empathy.gschema.xml.in.h:1
3838 msgid "Always open a separate chat window for new chats."
3939 msgstr "Öppna alltid ett separat fönster för nya chattar."
4040
41 #: ../data/empathy.schemas.in.h:2
41 #: ../data/org.gnome.Empathy.gschema.xml.in.h:2
4242 msgid "Character to add after nickname when using nick completion (tab) in group chat."
4343 msgstr "Tecken att lägga till efter smeknamn när smeknamnskomplettering (tab) används i gruppchatt."
4444
45 #: ../data/empathy.schemas.in.h:3
45 #: ../data/org.gnome.Empathy.gschema.xml.in.h:3
4646 msgid "Chat window theme"
4747 msgstr "Chattfönstertema"
4848
49 #: ../data/empathy.schemas.in.h:4
49 #: ../data/org.gnome.Empathy.gschema.xml.in.h:4
5050 msgid "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
5151 msgstr "Kommaseparerad lista av språk att använda för stavningskontroll (t.ex. \"sv, en, fr\")."
5252
53 #: ../data/empathy.schemas.in.h:5
53 #: ../data/org.gnome.Empathy.gschema.xml.in.h:5
5454 msgid "Compact contact list"
5555 msgstr "Kompakt kontaktlista"
5656
57 #: ../data/empathy.schemas.in.h:6
57 #: ../data/org.gnome.Empathy.gschema.xml.in.h:6
5858 msgid "Connection managers should be used"
5959 msgstr "Anslutningshanterare ska användas"
6060
61 #: ../data/empathy.schemas.in.h:7
61 #: ../data/org.gnome.Empathy.gschema.xml.in.h:7
6262 msgid "Contact list sort criterion"
6363 msgstr "Sorteringskriteria för kontaktlista"
6464
65 #: ../data/empathy.schemas.in.h:8
65 #: ../data/org.gnome.Empathy.gschema.xml.in.h:8
6666 msgid "Default directory to select an avatar image from"
6767 msgstr "Standardkatalog att välja en profilbild från"
6868
69 #: ../data/empathy.schemas.in.h:9
69 #: ../data/org.gnome.Empathy.gschema.xml.in.h:9
7070 msgid "Disable popup notifications when away"
7171 msgstr "Inaktivera popupnotifieringar under frånvaro"
7272
73 #: ../data/empathy.schemas.in.h:10
73 #: ../data/org.gnome.Empathy.gschema.xml.in.h:10
7474 msgid "Disable sounds when away"
7575 msgstr "Inaktivera ljud under frånvaro"
7676
77 #: ../data/empathy.schemas.in.h:11
77 #: ../data/org.gnome.Empathy.gschema.xml.in.h:11
78 msgid "Display incoming events in the status area"
79 msgstr "Visa inkommande händelser i statusytan"
80
81 #: ../data/org.gnome.Empathy.gschema.xml.in.h:12
82 msgid "Display incoming events in the status area. If false present them right away to the user."
83 msgstr "Visa inkommande händelser i statusytan. Om false, visa dem direkt för användaren."
84
85 #: ../data/org.gnome.Empathy.gschema.xml.in.h:13
7886 msgid "Empathy can publish the user's location"
7987 msgstr "Empathy kan publicera användarens plats"
8088
81 #: ../data/empathy.schemas.in.h:12
89 #: ../data/org.gnome.Empathy.gschema.xml.in.h:14
8290 msgid "Empathy can use the GPS to guess the location"
8391 msgstr "Empathy kan använda GPS:en för att gissa platsen"
8492
85 #: ../data/empathy.schemas.in.h:13
93 #: ../data/org.gnome.Empathy.gschema.xml.in.h:15
8694 msgid "Empathy can use the cellular network to guess the location"
8795 msgstr "Empathy kan använda mobiltelefonnätet för att gissa platsen"
8896
89 #: ../data/empathy.schemas.in.h:14
97 #: ../data/org.gnome.Empathy.gschema.xml.in.h:16
9098 msgid "Empathy can use the network to guess the location"
9199 msgstr "Empathy kan använda nätverket för att gissa platsen"
92100
93 #: ../data/empathy.schemas.in.h:15
101 #: ../data/org.gnome.Empathy.gschema.xml.in.h:17
94102 msgid "Empathy default download folder"
95103 msgstr "Standardhämtningsmapp för Empathy"
96104
97 #: ../data/empathy.schemas.in.h:16
105 #: ../data/org.gnome.Empathy.gschema.xml.in.h:18
98106 msgid "Empathy has asked about importing accounts"
99107 msgstr "Empathy har frågat om att importera konton"
100108
101 #: ../data/empathy.schemas.in.h:17
109 #: ../data/org.gnome.Empathy.gschema.xml.in.h:19
102110 msgid "Empathy has migrated butterfly logs"
103111 msgstr "Empathy har migrerat butterfly-loggar"
104112
105 #: ../data/empathy.schemas.in.h:18
113 #: ../data/org.gnome.Empathy.gschema.xml.in.h:20
114 msgid "Empathy should auto-away when idle"
115 msgstr "Empathy ska ställa in automatiskt frånvaro vid inaktivitet"
116
117 #: ../data/org.gnome.Empathy.gschema.xml.in.h:21
106118 msgid "Empathy should auto-connect on startup"
107119 msgstr "Empathy ska ansluta automatiskt vid uppstart"
108120
109 #: ../data/empathy.schemas.in.h:19
121 #: ../data/org.gnome.Empathy.gschema.xml.in.h:22
110122 msgid "Empathy should reduce the location's accuracy"
111123 msgstr "Empathy bör minska precisionen för platsen"
112124
113 #: ../data/empathy.schemas.in.h:20
125 #: ../data/org.gnome.Empathy.gschema.xml.in.h:23
114126 msgid "Empathy should use the avatar of the contact as the chat window icon"
115127 msgstr "Empathy ska använda profilbilden för kontakten som ikon i chattfönstret"
116128
117 #: ../data/empathy.schemas.in.h:21
129 #: ../data/org.gnome.Empathy.gschema.xml.in.h:24
118130 msgid "Enable WebKit Developer Tools"
119131 msgstr "Aktivera utvecklingsverktyg för WebKit"
120132
121 #: ../data/empathy.schemas.in.h:22
133 #: ../data/org.gnome.Empathy.gschema.xml.in.h:25
122134 msgid "Enable popup notifications for new messages"
123135 msgstr "Aktivera popupnotifieringar för nya meddelanden"
124136
125 #: ../data/empathy.schemas.in.h:23
137 #: ../data/org.gnome.Empathy.gschema.xml.in.h:26
126138 msgid "Enable spell checker"
127139 msgstr "Aktivera stavningskontroll"
128140
129141 # Vi översätter "hide" med "dölj" i GNOME. Gömmer gör man något för att det
130142 # inte ska hittas, döljer gör man för att det inte ska synas.
131 #: ../data/empathy.schemas.in.h:24
143 #: ../data/org.gnome.Empathy.gschema.xml.in.h:27
132144 msgid "Hide main window"
133145 msgstr "Dölj huvudfönstret"
134146
135147 # Vi översätter "hide" med "dölj" i GNOME. Gömmer gör man något för att det
136148 # inte ska hittas, döljer gör man för att det inte ska synas.
137 #: ../data/empathy.schemas.in.h:25
149 #: ../data/org.gnome.Empathy.gschema.xml.in.h:28
138150 msgid "Hide the main window."
139151 msgstr "Dölj huvudfönstret."
140152
141 #: ../data/empathy.schemas.in.h:26
142 msgid "MC 4 accounts have been imported"
143 msgstr "MC 4-konton har importerats"
144
145 #: ../data/empathy.schemas.in.h:27
146 msgid "MC 4 accounts have been imported."
147 msgstr "MC 4-konton har importerats."
148
149 #: ../data/empathy.schemas.in.h:28
153 #: ../data/org.gnome.Empathy.gschema.xml.in.h:29
150154 msgid "Nick completed character"
151155 msgstr "Tecken för smeknamnskomplettering"
152156
153 #: ../data/empathy.schemas.in.h:29
157 #: ../data/org.gnome.Empathy.gschema.xml.in.h:30
154158 msgid "Open new chats in separate windows"
155159 msgstr "Öppna nya chattar i separata fönster"
156160
157 #: ../data/empathy.schemas.in.h:30
161 #: ../data/org.gnome.Empathy.gschema.xml.in.h:31
158162 msgid "Path of the Adium theme to use"
159163 msgstr "Sökväg för Adium-temat att använda"
160164
161 #: ../data/empathy.schemas.in.h:31
165 #: ../data/org.gnome.Empathy.gschema.xml.in.h:32
162166 msgid "Path of the Adium theme to use if the theme used for chat is Adium."
163167 msgstr "Sökväg för Adium-temat som ska användas om temat som används för chatt är Adium."
164168
165 #: ../data/empathy.schemas.in.h:32
169 #: ../data/org.gnome.Empathy.gschema.xml.in.h:33
166170 msgid "Play a sound for incoming messages"
167171 msgstr "Spela upp ljud för inkommande meddelanden"
168172
169 #: ../data/empathy.schemas.in.h:33
173 #: ../data/org.gnome.Empathy.gschema.xml.in.h:34
170174 msgid "Play a sound for new conversations"
171175 msgstr "Spela upp ett ljud för nya samtal"
172176
173 #: ../data/empathy.schemas.in.h:34
177 #: ../data/org.gnome.Empathy.gschema.xml.in.h:35
174178 msgid "Play a sound for outgoing messages"
175179 msgstr "Spela upp ljud för utgående meddelanden"
176180
177 #: ../data/empathy.schemas.in.h:35
181 #: ../data/org.gnome.Empathy.gschema.xml.in.h:36
178182 msgid "Play a sound when a contact logs in"
179183 msgstr "Spela upp ljud när en kontakt loggar in"
180184
181 #: ../data/empathy.schemas.in.h:36
185 #: ../data/org.gnome.Empathy.gschema.xml.in.h:37
182186 msgid "Play a sound when a contact logs out"
183187 msgstr "Spela upp ett ljud när en kontakt loggar ut"
184188
185 #: ../data/empathy.schemas.in.h:37
189 #: ../data/org.gnome.Empathy.gschema.xml.in.h:38
186190 msgid "Play a sound when we log in"
187191 msgstr "Spela upp ljud när vi loggar in"
188192
189 #: ../data/empathy.schemas.in.h:38
193 #: ../data/org.gnome.Empathy.gschema.xml.in.h:39
190194 msgid "Play a sound when we log out"
191195 msgstr "Spela upp ljud när vi loggar ut"
192196
193 #: ../data/empathy.schemas.in.h:39
197 #: ../data/org.gnome.Empathy.gschema.xml.in.h:40
194198 msgid "Pop up notifications if the chat isn't focused"
195199 msgstr "Visa popupnotifieringar om chatten inte är fokuserad"
196200
197 #: ../data/empathy.schemas.in.h:40
201 #: ../data/org.gnome.Empathy.gschema.xml.in.h:41
198202 msgid "Pop up notifications when a contact logs in"
199203 msgstr "Visa popupnotifieringar när en kontakt loggar in"
200204
201 #: ../data/empathy.schemas.in.h:41
205 #: ../data/org.gnome.Empathy.gschema.xml.in.h:42
202206 msgid "Pop up notifications when a contact logs out"
203207 msgstr "Visa popupnotifieringar när en kontakt loggar ut"
204208
205 #: ../data/empathy.schemas.in.h:42
209 #: ../data/org.gnome.Empathy.gschema.xml.in.h:43
206210 msgid "Show avatars"
207211 msgstr "Visa profilbilder"
208212
209 #: ../data/empathy.schemas.in.h:43
213 #: ../data/org.gnome.Empathy.gschema.xml.in.h:44
210214 msgid "Show contact list in rooms"
211215 msgstr "Visa kontaktlista i rum"
212216
213 #: ../data/empathy.schemas.in.h:44
217 #: ../data/org.gnome.Empathy.gschema.xml.in.h:45
214218 msgid "Show hint about closing the main window"
215219 msgstr "Visa tips om att stänga huvudfönstret"
216220
217 #: ../data/empathy.schemas.in.h:45
221 #: ../data/org.gnome.Empathy.gschema.xml.in.h:46
218222 msgid "Show offline contacts"
219223 msgstr "Visa frånkopplade kontakter"
220224
221 #: ../data/empathy.schemas.in.h:46
225 #: ../data/org.gnome.Empathy.gschema.xml.in.h:47
222226 msgid "Show protocols"
223227 msgstr "Visa protokoll"
224228
225 #: ../data/empathy.schemas.in.h:47
229 #: ../data/org.gnome.Empathy.gschema.xml.in.h:48
226230 msgid "Spell checking languages"
227231 msgstr "Rättstavningsspråk"
228232
229 #: ../data/empathy.schemas.in.h:48
233 #: ../data/org.gnome.Empathy.gschema.xml.in.h:49
230234 msgid "The default folder to save file transfers in."
231235 msgstr "Standardmappen att spara filöverföringar i."
232236
233 #: ../data/empathy.schemas.in.h:49
237 #: ../data/org.gnome.Empathy.gschema.xml.in.h:50
234238 msgid "The last directory that an avatar image was chosen from."
235239 msgstr "Den senaste katalogen som en profilbild valdes från."
236240
237 #: ../data/empathy.schemas.in.h:50
241 #: ../data/org.gnome.Empathy.gschema.xml.in.h:51
242 msgid "The position for the chat window side pane"
243 msgstr "Positionen för chattfönstrets sidopanel"
244
245 #: ../data/org.gnome.Empathy.gschema.xml.in.h:52
246 msgid "The stored position (in pixels) of the chat window side pane."
247 msgstr "Den lagrade positionen (i bildpunkter) för chattfönstrets sidopanel."
248
249 #: ../data/org.gnome.Empathy.gschema.xml.in.h:53
238250 msgid "The theme that is used to display the conversation in chat windows."
239251 msgstr "Det tema som används för att visa samtal i chattfönster."
240252
241 #: ../data/empathy.schemas.in.h:51
253 #: ../data/org.gnome.Empathy.gschema.xml.in.h:54
242254 msgid "Use graphical smileys"
243255 msgstr "Använd grafiska smilisar"
244256
245 #: ../data/empathy.schemas.in.h:52
257 #: ../data/org.gnome.Empathy.gschema.xml.in.h:55
246258 msgid "Use notification sounds"
247259 msgstr "Använd notifieringsljud"
248260
249 #: ../data/empathy.schemas.in.h:53
261 #: ../data/org.gnome.Empathy.gschema.xml.in.h:56
250262 msgid "Use theme for chat rooms"
251263 msgstr "Använd tema för chattrum"
252264
253 #: ../data/empathy.schemas.in.h:54
265 #: ../data/org.gnome.Empathy.gschema.xml.in.h:57
254266 msgid "Whether Empathy can publish the user's location to their contacts."
255267 msgstr "Huruvida Empathy kan publicera användarens plats till sina kontakter."
256268
257 #: ../data/empathy.schemas.in.h:55
269 #: ../data/org.gnome.Empathy.gschema.xml.in.h:58
258270 msgid "Whether Empathy can use the GPS to guess the location."
259271 msgstr "Huruvida Empathy kan använda GPS för att gissa platsen."
260272
261 #: ../data/empathy.schemas.in.h:56
273 #: ../data/org.gnome.Empathy.gschema.xml.in.h:59
262274 msgid "Whether Empathy can use the cellular network to guess the location."
263275 msgstr "Huruvida Empathy kan använda mobiltelefonnätet för att gissa platsen."
264276
265 #: ../data/empathy.schemas.in.h:57
277 #: ../data/org.gnome.Empathy.gschema.xml.in.h:60
266278 msgid "Whether Empathy can use the network to guess the location."
267279 msgstr "Huruvida Empathy kan använda nätverket för att gissa platsen."
268280
269 #: ../data/empathy.schemas.in.h:58
281 #: ../data/org.gnome.Empathy.gschema.xml.in.h:61
270282 msgid "Whether Empathy has asked about importing accounts from other programs."
271283 msgstr "Huruvida Empathy har frågat om att importera konton från andra program."
272284
273 #: ../data/empathy.schemas.in.h:59
285 #: ../data/org.gnome.Empathy.gschema.xml.in.h:62
274286 msgid "Whether Empathy has migrated butterfly logs."
275287 msgstr "Huruvida Empathy har migrerat butterfly-loggar."
276288
277 #: ../data/empathy.schemas.in.h:60
289 #: ../data/org.gnome.Empathy.gschema.xml.in.h:63
278290 msgid "Whether Empathy should automatically log into your accounts on startup."
279291 msgstr "Huruvida Empathy automatiskt ska logga in med dina konton vid uppstart."
280292
281 #: ../data/empathy.schemas.in.h:61
293 #: ../data/org.gnome.Empathy.gschema.xml.in.h:64
294 msgid "Whether Empathy should go into away mode automatically if user is idle."
295 msgstr "Huruvida Empathy automatiskt ska gå in i frånvaroläge om användaren är inaktiv."
296
297 #: ../data/org.gnome.Empathy.gschema.xml.in.h:65
282298 msgid "Whether Empathy should reduce the location's accuracy for privacy reasons."
283299 msgstr "Huruvida Empathy ska minska platsens precision av integritetsskäl."
284300
285 #: ../data/empathy.schemas.in.h:62
301 #: ../data/org.gnome.Empathy.gschema.xml.in.h:66
286302 msgid "Whether Empathy should use the avatar of the contact as the chat window icon."
287303 msgstr "Huruvida Empathy ska använda profilbilden för kontakten som ikon i chattfönstret."
288304
289 #: ../data/empathy.schemas.in.h:63
305 #: ../data/org.gnome.Empathy.gschema.xml.in.h:67
290306 msgid "Whether WebKit developer tools, such as the Web Inspector, should be enabled."
291307 msgstr "Huruvida utvecklingsverktyg för WebKit, såsom Webbinspekteraren, ska aktiveras."
292308
293 #: ../data/empathy.schemas.in.h:64
309 #: ../data/org.gnome.Empathy.gschema.xml.in.h:68
294310 msgid "Whether connectivity managers should be used to automatically disconnect/reconnect."
295311 msgstr "Huruvida anslutningshanterare ska användas för att automatiskt koppla från/återansluta."
296312
297 #: ../data/empathy.schemas.in.h:65
313 #: ../data/org.gnome.Empathy.gschema.xml.in.h:69
298314 msgid "Whether to check words typed against the languages you want to check with."
299315 msgstr "Huruvida ord som matas in ska kontrolleras mot de språk som du vill kontrollera med."
300316
301 #: ../data/empathy.schemas.in.h:66
317 #: ../data/org.gnome.Empathy.gschema.xml.in.h:70
302318 msgid "Whether to convert smileys into graphical images in conversations."
303319 msgstr "Huruvida smilisar ska omvandlas till grafiska bilder i samtal."
304320
305 #: ../data/empathy.schemas.in.h:67
321 #: ../data/org.gnome.Empathy.gschema.xml.in.h:71
306322 msgid "Whether to play a sound to notify of contacts logging into the network."
307323 msgstr "Huruvida ett ljud ska spelas upp för kontakter som loggar in i nätverket."
308324
309 #: ../data/empathy.schemas.in.h:68
325 #: ../data/org.gnome.Empathy.gschema.xml.in.h:72
310326 msgid "Whether to play a sound to notify of contacts logging out of the network."
311327 msgstr "Huruvida ett ljud ska spelas upp för kontakter som loggar ut från nätverket."
312328
313 #: ../data/empathy.schemas.in.h:69
329 #: ../data/org.gnome.Empathy.gschema.xml.in.h:73
314330 msgid "Whether to play a sound to notify of events."
315331 msgstr "Huruvida ett ljud ska spelas upp för att notifiera om händelser."
316332
317 #: ../data/empathy.schemas.in.h:70
333 #: ../data/org.gnome.Empathy.gschema.xml.in.h:74
318334 msgid "Whether to play a sound to notify of incoming messages."
319335 msgstr "Huruvida ett ljud ska spelas upp för inkommande meddelanden."
320336
321 #: ../data/empathy.schemas.in.h:71
337 #: ../data/org.gnome.Empathy.gschema.xml.in.h:75
322338 msgid "Whether to play a sound to notify of new conversations."
323339 msgstr "Huruvida ett ljud ska spelas upp för nya samtal."
324340
325 #: ../data/empathy.schemas.in.h:72
341 #: ../data/org.gnome.Empathy.gschema.xml.in.h:76
326342 msgid "Whether to play a sound to notify of outgoing messages."
327343 msgstr "Huruvida ett ljud ska spelas upp för utgående meddelanden."
328344
329 #: ../data/empathy.schemas.in.h:73
345 #: ../data/org.gnome.Empathy.gschema.xml.in.h:77
330346 msgid "Whether to play a sound when logging into a network."
331347 msgstr "Huruvida ett ljud ska spelas upp vid inloggning i ett nätverk."
332348
333 #: ../data/empathy.schemas.in.h:74
349 #: ../data/org.gnome.Empathy.gschema.xml.in.h:78
334350 msgid "Whether to play a sound when logging out of a network."
335351 msgstr "Huruvida ett ljud ska spelas upp vid utloggning från ett nätverk."
336352
337 #: ../data/empathy.schemas.in.h:75
353 #: ../data/org.gnome.Empathy.gschema.xml.in.h:79
338354 msgid "Whether to play sound notifications when away or busy."
339355 msgstr "Huruvida ljudnotifieringar ska spelas upp vid frånvaro eller upptagen."
340356
341 #: ../data/empathy.schemas.in.h:76
357 #: ../data/org.gnome.Empathy.gschema.xml.in.h:80
342358 msgid "Whether to show a popup notification when a contact goes offline."
343359 msgstr "Huruvida popupnotifieringar ska visas när en kontakt kopplar från."
344360
345 #: ../data/empathy.schemas.in.h:77
361 #: ../data/org.gnome.Empathy.gschema.xml.in.h:81
346362 msgid "Whether to show a popup notification when a contact goes online."
347363 msgstr "Huruvida popupnotifieringar ska visas när en kontakt ansluter."
348364
349 #: ../data/empathy.schemas.in.h:78
365 #: ../data/org.gnome.Empathy.gschema.xml.in.h:82
350366 msgid "Whether to show a popup notification when receiving a new message even if the chat is already opened, but not focused."
351367 msgstr "Huruvida en popupnotifiering ska visas när ett nytt meddelande tas emot, även om chatten redan är öppnad, men inte fokuserad."
352368
353 #: ../data/empathy.schemas.in.h:79
369 #: ../data/org.gnome.Empathy.gschema.xml.in.h:83
354370 msgid "Whether to show a popup notification when receiving a new message."
355371 msgstr "Huruvida en popupnotifiering ska visas när ett nytt meddelande tas emot."
356372
357 #: ../data/empathy.schemas.in.h:80
373 #: ../data/org.gnome.Empathy.gschema.xml.in.h:84
358374 msgid "Whether to show avatars for contacts in the contact list and chat windows."
359375 msgstr "Huruvida profilbilder ska visas för kontakter i kontaktlistan och chattfönster."
360376
361 #: ../data/empathy.schemas.in.h:81
377 #: ../data/org.gnome.Empathy.gschema.xml.in.h:85
362378 msgid "Whether to show contacts that are offline in the contact list."
363379 msgstr "Huruvida frånkopplade kontakter ska visas i kontaktlistan."
364380
365 #: ../data/empathy.schemas.in.h:82
381 #: ../data/org.gnome.Empathy.gschema.xml.in.h:86
366382 msgid "Whether to show popup notifications when away or busy."
367383 msgstr "Huruvida popupnotifieringar ska visas vid frånvaro eller upptagen."
368384
369 #: ../data/empathy.schemas.in.h:83
385 #: ../data/org.gnome.Empathy.gschema.xml.in.h:87
370386 msgid "Whether to show protocols for contacts in the contact list."
371387 msgstr "Huruvida protokoll för kontakter ska visas i kontaktlistan."
372388
373 #: ../data/empathy.schemas.in.h:84
389 #: ../data/org.gnome.Empathy.gschema.xml.in.h:88
374390 msgid "Whether to show the contact list in chat rooms."
375391 msgstr "Huruvida kontaktlistan ska visas i chattrum."
376392
377 #: ../data/empathy.schemas.in.h:85
393 #: ../data/org.gnome.Empathy.gschema.xml.in.h:89
378394 msgid "Whether to show the contact list in compact mode."
379395 msgstr "Huruvida kontaktlistan ska visas i kompakt läge."
380396
381 #: ../data/empathy.schemas.in.h:86
397 #: ../data/org.gnome.Empathy.gschema.xml.in.h:90
382398 msgid "Whether to show the message dialog about closing the main window with the 'x' button in the title bar."
383399 msgstr "Huruvida meddelandedialogen om att stänga huvudfönstret ska visas när man klickar på \"x\"-knappen i titelraden."
384400
385 #: ../data/empathy.schemas.in.h:87
401 #: ../data/org.gnome.Empathy.gschema.xml.in.h:91
386402 msgid "Whether to use the theme for chat rooms."
387403 msgstr "Huruvida temat för chattrum ska användas."
388404
389 #: ../data/empathy.schemas.in.h:88
405 #: ../data/org.gnome.Empathy.gschema.xml.in.h:92
390406 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 the contact list by state."
391407 msgstr "Vilket kriteria som ska användas när kontaktlistan sorteras. Standard är att sortera efter kontaktens namn med värdet \"name\". Värdet \"state\" kommer att sortera kontaktlistan efter tillstånd."
392408
396412
397413 #. Tweak the dialog
398414 #: ../data/empathy-accounts.desktop.in.in.h:2
399 #: ../src/empathy-accounts-dialog.c:2066
400 #: ../src/cc-empathy-accounts-page.c:243
401 #: ../src/cc-empathy-accounts-panel.c:91
415 #: ../src/empathy-accounts-dialog.c:2092
402416 msgid "Messaging and VoIP Accounts"
403417 msgstr "Meddelande och VoIP-konton"
404418
405 #: ../libempathy/empathy-ft-handler.c:842
419 #: ../libempathy/empathy-ft-handler.c:851
406420 msgid "The hash of the received file and the sent one do not match"
407421 msgstr "Hashsumman för den mottagna filen och den som skickades stämmer inte överens"
408422
409 #: ../libempathy/empathy-ft-handler.c:1102
423 #: ../libempathy/empathy-ft-handler.c:1111
410424 msgid "File transfer not supported by remote contact"
411425 msgstr "Filöverföringar stöds inte fjärrkontakten"
412426
413 #: ../libempathy/empathy-ft-handler.c:1160
427 #: ../libempathy/empathy-ft-handler.c:1169
414428 msgid "The selected file is not a regular file"
415429 msgstr "Den valda filen är inte en vanlig fil"
416430
417 #: ../libempathy/empathy-ft-handler.c:1169
431 #: ../libempathy/empathy-ft-handler.c:1178
418432 msgid "The selected file is empty"
419433 msgstr "Den valda filen är tom"
420434
421 #: ../libempathy/empathy-tp-contact-list.c:834
422 #: ../src/empathy-auto-salut-account-helper.c:77
423 msgid "People nearby"
424 msgstr "Personer i närheten"
425
426 #: ../libempathy/empathy-tp-file.c:280
435 #: ../libempathy/empathy-tp-file.c:283
427436 msgid "Socket type not supported"
428437 msgstr "Uttagstypen stöds inte"
429438
430 #: ../libempathy/empathy-tp-file.c:399
439 #: ../libempathy/empathy-tp-file.c:402
431440 msgid "No reason was specified"
432441 msgstr "Ingen anledning angavs"
433442
434 #: ../libempathy/empathy-tp-file.c:402
443 #: ../libempathy/empathy-tp-file.c:405
435444 msgid "The change in state was requested"
436445 msgstr "Ändring i tillstånd begärdes"
437446
438 #: ../libempathy/empathy-tp-file.c:405
447 #: ../libempathy/empathy-tp-file.c:408
439448 msgid "You canceled the file transfer"
440449 msgstr "Du avbröt filöverföringen"
441450
442 #: ../libempathy/empathy-tp-file.c:408
451 #: ../libempathy/empathy-tp-file.c:411
443452 msgid "The other participant canceled the file transfer"
444453 msgstr "Den andra deltagaren avbröt filöverföringen"
445454
446 #: ../libempathy/empathy-tp-file.c:411
455 #: ../libempathy/empathy-tp-file.c:414
447456 msgid "Error while trying to transfer the file"
448457 msgstr "Fel vid försök att överföra filen"
449458
450 #: ../libempathy/empathy-tp-file.c:414
459 #: ../libempathy/empathy-tp-file.c:417
451460 msgid "The other participant is unable to transfer the file"
452461 msgstr "Den andra deltagaren kunde inte överföra filen"
453462
454 #: ../libempathy/empathy-tp-file.c:417
455 #: ../libempathy/empathy-utils.c:314
463 #: ../libempathy/empathy-tp-file.c:420
464 #: ../libempathy/empathy-utils.c:320
456465 msgid "Unknown reason"
457466 msgstr "Okänd anledning"
458467
459 #: ../libempathy/empathy-utils.c:238
468 #: ../libempathy/empathy-utils.c:242
460469 msgid "Available"
461470 msgstr "Tillgänglig"
462471
463 #: ../libempathy/empathy-utils.c:240
472 #: ../libempathy/empathy-utils.c:244
464473 msgid "Busy"
465474 msgstr "Upptagen"
466475
467 #: ../libempathy/empathy-utils.c:243
476 #: ../libempathy/empathy-utils.c:247
468477 msgid "Away"
469478 msgstr "Frånvarande"
470479
471 #: ../libempathy/empathy-utils.c:245
480 #: ../libempathy/empathy-utils.c:249
472481 msgid "Invisible"
473482 msgstr "Osynlig"
474483
475 #: ../libempathy/empathy-utils.c:247
484 #: ../libempathy/empathy-utils.c:251
476485 msgid "Offline"
477486 msgstr "Frånkopplad"
478487
479 #: ../libempathy/empathy-utils.c:286
488 #: ../libempathy/empathy-utils.c:253
489 #: ../src/empathy-call-window.c:1883
490 #: ../src/empathy-call-window.c:1884
491 #: ../src/empathy-call-window.c:1885
492 #: ../src/empathy-call-window.c:1886
493 #: ../src/empathy-call-window.ui.h:18
494 msgid "Unknown"
495 msgstr "Okänt"
496
497 #: ../libempathy/empathy-utils.c:292
480498 msgid "No reason specified"
481499 msgstr "Ingen anledning angavs"
482500
483 #: ../libempathy/empathy-utils.c:288
501 #: ../libempathy/empathy-utils.c:294
502 #: ../libempathy/empathy-utils.c:350
484503 msgid "Status is set to offline"
485504 msgstr "Status är inställd till frånkopplad"
486505
487 #: ../libempathy/empathy-utils.c:290
506 #: ../libempathy/empathy-utils.c:296
507 #: ../libempathy/empathy-utils.c:330
488508 msgid "Network error"
489509 msgstr "Nätverksfel"
490510
491 #: ../libempathy/empathy-utils.c:292
511 #: ../libempathy/empathy-utils.c:298
512 #: ../libempathy/empathy-utils.c:332
492513 msgid "Authentication failed"
493514 msgstr "Autentisering misslyckades"
494515
495 #: ../libempathy/empathy-utils.c:294
516 #: ../libempathy/empathy-utils.c:300
517 #: ../libempathy/empathy-utils.c:334
496518 msgid "Encryption error"
497519 msgstr "Krypteringsfel"
498520
499 #: ../libempathy/empathy-utils.c:296
521 #: ../libempathy/empathy-utils.c:302
500522 msgid "Name in use"
501523 msgstr "Namnet används"
502524
503 #: ../libempathy/empathy-utils.c:298
525 #: ../libempathy/empathy-utils.c:304
526 #: ../libempathy/empathy-utils.c:336
504527 msgid "Certificate not provided"
505528 msgstr "Certifikat inte tillhandahållet"
506529
507 #: ../libempathy/empathy-utils.c:300
530 #: ../libempathy/empathy-utils.c:306
531 #: ../libempathy/empathy-utils.c:338
508532 msgid "Certificate untrusted"
509533 msgstr "Certifikatet är inte betrott"
510534
511 #: ../libempathy/empathy-utils.c:302
535 #: ../libempathy/empathy-utils.c:308
536 #: ../libempathy/empathy-utils.c:340
512537 msgid "Certificate expired"
513538 msgstr "Certifikatet har gått ut"
514539
515 #: ../libempathy/empathy-utils.c:304
540 #: ../libempathy/empathy-utils.c:310
541 #: ../libempathy/empathy-utils.c:342
516542 msgid "Certificate not activated"
517543 msgstr "Certifikatet är inte aktiverat"
518544
519 #: ../libempathy/empathy-utils.c:306
545 #: ../libempathy/empathy-utils.c:312
546 #: ../libempathy/empathy-utils.c:344
520547 msgid "Certificate hostname mismatch"
521548 msgstr "Värdnamnet i certifikatet stämmer inte"
522549
523 #: ../libempathy/empathy-utils.c:308
550 #: ../libempathy/empathy-utils.c:314
551 #: ../libempathy/empathy-utils.c:346
524552 msgid "Certificate fingerprint mismatch"
525553 msgstr "Certifikatets fingeravtryck stämmer inte"
526554
527 #: ../libempathy/empathy-utils.c:310
555 #: ../libempathy/empathy-utils.c:316
556 #: ../libempathy/empathy-utils.c:348
528557 msgid "Certificate self-signed"
529558 msgstr "Självsignerat certifikat"
530559
531 #: ../libempathy/empathy-utils.c:312
560 #: ../libempathy/empathy-utils.c:318
532561 msgid "Certificate error"
533562 msgstr "Certifikatfel"
534563
535 #: ../libempathy/empathy-utils.c:429
536 #: ../src/empathy-import-mc4-accounts.c:104
564 #: ../libempathy/empathy-utils.c:352
565 msgid "Encryption is not available"
566 msgstr "Kryptering är inte tillgängligt"
567
568 #: ../libempathy/empathy-utils.c:354
569 msgid "Certificate is invalid"
570 msgstr "Certifikatet är ogiltigt"
571
572 #: ../libempathy/empathy-utils.c:356
573 msgid "Connection has been refused"
574 msgstr "Anslutningen vägrades"
575
576 #: ../libempathy/empathy-utils.c:358
577 msgid "Connection can't be established"
578 msgstr "Anslutningen kunde inte etableras"
579
580 #: ../libempathy/empathy-utils.c:360
581 msgid "Connection has been lost"
582 msgstr "Anslutningen förlorades"
583
584 #: ../libempathy/empathy-utils.c:362
585 msgid "This resource is already connected to the server"
586 msgstr "Denna resurs är redan ansluten till servern"
587
588 #: ../libempathy/empathy-utils.c:364
589 msgid "Connection has been replaced by a new connection using the same resource"
590 msgstr "Anslutningen har ersatts av en ny anslutning med samma resurs"
591
592 #: ../libempathy/empathy-utils.c:367
593 msgid "The account already exists on the server"
594 msgstr "Kontot finns redan på servern"
595
596 #: ../libempathy/empathy-utils.c:369
597 msgid "Server is currently too busy to handle the connection"
598 msgstr "Servern är för tillfället för upptagen för att hantera anslutningen"
599
600 #: ../libempathy/empathy-utils.c:371
601 msgid "Certificate has been revoked"
602 msgstr "Certifikatet har spärrats"
603
604 #: ../libempathy/empathy-utils.c:373
605 msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
606 msgstr "Certifikatet använder en osäker skifferalgoritm eller är kryptografiskt svag"
607
608 #: ../libempathy/empathy-utils.c:376
609 msgid "The length of the server certificate, or the depth of the server certificate chain exceed the limits imposed by the crypto library"
610 msgstr "Längd på servercertifikatet eller djup för servercertifikatkedjan överstiger begränsningen för krypteringsbiblioteket"
611
612 #: ../libempathy/empathy-utils.c:529
537613 msgid "People Nearby"
538614 msgstr "Personer i närheten"
539615
540 #: ../libempathy/empathy-utils.c:434
616 #: ../libempathy/empathy-utils.c:534
541617 msgid "Yahoo! Japan"
542618 msgstr "Yahoo! Japan"
543619
544 #: ../libempathy/empathy-utils.c:435
620 #: ../libempathy/empathy-utils.c:535
545621 msgid "Facebook Chat"
546622 msgstr "Facebook-chatt"
547623
591667 msgid "in the future"
592668 msgstr "i framtiden"
593669
594 #: ../libempathy-gtk/empathy-account-chooser.c:462
670 #: ../libempathy-gtk/empathy-account-chooser.c:463
595671 msgid "All"
596672 msgstr "Alla"
597673
598 #: ../libempathy-gtk/empathy-account-widget.c:538
599 #: ../libempathy-gtk/empathy-account-widget.c:594
674 #: ../libempathy-gtk/empathy-account-widget.c:549
675 #: ../libempathy-gtk/empathy-account-widget.c:606
600676 #, c-format
601677 msgid "%s:"
602678 msgstr "%s:"
603679
604 #: ../libempathy-gtk/empathy-account-widget.c:1126
680 #: ../libempathy-gtk/empathy-account-widget.c:1137
605681 msgid "Username:"
606682 msgstr "Användarnamn:"
607683
608 #: ../libempathy-gtk/empathy-account-widget.c:1474
684 #: ../libempathy-gtk/empathy-account-widget.c:1480
609685 msgid "L_og in"
610686 msgstr "L_ogga in"
611687
612 #: ../libempathy-gtk/empathy-account-widget.c:1542
688 #: ../libempathy-gtk/empathy-account-widget.c:1548
613689 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
614690 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
615691 #: ../src/empathy-chatrooms-window.ui.h:1
617693 msgid "Account:"
618694 msgstr "Konto:"
619695
620 #: ../libempathy-gtk/empathy-account-widget.c:1553
696 #: ../libempathy-gtk/empathy-account-widget.c:1559
621697 msgid "Enabled"
622698 msgstr "Aktiverad"
623699
624 #: ../libempathy-gtk/empathy-account-widget.c:1618
700 #: ../libempathy-gtk/empathy-account-widget.c:1624
625701 msgid "This account already exists on the server"
626702 msgstr "Detta konto finns redan på servern"
627703
628 #: ../libempathy-gtk/empathy-account-widget.c:1621
704 #: ../libempathy-gtk/empathy-account-widget.c:1627
629705 msgid "Create a new account on the server"
630706 msgstr "Skapa ett nytt konto på servern"
631707
634710 #. * like: "MyUserName on chat.freenode.net".
635711 #. * You should reverse the order of these arguments if the
636712 #. * server should come before the login id in your locale.
637 #: ../libempathy-gtk/empathy-account-widget.c:2013
713 #: ../libempathy-gtk/empathy-account-widget.c:1996
638714 #, c-format
639715 msgid "%1$s on %2$s"
640716 msgstr "%1$s på %2$s"
641717
642718 #. To translators: The parameter is the protocol name. The resulting
643719 #. * string will be something like: "Jabber Account"
644 #: ../libempathy-gtk/empathy-account-widget.c:2039
720 #: ../libempathy-gtk/empathy-account-widget.c:2022
645721 #, c-format
646722 msgid "%s Account"
647723 msgstr "%s-konto"
648724
649 #: ../libempathy-gtk/empathy-account-widget.c:2043
725 #: ../libempathy-gtk/empathy-account-widget.c:2026
650726 msgid "New account"
651727 msgstr "Nytt konto"
652728
671747 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:4
672748 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
673749 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
674 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
750 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
675751 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
676752 msgid "Pass_word:"
677753 msgstr "L_ösenord:"
691767 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:7
692768 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:7
693769 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:8
694 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
770 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
695771 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:7
696772 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:10
697773 msgid "_Port:"
700776 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:8
701777 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:8
702778 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:9
703 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:24
779 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:25
704780 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:8
705781 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:12
706782 #: ../src/empathy-new-chatroom-dialog.ui.h:9
747823 msgid "_Character set:"
748824 msgstr "Tec_kenuppsättning:"
749825
750 #: ../libempathy-gtk/empathy-account-widget-irc.c:244
826 #: ../libempathy-gtk/empathy-account-widget-irc.c:246
751827 msgid "New Network"
752828 msgstr "Nytt nätverk"
753829
754 #: ../libempathy-gtk/empathy-account-widget-sip.c:184
755 #: ../libempathy-gtk/empathy-account-widget-sip.c:217
830 #: ../libempathy-gtk/empathy-account-widget-sip.c:183
831 #: ../libempathy-gtk/empathy-account-widget-sip.c:216
756832 msgid "Auto"
757833 msgstr "Automatisk"
758834
759 #: ../libempathy-gtk/empathy-account-widget-sip.c:187
835 #: ../libempathy-gtk/empathy-account-widget-sip.c:186
760836 msgid "UDP"
761837 msgstr "UDP"
762838
763 #: ../libempathy-gtk/empathy-account-widget-sip.c:190
839 #: ../libempathy-gtk/empathy-account-widget-sip.c:189
764840 msgid "TCP"
765841 msgstr "TCP"
766842
767 #: ../libempathy-gtk/empathy-account-widget-sip.c:193
843 #: ../libempathy-gtk/empathy-account-widget-sip.c:192
768844 msgid "TLS"
769845 msgstr "TLS"
770846
771847 #. translators: this string is very specific to SIP's internal; maybe
772848 #. * best to keep the English version.
773 #: ../libempathy-gtk/empathy-account-widget-sip.c:222
849 #: ../libempathy-gtk/empathy-account-widget-sip.c:221
774850 msgid "Register"
775851 msgstr "Registrera"
776852
777853 #. translators: this string is very specific to SIP's internal; maybe
778854 #. * best to keep the English version.
779 #: ../libempathy-gtk/empathy-account-widget-sip.c:227
855 #: ../libempathy-gtk/empathy-account-widget-sip.c:226
780856 msgid "Options"
781857 msgstr "Options"
782858
783 #: ../libempathy-gtk/empathy-account-widget-sip.c:230
859 #: ../libempathy-gtk/empathy-account-widget-sip.c:229
784860 msgid "None"
785861 msgstr "Ingen"
786862
836912 msgid "Reso_urce:"
837913 msgstr "_Resurs:"
838914
839 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
915 #. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice.
916 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
840917 msgid ""
841918 "This is your username, not your normal Facebook login.\n"
842919 "If you are facebook.com/<b>badger</b>, enter <b>badger</b>.\n"
846923 "Om du är facebook.com/<b>hamster</b> så ange <b>hamster</b>.\n"
847924 "Använd <a href=\"http://www.facebook.com/username/\">denna sida</a> för att välja ett Facebook-användarnamn om du inte redan har ett."
848925
849 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:12
926 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
850927 msgid "Use old SS_L"
851928 msgstr "Använd gammal SS_L"
852929
853 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:13
930 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
854931 msgid "What is your Facebook password?"
855932 msgstr "Vad är ditt Facebook-lösenord?"
856933
857 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:14
934 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
858935 msgid "What is your Facebook username?"
859936 msgstr "Vad är ditt användarnamn för Facebook?"
860937
861 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:15
938 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
862939 msgid "What is your Google ID?"
863940 msgstr "Vad är ditt Google ID?"
864941
865 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:16
942 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
866943 msgid "What is your Google password?"
867944 msgstr "Vad är ditt Google-lösenord?"
868945
869 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:17
946 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
870947 msgid "What is your Jabber ID?"
871948 msgstr "Vad är ditt Jabber ID?"
872949
873 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:18
950 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
874951 msgid "What is your Jabber password?"
875952 msgstr "Vad är ditt Jabber-lösenord?"
876953
877 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:19
954 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
878955 msgid "What is your desired Jabber ID?"
879956 msgstr "Vilket Jabber ID vill du använda?"
880957
881 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:20
958 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
882959 msgid "What is your desired Jabber password?"
883960 msgstr "Vilket lösenord vill du använda för Jabber?"
884961
885 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:21
962 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
886963 msgid "_Encryption required (TLS/SSL)"
887964 msgstr "_Kryptering krävs (TLS/SSL)"
888965
889 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:22
966 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:23
890967 msgid "_Ignore SSL certificate errors"
891968 msgstr "_Ignorera SSL-certifikatfel"
892969
9431020 msgstr "Upptäck STUN-servern automatiskt"
9441021
9451022 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
946 msgid "Hostname of the proxy for outbound requests."
947 msgstr "Värdnamn för proxyservern för utgående begäran."
948
949 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
9501023 msgid "Interval (seconds)"
9511024 msgstr "Intervall (sekunder)"
9521025
953 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
1026 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
9541027 msgid "Keep-Alive Options"
9551028 msgstr "Keep-Alive-flaggor"
9561029
957 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
958 msgid "Look up the DNS SRV record at the service's domain for the host name of a STUN server."
959 msgstr "Slå upp DNS SRV-posten på tjänstens domän för värdnamnet för en STUN-server."
960
961 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
1030 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
9621031 msgid "Loose Routing"
9631032 msgstr "Loose Routing"
9641033
965 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
1034 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
9661035 msgid "Mechanism:"
9671036 msgstr "Mekanism:"
9681037
969 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
1038 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
9701039 msgid "Miscellaneous Options"
9711040 msgstr "Diverse alternativ"
9721041
973 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
1042 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
9741043 msgid "NAT Traversal Options"
9751044 msgstr "Flaggor för NAT-traversering"
9761045
977 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
978 msgid "Port of the proxy for outbound requests."
979 msgstr "Port på proxyservern för utgående trafik."
980
981 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
1046 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
9821047 msgid "Port:"
9831048 msgstr "Port:"
9841049
985 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
1050 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
9861051 msgid "Proxy Options"
9871052 msgstr "Proxyalternativ"
9881053
989 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
1054 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
9901055 msgid "STUN Server:"
9911056 msgstr "STUN-server:"
9921057
993 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
1058 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
9941059 msgid "Server:"
9951060 msgstr "Server:"
9961061
997 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
998 msgid ""
999 "The username for SIP authentication, if different from the SIP URI\n"
1000 "username."
1001 msgstr ""
1002 "Användarnamnet för SIP-autentisering, om det skiljer sig från\n"
1003 "användarnamnet i SIP URI."
1004
1005 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
1062 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
10061063 msgid "Transport:"
10071064 msgstr "Transport:"
10081065
1009 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
1010 msgid "Update the registration binding if the external address for the client is discovered to be different from the local binding."
1011 msgstr "Uppdatera registreringsbindningen om den externa adressen för klienten skiljer sig från den lokala bindningen."
1012
1013 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:24
1014 msgid "Use the loose routing behavior and the Route header as recommended in RFC 3261."
1015 msgstr "Använd loose routing-beteendet och Route header som rekommenderas i RFC 3261."
1016
1017 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:25
1066 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
10181067 msgid "What is your SIP account password?"
10191068 msgstr "Vad är lösenordet för ditt SIP-konto?"
10201069
1021 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:26
1070 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
10221071 msgid "What is your SIP login ID?"
10231072 msgstr "Vad är ditt inloggnings-id för SIP?"
10241073
1025 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:27
1074 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
10261075 msgid "_Username:"
10271076 msgstr "A_nvändarnamn:"
10281077
10501099 msgid "_Room List locale:"
10511100 msgstr "Lokalanpassning för _rumslista:"
10521101
1053 #: ../libempathy-gtk/empathy-avatar-chooser.c:449
1054 #: ../libempathy-gtk/empathy-avatar-chooser.c:525
1102 #: ../libempathy-gtk/empathy-avatar-chooser.c:443
1103 #: ../libempathy-gtk/empathy-avatar-chooser.c:519
10551104 msgid "Couldn't convert image"
10561105 msgstr "Kunde inte konvertera bild"
10571106
1058 #: ../libempathy-gtk/empathy-avatar-chooser.c:450
1107 #: ../libempathy-gtk/empathy-avatar-chooser.c:444
10591108 msgid "None of the accepted image formats are supported on your system"
10601109 msgstr "Inget av de accepterade bildformaten stöds på ditt system"
10611110
1062 #: ../libempathy-gtk/empathy-avatar-chooser.c:915
1111 #: ../libempathy-gtk/empathy-avatar-chooser.c:935
10631112 msgid "Select Your Avatar Image"
10641113 msgstr "Välj din profilbild"
10651114
1066 #: ../libempathy-gtk/empathy-avatar-chooser.c:918
1115 #: ../libempathy-gtk/empathy-avatar-chooser.c:938
10671116 msgid "No Image"
10681117 msgstr "Ingen bild"
10691118
1070 #: ../libempathy-gtk/empathy-avatar-chooser.c:980
1119 #: ../libempathy-gtk/empathy-avatar-chooser.c:1000
10711120 msgid "Images"
10721121 msgstr "Bilder"
10731122
1074 #: ../libempathy-gtk/empathy-avatar-chooser.c:984
1123 #: ../libempathy-gtk/empathy-avatar-chooser.c:1004
10751124 msgid "All Files"
10761125 msgstr "Alla filer"
10771126
1078 #: ../libempathy-gtk/empathy-avatar-image.c:327
1127 #: ../libempathy-gtk/empathy-avatar-image.c:323
10791128 msgid "Click to enlarge"
10801129 msgstr "Klicka för att förstora"
10811130
1082 #: ../libempathy-gtk/empathy-chat.c:233
1083 msgid "Failed to reconnect this chat"
1084 msgstr "Misslyckades med att återansluta till denna chatt"
1085
1086 #: ../libempathy-gtk/empathy-chat.c:655
1087 msgid "Failed to join chat room"
1088 msgstr "Misslyckades med att gå in i chattrummet"
1089
1090 #: ../libempathy-gtk/empathy-chat.c:673
1131 #: ../libempathy-gtk/empathy-chat.c:639
10911132 msgid "Failed to open private chat"
10921133 msgstr "Misslyckades med att öppna privat chatt"
10931134
1094 #: ../libempathy-gtk/empathy-chat.c:712
1135 #: ../libempathy-gtk/empathy-chat.c:679
10951136 msgid "Topic not supported on this conversation"
10961137 msgstr "Ämne stöds inte för detta samtal"
10971138
1098 #: ../libempathy-gtk/empathy-chat.c:718
1139 #: ../libempathy-gtk/empathy-chat.c:685
10991140 msgid "You are not allowed to change the topic"
11001141 msgstr "Du tillåts inte att ändra ämnet"
11011142
1102 #: ../libempathy-gtk/empathy-chat.c:847
1143 #: ../libempathy-gtk/empathy-chat.c:819
11031144 msgid "/clear: clear all messages from the current conversation"
11041145 msgstr "/clear: töm alla meddelanden från det aktuella samtalet"
11051146
1106 #: ../libempathy-gtk/empathy-chat.c:850
1147 #: ../libempathy-gtk/empathy-chat.c:822
11071148 msgid "/topic <topic>: set the topic of the current conversation"
11081149 msgstr "/topic <ämne>: ställ in ämnet för det aktuella samtalet"
11091150
1110 #: ../libempathy-gtk/empathy-chat.c:853
1151 #: ../libempathy-gtk/empathy-chat.c:825
11111152 msgid "/join <chat room ID>: join a new chat room"
11121153 msgstr "/join <chattrummets ID>: gå in i ett nytt chattrum"
11131154
1114 #: ../libempathy-gtk/empathy-chat.c:856
1155 #: ../libempathy-gtk/empathy-chat.c:828
11151156 msgid "/j <chat room ID>: join a new chat room"
11161157 msgstr "/j <chattrummets ID>: gå in i ett nytt chattrum"
11171158
1118 #: ../libempathy-gtk/empathy-chat.c:859
1159 #: ../libempathy-gtk/empathy-chat.c:833
11191160 msgid "/query <contact ID> [<message>]: open a private chat"
11201161 msgstr "/query <kontaktens ID> [<meddelande>]: öppna en privat chatt"
11211162
1122 #: ../libempathy-gtk/empathy-chat.c:862
1163 #: ../libempathy-gtk/empathy-chat.c:836
11231164 msgid "/msg <contact ID> <message>: open a private chat"
11241165 msgstr "/msg <kontaktens ID> <meddelande>: öppna en privat chatt"
11251166
1126 #: ../libempathy-gtk/empathy-chat.c:865
1167 #: ../libempathy-gtk/empathy-chat.c:840
11271168 msgid "/nick <nickname>: change your nickname on the current server"
11281169 msgstr "/nick <smeknamn>: ändra ditt smeknamn på aktuell server"
11291170
1130 #: ../libempathy-gtk/empathy-chat.c:868
1171 #: ../libempathy-gtk/empathy-chat.c:843
11311172 msgid "/me <message>: send an ACTION message to the current conversation"
11321173 msgstr "/me <meddelande>: skicka ett ACTION-meddelande till aktuellt samtal"
11331174
1134 #: ../libempathy-gtk/empathy-chat.c:871
1175 #: ../libempathy-gtk/empathy-chat.c:846
11351176 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 join a new chat room\""
11361177 msgstr "/say <meddelande>: skicka <meddelande> till det aktuella samtalet. Detta används för att skicka ett meddelande som börjar med ett \"/\". Till exempel: \"/say /join används för att gå in i ett nytt chattrum\""
11371178
1138 #: ../libempathy-gtk/empathy-chat.c:876
1179 #: ../libempathy-gtk/empathy-chat.c:851
11391180 msgid "/help [<command>]: show all supported commands. If <command> is defined, show its usage."
11401181 msgstr "/help [<kommando>]: visa alla kommandon som stöds. Om <kommando> har definierats, visa dess användning."
11411182
1142 #: ../libempathy-gtk/empathy-chat.c:886
1183 #: ../libempathy-gtk/empathy-chat.c:861
11431184 #, c-format
11441185 msgid "Usage: %s"
11451186 msgstr "Användning: %s"
11461187
1147 #: ../libempathy-gtk/empathy-chat.c:915
1188 #: ../libempathy-gtk/empathy-chat.c:890
11481189 msgid "Unknown command"
11491190 msgstr "Okänt kommando"
11501191
1151 #: ../libempathy-gtk/empathy-chat.c:1036
1192 #: ../libempathy-gtk/empathy-chat.c:1011
11521193 msgid "Unknown command; see /help for the available commands"
11531194 msgstr "Okänt kommando; se /help för tillgängliga kommandon"
11541195
1155 #: ../libempathy-gtk/empathy-chat.c:1174
1196 #: ../libempathy-gtk/empathy-chat.c:1149
11561197 msgid "offline"
11571198 msgstr "frånkopplad"
11581199
1159 #: ../libempathy-gtk/empathy-chat.c:1177
1200 #: ../libempathy-gtk/empathy-chat.c:1152
11601201 msgid "invalid contact"
11611202 msgstr "ogiltig kontakt"
11621203
1163 #: ../libempathy-gtk/empathy-chat.c:1180
1204 #: ../libempathy-gtk/empathy-chat.c:1155
11641205 msgid "permission denied"
11651206 msgstr "åtkomst nekad"
11661207
1167 #: ../libempathy-gtk/empathy-chat.c:1183
1208 #: ../libempathy-gtk/empathy-chat.c:1158
11681209 msgid "too long message"
11691210 msgstr "för långt meddelande"
11701211
1171 #: ../libempathy-gtk/empathy-chat.c:1186
1212 #: ../libempathy-gtk/empathy-chat.c:1161
11721213 msgid "not implemented"
11731214 msgstr "inte implementerat"
11741215
1175 #: ../libempathy-gtk/empathy-chat.c:1189
1216 #: ../libempathy-gtk/empathy-chat.c:1165
11761217 msgid "unknown"
11771218 msgstr "okänt"
11781219
1179 #: ../libempathy-gtk/empathy-chat.c:1193
1220 #: ../libempathy-gtk/empathy-chat.c:1169
11801221 #, c-format
11811222 msgid "Error sending message '%s': %s"
11821223 msgstr "Fel vid sändning av meddelandet \"%s\": %s"
11831224
1184 #: ../libempathy-gtk/empathy-chat.c:1228
1225 #: ../libempathy-gtk/empathy-chat.c:1279
1226 #: ../src/empathy-chat-window.c:691
1227 msgid "Topic:"
1228 msgstr "Ämne:"
1229
1230 #: ../libempathy-gtk/empathy-chat.c:1291
11851231 #, c-format
11861232 msgid "Topic set to: %s"
11871233 msgstr "Ämnet inställt till: %s"
11881234
1189 #: ../libempathy-gtk/empathy-chat.c:1230
1235 #: ../libempathy-gtk/empathy-chat.c:1293
11901236 msgid "No topic defined"
11911237 msgstr "Inget ämne definierat"
11921238
1193 #: ../libempathy-gtk/empathy-chat.c:1629
1239 #: ../libempathy-gtk/empathy-chat.c:1772
11941240 msgid "(No Suggestions)"
11951241 msgstr "(Inga förslag)"
11961242
1197 #: ../libempathy-gtk/empathy-chat.c:1683
1243 #: ../libempathy-gtk/empathy-chat.c:1826
11981244 msgid "Insert Smiley"
11991245 msgstr "Infoga smilis"
12001246
12011247 #. send button
1202 #: ../libempathy-gtk/empathy-chat.c:1701
1203 #: ../libempathy-gtk/empathy-ui-utils.c:1626
1248 #: ../libempathy-gtk/empathy-chat.c:1844
1249 #: ../libempathy-gtk/empathy-ui-utils.c:1800
12041250 msgid "_Send"
12051251 msgstr "_Skicka"
12061252
1207 #: ../libempathy-gtk/empathy-chat.c:1735
1253 #: ../libempathy-gtk/empathy-chat.c:1878
12081254 msgid "_Spelling Suggestions"
12091255 msgstr "Sta_vningsförslag"
12101256
1211 #: ../libempathy-gtk/empathy-chat.c:1829
1257 #: ../libempathy-gtk/empathy-chat.c:1955
12121258 msgid "Failed to retrieve recent logs"
12131259 msgstr "Misslyckades med att hämta senaste loggar"
12141260
1215 #: ../libempathy-gtk/empathy-chat.c:1960
1261 #: ../libempathy-gtk/empathy-chat.c:2061
12161262 #, c-format
12171263 msgid "%s has disconnected"
12181264 msgstr "%s har kopplat från"
12201266 #. translators: reverse the order of these arguments
12211267 #. * if the kicked should come before the kicker in your locale.
12221268 #.
1223 #: ../libempathy-gtk/empathy-chat.c:1967
1269 #: ../libempathy-gtk/empathy-chat.c:2068
12241270 #, c-format
12251271 msgid "%1$s was kicked by %2$s"
12261272 msgstr "%1$s sparkades ut av %2$s"
12271273
1228 #: ../libempathy-gtk/empathy-chat.c:1970
1274 #: ../libempathy-gtk/empathy-chat.c:2071
12291275 #, c-format
12301276 msgid "%s was kicked"
12311277 msgstr "%s sparkades ut"
12331279 #. translators: reverse the order of these arguments
12341280 #. * if the banned should come before the banner in your locale.
12351281 #.
1236 #: ../libempathy-gtk/empathy-chat.c:1978
1282 #: ../libempathy-gtk/empathy-chat.c:2079
12371283 #, c-format
12381284 msgid "%1$s was banned by %2$s"
12391285 msgstr "%1$s blev bannlyst av %2$s"
12401286
1241 #: ../libempathy-gtk/empathy-chat.c:1981
1287 #: ../libempathy-gtk/empathy-chat.c:2082
12421288 #, c-format
12431289 msgid "%s was banned"
12441290 msgstr "%s blev bannlyst"
12451291
1246 #: ../libempathy-gtk/empathy-chat.c:1985
1292 #: ../libempathy-gtk/empathy-chat.c:2086
12471293 #, c-format
12481294 msgid "%s has left the room"
12491295 msgstr "%s har lämnat rummet"
12531299 #. * given by the user living the room. If this poses a problem,
12541300 #. * please let us know. :-)
12551301 #.
1256 #: ../libempathy-gtk/empathy-chat.c:1994
1302 #: ../libempathy-gtk/empathy-chat.c:2095
12571303 #, c-format
12581304 msgid " (%s)"
12591305 msgstr " (%s)"
12601306
1261 #: ../libempathy-gtk/empathy-chat.c:2019
1307 #: ../libempathy-gtk/empathy-chat.c:2120
12621308 #, c-format
12631309 msgid "%s has joined the room"
12641310 msgstr "%s har gått in i rummet"
12651311
1266 #: ../libempathy-gtk/empathy-chat.c:2044
1312 #: ../libempathy-gtk/empathy-chat.c:2145
12671313 #, c-format
12681314 msgid "%s is now known as %s"
12691315 msgstr "%s är nu känd som %s"
12701316
1271 #: ../libempathy-gtk/empathy-chat.c:2179
1272 #: ../src/empathy-call-window.c:1532
1317 #: ../libempathy-gtk/empathy-chat.c:2284
1318 #: ../src/empathy-call-window.c:1922
12731319 msgid "Disconnected"
12741320 msgstr "Frånkopplad"
12751321
1276 #: ../libempathy-gtk/empathy-chat.c:2701
1322 #: ../libempathy-gtk/empathy-chat.c:2922
12771323 msgid "Wrong password; please try again:"
12781324 msgstr "Felaktigt lösenord. Försök igen:"
12791325
1280 #: ../libempathy-gtk/empathy-chat.c:2702
1326 #: ../libempathy-gtk/empathy-chat.c:2923
12811327 msgid "Retry"
12821328 msgstr "Försök igen"
12831329
1284 #: ../libempathy-gtk/empathy-chat.c:2707
1330 #: ../libempathy-gtk/empathy-chat.c:2928
12851331 msgid "This room is protected by a password:"
12861332 msgstr "Detta rum är skyddat med ett lösenord:"
12871333
1288 #: ../libempathy-gtk/empathy-chat.c:2708
1334 #: ../libempathy-gtk/empathy-chat.c:2929
12891335 msgid "Join"
12901336 msgstr "Gå in"
12911337
1292 #: ../libempathy-gtk/empathy-chat.c:2848
1338 #: ../libempathy-gtk/empathy-chat.c:3069
12931339 msgid "Connected"
12941340 msgstr "Ansluten"
12951341
1296 #: ../libempathy-gtk/empathy-chat.c:2901
1297 #: ../libempathy-gtk/empathy-log-window.c:707
1342 #: ../libempathy-gtk/empathy-chat.c:3122
1343 #: ../libempathy-gtk/empathy-log-window.c:653
12981344 msgid "Conversation"
12991345 msgstr "Samtal"
13001346
1301 #: ../libempathy-gtk/empathy-chat.ui.h:1
1302 #: ../src/empathy-chat-window.c:684
1303 msgid "Topic:"
1304 msgstr "Ämne:"
1305
13061347 #. Copy Link Address menu item
1307 #: ../libempathy-gtk/empathy-chat-text-view.c:318
1308 #: ../libempathy-gtk/empathy-theme-adium.c:786
1348 #: ../libempathy-gtk/empathy-chat-text-view.c:324
1349 #: ../libempathy-gtk/empathy-theme-adium.c:791
13091350 msgid "_Copy Link Address"
13101351 msgstr "_Kopiera länkadress"
13111352
13121353 #. Open Link menu item
1313 #: ../libempathy-gtk/empathy-chat-text-view.c:325
1314 #: ../libempathy-gtk/empathy-theme-adium.c:793
1354 #: ../libempathy-gtk/empathy-chat-text-view.c:331
1355 #: ../libempathy-gtk/empathy-theme-adium.c:798
13151356 msgid "_Open Link"
13161357 msgstr "_Öppna länk"
13171358
13181359 #. Translators: timestamp displayed between conversations in
13191360 #. * chat windows (strftime format string)
1320 #: ../libempathy-gtk/empathy-chat-text-view.c:423
1361 #: ../libempathy-gtk/empathy-chat-text-view.c:424
13211362 msgid "%A %B %d %Y"
13221363 msgstr "%A %e %B %Y"
13231364
1324 #: ../libempathy-gtk/empathy-contact-dialogs.c:249
1365 #: ../libempathy-gtk/empathy-contact-dialogs.c:243
13251366 msgid "Edit Contact Information"
13261367 msgstr "Redigera kontaktinformation"
13271368
1328 #: ../libempathy-gtk/empathy-contact-dialogs.c:301
1369 #: ../libempathy-gtk/empathy-contact-dialogs.c:295
13291370 msgid "Personal Information"
13301371 msgstr "Personlig information"
13311372
1332 #: ../libempathy-gtk/empathy-contact-dialogs.c:406
1373 #: ../libempathy-gtk/empathy-contact-dialogs.c:401
1374 #: ../libempathy-gtk/empathy-individual-dialogs.c:112
13331375 msgid "New Contact"
13341376 msgstr "Ny kontakt"
13351377
13411383 msgid "Subscription Request"
13421384 msgstr "Prenumerationsbegäran"
13431385
1344 #: ../libempathy-gtk/empathy-contact-list-view.c:1633
1386 #: ../libempathy-gtk/empathy-contact-list-view.c:2004
1387 #: ../libempathy-gtk/empathy-individual-view.c:2025
13451388 #, c-format
13461389 msgid "Do you really want to remove the group '%s'?"
13471390 msgstr "Vill du verkligen ta bort gruppen \"%s\"?"
13481391
1349 #: ../libempathy-gtk/empathy-contact-list-view.c:1635
1392 #: ../libempathy-gtk/empathy-contact-list-view.c:2006
1393 #: ../libempathy-gtk/empathy-individual-view.c:2028
13501394 msgid "Removing group"
13511395 msgstr "Tar bort grupp"
13521396
13531397 #. Remove
1354 #: ../libempathy-gtk/empathy-contact-list-view.c:1684
1355 #: ../libempathy-gtk/empathy-contact-list-view.c:1761
1398 #: ../libempathy-gtk/empathy-contact-list-view.c:2055
1399 #: ../libempathy-gtk/empathy-contact-list-view.c:2132
1400 #: ../libempathy-gtk/empathy-individual-view.c:2082
1401 #: ../libempathy-gtk/empathy-individual-view.c:2167
13561402 #: ../src/empathy-accounts-dialog.ui.h:6
13571403 msgid "_Remove"
13581404 msgstr "_Ta bort"
13591405
1360 #: ../libempathy-gtk/empathy-contact-list-view.c:1714
1406 #: ../libempathy-gtk/empathy-contact-list-view.c:2085
1407 #: ../libempathy-gtk/empathy-individual-view.c:2113
13611408 #, c-format
13621409 msgid "Do you really want to remove the contact '%s'?"
13631410 msgstr "Vill du verkligen ta bort kontakten \"%s\"?"
13641411
1365 #: ../libempathy-gtk/empathy-contact-list-view.c:1716
1412 #: ../libempathy-gtk/empathy-contact-list-view.c:2087
1413 #: ../libempathy-gtk/empathy-individual-view.c:2115
13661414 msgid "Removing contact"
13671415 msgstr "Tar bort kontakt"
13681416
1369 #: ../libempathy-gtk/empathy-contact-menu.c:206
1370 #: ../src/empathy-main-window.ui.h:14
1417 #: ../libempathy-gtk/empathy-contact-menu.c:203
1418 #: ../libempathy-gtk/empathy-individual-menu.c:233
1419 #: ../src/empathy-main-window.ui.h:13
13711420 msgid "_Add Contact…"
13721421 msgstr "_Lägg till kontakt..."
13731422
1374 #: ../libempathy-gtk/empathy-contact-menu.c:233
1375 #: ../src/empathy-main-window.ui.h:15
1423 #: ../libempathy-gtk/empathy-contact-menu.c:230
1424 #: ../libempathy-gtk/empathy-individual-menu.c:273
1425 #: ../src/empathy-main-window.ui.h:14
13761426 msgid "_Chat"
13771427 msgstr "_Chatt"
13781428
1379 #: ../libempathy-gtk/empathy-contact-menu.c:264
1429 #: ../libempathy-gtk/empathy-contact-menu.c:260
1430 #: ../libempathy-gtk/empathy-individual-menu.c:313
13801431 msgctxt "menu item"
13811432 msgid "_Audio Call"
13821433 msgstr "_Ljudsamtal"
13831434
1384 #: ../libempathy-gtk/empathy-contact-menu.c:296
1435 #: ../libempathy-gtk/empathy-contact-menu.c:290
1436 #: ../libempathy-gtk/empathy-individual-menu.c:356
13851437 msgctxt "menu item"
13861438 msgid "_Video Call"
13871439 msgstr "_Videosamtal"
13881440
1389 #: ../libempathy-gtk/empathy-contact-menu.c:347
1390 #: ../src/empathy-main-window.ui.h:26
1441 #: ../libempathy-gtk/empathy-contact-menu.c:330
1442 #: ../libempathy-gtk/empathy-individual-menu.c:408
1443 #: ../src/empathy-main-window.ui.h:25
13911444 msgid "_Previous Conversations"
13921445 msgstr "Ti_digare samtal"
13931446
1394 #: ../libempathy-gtk/empathy-contact-menu.c:369
1395 msgid "Send file"
1447 #: ../libempathy-gtk/empathy-contact-menu.c:352
1448 #: ../libempathy-gtk/empathy-individual-menu.c:449
1449 msgid "Send File"
13961450 msgstr "Skicka fil"
13971451
1398 #: ../libempathy-gtk/empathy-contact-menu.c:392
1399 msgid "Share my desktop"
1452 #: ../libempathy-gtk/empathy-contact-menu.c:375
1453 #: ../libempathy-gtk/empathy-individual-menu.c:491
1454 msgid "Share My Desktop"
14001455 msgstr "Dela ut mitt skrivbord"
14011456
1402 #: ../libempathy-gtk/empathy-contact-menu.c:432
1403 #: ../libempathy-gtk/empathy-contact-widget.c:1379
1457 #: ../libempathy-gtk/empathy-contact-menu.c:415
1458 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1459 #: ../libempathy-gtk/empathy-individual-menu.c:520
14041460 msgid "Favorite"
14051461 msgstr "Favorit"
14061462
1407 #: ../libempathy-gtk/empathy-contact-menu.c:462
1463 #: ../libempathy-gtk/empathy-contact-menu.c:444
1464 #: ../libempathy-gtk/empathy-individual-menu.c:552
14081465 msgid "Infor_mation"
14091466 msgstr "Infor_mation"
14101467
1411 #: ../libempathy-gtk/empathy-contact-menu.c:508
1468 #: ../libempathy-gtk/empathy-contact-menu.c:490
14121469 msgctxt "Edit contact (contextual menu)"
14131470 msgid "_Edit"
14141471 msgstr "R_edigera"
14151472
1416 #: ../libempathy-gtk/empathy-contact-menu.c:562
1417 #: ../src/empathy-chat-window.c:869
1473 #: ../libempathy-gtk/empathy-contact-menu.c:544
1474 #: ../libempathy-gtk/empathy-individual-menu.c:696
1475 #: ../src/empathy-chat-window.c:903
14181476 msgid "Inviting you to this room"
14191477 msgstr "Bjuder in dig till detta rum"
14201478
1421 #: ../libempathy-gtk/empathy-contact-menu.c:593
1422 msgid "_Invite to chat room"
1479 #: ../libempathy-gtk/empathy-contact-menu.c:575
1480 #: ../libempathy-gtk/empathy-individual-menu.c:734
1481 msgid "_Invite to Chat Room"
14231482 msgstr "_Bjud in till chattrum"
14241483
14251484 #: ../libempathy-gtk/empathy-contact-selector.c:129
14261485 msgid "Select a contact"
14271486 msgstr "Välj en kontakt"
14281487
1429 #: ../libempathy-gtk/empathy-contact-widget.c:238
1488 #: ../libempathy-gtk/empathy-contact-widget.c:219
1489 msgid "Full name:"
1490 msgstr "Fullständigt namn:"
1491
1492 #: ../libempathy-gtk/empathy-contact-widget.c:220
1493 msgid "Phone number:"
1494 msgstr "Telefonnummer:"
1495
1496 #: ../libempathy-gtk/empathy-contact-widget.c:221
1497 msgid "E-mail address:"
1498 msgstr "E-postadress:"
1499
1500 # "Web site" är "webbplats". "Web page" är "webbsida".
1501 #: ../libempathy-gtk/empathy-contact-widget.c:222
1502 msgid "Website:"
1503 msgstr "Webbplats:"
1504
1505 #: ../libempathy-gtk/empathy-contact-widget.c:223
1506 msgid "Birthday:"
1507 msgstr "Födelsedag:"
1508
1509 #: ../libempathy-gtk/empathy-contact-widget.c:603
14301510 msgid "Select"
14311511 msgstr "Markera"
14321512
1433 #: ../libempathy-gtk/empathy-contact-widget.c:247
1434 #: ../src/empathy-main-window.c:1050
1513 #: ../libempathy-gtk/empathy-contact-widget.c:612
1514 #: ../src/empathy-main-window.c:1231
14351515 msgid "Group"
14361516 msgstr "Grupp"
14371517
1438 #: ../libempathy-gtk/empathy-contact-widget.c:478
1518 #: ../libempathy-gtk/empathy-contact-widget.c:841
14391519 msgid "Country ISO Code:"
14401520 msgstr "Landets ISO-kod:"
14411521
1442 #: ../libempathy-gtk/empathy-contact-widget.c:480
1522 #: ../libempathy-gtk/empathy-contact-widget.c:843
14431523 msgid "Country:"
14441524 msgstr "Land:"
14451525
1446 #: ../libempathy-gtk/empathy-contact-widget.c:482
1526 #: ../libempathy-gtk/empathy-contact-widget.c:845
14471527 msgid "State:"
14481528 msgstr "Län:"
14491529
1450 #: ../libempathy-gtk/empathy-contact-widget.c:484
1530 #: ../libempathy-gtk/empathy-contact-widget.c:847
14511531 msgid "City:"
14521532 msgstr "Stad:"
14531533
1454 #: ../libempathy-gtk/empathy-contact-widget.c:486
1534 #: ../libempathy-gtk/empathy-contact-widget.c:849
14551535 msgid "Area:"
14561536 msgstr "Område:"
14571537
1458 #: ../libempathy-gtk/empathy-contact-widget.c:488
1538 #: ../libempathy-gtk/empathy-contact-widget.c:851
14591539 msgid "Postal Code:"
14601540 msgstr "Postnummer:"
14611541
1462 #: ../libempathy-gtk/empathy-contact-widget.c:490
1542 #: ../libempathy-gtk/empathy-contact-widget.c:853
14631543 msgid "Street:"
14641544 msgstr "Gata:"
14651545
1466 #: ../libempathy-gtk/empathy-contact-widget.c:492
1546 #: ../libempathy-gtk/empathy-contact-widget.c:855
14671547 msgid "Building:"
14681548 msgstr "Byggnad:"
14691549
1470 #: ../libempathy-gtk/empathy-contact-widget.c:494
1550 #: ../libempathy-gtk/empathy-contact-widget.c:857
14711551 msgid "Floor:"
14721552 msgstr "Våning:"
14731553
1474 #: ../libempathy-gtk/empathy-contact-widget.c:496
1554 #: ../libempathy-gtk/empathy-contact-widget.c:859
14751555 msgid "Room:"
14761556 msgstr "Rum:"
14771557
1478 #: ../libempathy-gtk/empathy-contact-widget.c:498
1558 #: ../libempathy-gtk/empathy-contact-widget.c:861
14791559 msgid "Text:"
14801560 msgstr "Text:"
14811561
1482 #: ../libempathy-gtk/empathy-contact-widget.c:500
1562 #: ../libempathy-gtk/empathy-contact-widget.c:863
14831563 msgid "Description:"
14841564 msgstr "Beskrivning:"
14851565
1486 #: ../libempathy-gtk/empathy-contact-widget.c:502
1566 #: ../libempathy-gtk/empathy-contact-widget.c:865
14871567 msgid "URI:"
14881568 msgstr "URI:"
14891569
1490 #: ../libempathy-gtk/empathy-contact-widget.c:504
1570 #: ../libempathy-gtk/empathy-contact-widget.c:867
14911571 msgid "Accuracy Level:"
14921572 msgstr "Precisionsnivå:"
14931573
1494 #: ../libempathy-gtk/empathy-contact-widget.c:506
1574 #: ../libempathy-gtk/empathy-contact-widget.c:869
14951575 msgid "Error:"
14961576 msgstr "Fel:"
14971577
1498 #: ../libempathy-gtk/empathy-contact-widget.c:508
1578 #: ../libempathy-gtk/empathy-contact-widget.c:871
14991579 msgid "Vertical Error (meters):"
15001580 msgstr "Vertikalt fel (meter):"
15011581
1502 #: ../libempathy-gtk/empathy-contact-widget.c:510
1582 #: ../libempathy-gtk/empathy-contact-widget.c:873
15031583 msgid "Horizontal Error (meters):"
15041584 msgstr "Horisontellt fel (meter):"
15051585
1506 #: ../libempathy-gtk/empathy-contact-widget.c:512
1586 #: ../libempathy-gtk/empathy-contact-widget.c:875
15071587 msgid "Speed:"
15081588 msgstr "Hastighet:"
15091589
1510 #: ../libempathy-gtk/empathy-contact-widget.c:514
1590 #: ../libempathy-gtk/empathy-contact-widget.c:877
15111591 msgid "Bearing:"
15121592 msgstr "Riktning:"
15131593
1514 #: ../libempathy-gtk/empathy-contact-widget.c:516
1594 #: ../libempathy-gtk/empathy-contact-widget.c:879
15151595 msgid "Climb Speed:"
15161596 msgstr "Höjdökning:"
15171597
1518 #: ../libempathy-gtk/empathy-contact-widget.c:518
1598 #: ../libempathy-gtk/empathy-contact-widget.c:881
15191599 msgid "Last Updated on:"
15201600 msgstr "Senast uppdaterad:"
15211601
1522 #: ../libempathy-gtk/empathy-contact-widget.c:520
1602 #: ../libempathy-gtk/empathy-contact-widget.c:883
15231603 msgid "Longitude:"
15241604 msgstr "Longitud:"
15251605
1526 #: ../libempathy-gtk/empathy-contact-widget.c:522
1606 #: ../libempathy-gtk/empathy-contact-widget.c:885
15271607 msgid "Latitude:"
15281608 msgstr "Latitud:"
15291609
1530 #: ../libempathy-gtk/empathy-contact-widget.c:524
1610 #: ../libempathy-gtk/empathy-contact-widget.c:887
15311611 msgid "Altitude:"
15321612 msgstr "Höjd:"
15331613
1534 #: ../libempathy-gtk/empathy-contact-widget.c:587
1614 #: ../libempathy-gtk/empathy-contact-widget.c:950
15351615 #: ../src/empathy-preferences.ui.h:12
15361616 msgid "Location"
15371617 msgstr "Plats"
15381618
1539 #: ../libempathy-gtk/empathy-contact-widget.c:603
1619 #: ../libempathy-gtk/empathy-contact-widget.c:966
15401620 msgid "<b>Location</b>, "
15411621 msgstr "<b>Plats</b>, "
15421622
1543 #: ../libempathy-gtk/empathy-contact-widget.c:653
1623 #: ../libempathy-gtk/empathy-contact-widget.c:1017
15441624 msgid "%B %e, %Y at %R UTC"
15451625 msgstr "%e %B, %Y klockan %H.%M UTC"
15461626
1547 #: ../libempathy-gtk/empathy-contact-widget.c:736
1627 #: ../libempathy-gtk/empathy-contact-widget.c:1100
15481628 msgid "Save Avatar"
15491629 msgstr "Spara profilbild"
15501630
1551 #: ../libempathy-gtk/empathy-contact-widget.c:792
1631 #: ../libempathy-gtk/empathy-contact-widget.c:1156
15521632 msgid "Unable to save avatar"
15531633 msgstr "Kunde inte spara profilbild"
15541634
15611641 msgstr "Alias:"
15621642
15631643 #: ../libempathy-gtk/empathy-contact-widget.ui.h:4
1564 msgid "Birthday:"
1565 msgstr "Födelsedag:"
1566
1567 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
15681644 msgid "Client Information"
15691645 msgstr "Klientinformation"
15701646
1571 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
1647 #: ../libempathy-gtk/empathy-contact-widget.ui.h:5
15721648 msgid "Client:"
15731649 msgstr "Klient:"
15741650
1575 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
1651 #: ../libempathy-gtk/empathy-contact-widget.ui.h:6
15761652 msgid "Contact Details"
15771653 msgstr "Kontaktuppgifter"
15781654
1579 #: ../libempathy-gtk/empathy-contact-widget.ui.h:8
1580 msgid "E-mail address:"
1581 msgstr "E-postadress:"
1582
1583 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
1584 msgid "Full name:"
1585 msgstr "Fullständigt namn:"
1586
1587 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
1655 #: ../libempathy-gtk/empathy-contact-widget.ui.h:7
15881656 msgid "Groups"
15891657 msgstr "Grupper"
15901658
15911659 #. Identifier to connect to Instant Messaging network
1592 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
1660 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
15931661 msgid "Identifier:"
15941662 msgstr "Identifierare:"
15951663
1596 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
1664 #: ../libempathy-gtk/empathy-contact-widget.ui.h:10
15971665 msgid "Information requested…"
15981666 msgstr "Information begärd..."
15991667
1600 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
1668 #: ../libempathy-gtk/empathy-contact-widget.ui.h:11
16011669 msgid "OS:"
16021670 msgstr "OS:"
16031671
1604 #: ../libempathy-gtk/empathy-contact-widget.ui.h:15
1672 #: ../libempathy-gtk/empathy-contact-widget.ui.h:12
16051673 msgid "Select the groups you want this contact to appear in. Note that you can select more than one group or no groups."
16061674 msgstr "Välj de grupper som du vill att denna kontakt ska finnas i. Observera att du kan välja fler än en grupp eller inga grupper alls."
16071675
1608 #: ../libempathy-gtk/empathy-contact-widget.ui.h:16
1676 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
16091677 msgid "Version:"
16101678 msgstr "Version:"
16111679
1612 # "Web site" är "webbplats". "Web page" är "webbsida".
1613 #: ../libempathy-gtk/empathy-contact-widget.ui.h:17
1614 msgid "Website:"
1615 msgstr "Webbplats:"
1616
1617 #: ../libempathy-gtk/empathy-contact-widget.ui.h:18
1680 #: ../libempathy-gtk/empathy-contact-widget.ui.h:14
16181681 msgid "_Add Group"
16191682 msgstr "_Lägg till grupp"
1683
1684 #: ../libempathy-gtk/empathy-individual-linker.c:250
1685 msgid "Select contacts to link"
1686 msgstr "Välj kontakter att länka"
1687
1688 #: ../libempathy-gtk/empathy-individual-linker.c:298
1689 msgid "New contact preview"
1690 msgstr "Förhandsvisa ny kontakt"
1691
1692 #: ../libempathy-gtk/empathy-individual-menu.c:608
1693 msgctxt "Edit individual (contextual menu)"
1694 msgid "_Edit"
1695 msgstr "R_edigera"
1696
1697 #: ../libempathy-gtk/empathy-individual-menu.c:638
1698 msgctxt "Link individual (contextual menu)"
1699 msgid "_Link…"
1700 msgstr "_Länka…"
16201701
16211702 #: ../libempathy-gtk/empathy-irc-network-dialog.c:280
16221703 msgid "new server"
16341715 msgid "SSL"
16351716 msgstr "SSL"
16361717
1637 #: ../libempathy-gtk/empathy-log-window.c:700
1638 #: ../src/empathy-import-widget.c:310
1718 #: ../libempathy-gtk/empathy-linking-dialog.c:92
1719 msgid "Link Contacts"
1720 msgstr "Länka kontakter"
1721
1722 #. Add button
1723 #: ../libempathy-gtk/empathy-linking-dialog.c:102
1724 msgid "_Link"
1725 msgstr "_Länka"
1726
1727 #: ../libempathy-gtk/empathy-log-window.c:646
1728 #: ../src/empathy-import-widget.c:312
16391729 msgid "Account"
16401730 msgstr "Konto"
16411731
1642 #: ../libempathy-gtk/empathy-log-window.c:717
1732 #: ../libempathy-gtk/empathy-log-window.c:663
16431733 msgid "Date"
16441734 msgstr "Datum"
16451735
16641754 msgstr "Kontakt-id:"
16651755
16661756 #. add chat button
1667 #: ../libempathy-gtk/empathy-new-message-dialog.c:144
1757 #: ../libempathy-gtk/empathy-new-message-dialog.c:145
16681758 msgid "C_hat"
16691759 msgstr "C_hatta"
16701760
16711761 #. Tweak the dialog
1672 #: ../libempathy-gtk/empathy-new-message-dialog.c:154
1762 #: ../libempathy-gtk/empathy-new-message-dialog.c:155
16731763 msgid "New Conversation"
16741764 msgstr "Nytt samtal"
16751765
16761766 #. add video toggle
1677 #: ../libempathy-gtk/empathy-new-call-dialog.c:188
1767 #: ../libempathy-gtk/empathy-new-call-dialog.c:205
16781768 msgid "Send _Video"
16791769 msgstr "Skicka _video"
16801770
16811771 #. add chat button
1682 #: ../libempathy-gtk/empathy-new-call-dialog.c:196
1683 #: ../src/empathy-call-window.ui.h:17
1772 #: ../libempathy-gtk/empathy-new-call-dialog.c:213
1773 #: ../src/empathy-call-window.ui.h:24
16841774 msgid "_Call"
16851775 msgstr "_Ring"
16861776
16871777 #. Tweak the dialog
1688 #: ../libempathy-gtk/empathy-new-call-dialog.c:206
1778 #: ../libempathy-gtk/empathy-new-call-dialog.c:223
16891779 msgid "New Call"
16901780 msgstr "Nytt samtal"
16911781
17221812 msgstr "Ange din närvaro och aktuell status"
17231813
17241814 #. Custom messages
1725 #: ../libempathy-gtk/empathy-presence-chooser.c:1128
1815 #: ../libempathy-gtk/empathy-presence-chooser.c:1124
17261816 msgid "Custom messages…"
17271817 msgstr "Anpassade meddelanden..."
17281818
17381828 msgid "Phrase not found"
17391829 msgstr "Frasen hittades inte"
17401830
1741 #: ../libempathy-gtk/empathy-sound.c:51
1831 #: ../libempathy-gtk/empathy-sound.c:50
17421832 msgid "Received an instant message"
17431833 msgstr "Tog emot ett snabbmeddelande"
17441834
1745 #: ../libempathy-gtk/empathy-sound.c:53
1835 #: ../libempathy-gtk/empathy-sound.c:52
17461836 msgid "Sent an instant message"
17471837 msgstr "Skickade ett snabbmeddelande"
17481838
1749 #: ../libempathy-gtk/empathy-sound.c:55
1839 #: ../libempathy-gtk/empathy-sound.c:54
17501840 msgid "Incoming chat request"
17511841 msgstr "Inkommande chattbegäran"
17521842
1753 #: ../libempathy-gtk/empathy-sound.c:57
1843 #: ../libempathy-gtk/empathy-sound.c:56
17541844 msgid "Contact connected"
17551845 msgstr "Kontakten ansluten"
17561846
1757 #: ../libempathy-gtk/empathy-sound.c:59
1847 #: ../libempathy-gtk/empathy-sound.c:58
17581848 msgid "Contact disconnected"
17591849 msgstr "Kontakten frånkopplad"
17601850
1761 #: ../libempathy-gtk/empathy-sound.c:61
1851 #: ../libempathy-gtk/empathy-sound.c:60
17621852 msgid "Connected to server"
17631853 msgstr "Ansluten till server"
17641854
1765 #: ../libempathy-gtk/empathy-sound.c:63
1855 #: ../libempathy-gtk/empathy-sound.c:62
17661856 msgid "Disconnected from server"
17671857 msgstr "Frånkopplad från server"
17681858
1769 #: ../libempathy-gtk/empathy-sound.c:65
1859 #: ../libempathy-gtk/empathy-sound.c:64
17701860 msgid "Incoming voice call"
17711861 msgstr "Inkommande röstsamtal"
17721862
1773 #: ../libempathy-gtk/empathy-sound.c:67
1863 #: ../libempathy-gtk/empathy-sound.c:66
17741864 msgid "Outgoing voice call"
17751865 msgstr "Utgående röstsamtal"
17761866
1777 #: ../libempathy-gtk/empathy-sound.c:69
1867 #: ../libempathy-gtk/empathy-sound.c:68
17781868 msgid "Voice call ended"
17791869 msgstr "Röstsamtal avslutat"
17801870
18101900 msgid "Blue"
18111901 msgstr "Blått"
18121902
1813 #: ../libempathy-gtk/empathy-ui-utils.c:1501
1903 #: ../libempathy-gtk/empathy-ui-utils.c:1697
18141904 msgid "Unable to open URI"
18151905 msgstr "Kunde inte öppna uri"
18161906
1817 #: ../libempathy-gtk/empathy-ui-utils.c:1618
1907 #: ../libempathy-gtk/empathy-ui-utils.c:1792
18181908 msgid "Select a file"
18191909 msgstr "Välj en fil"
18201910
1821 #: ../libempathy-gtk/empathy-ui-utils.c:1682
1822 msgid "Select a destination"
1823 msgstr "Välj ett mål"
1911 #: ../libempathy-gtk/empathy-ui-utils.c:1861
1912 #, c-format
1913 msgid "Incoming file from %s"
1914 msgstr "Inkommande fil från %s"
18241915
18251916 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
18261917 msgid "Current Locale"
20022093 msgid "No error message"
20032094 msgstr "Inget felmeddelande"
20042095
2005 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:242
2096 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:244
2097 #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:259
20062098 msgid "Instant Message (Empathy)"
20072099 msgstr "Snabbmeddelanden (Empathy)"
20082100
2009 #: ../src/empathy.c:596
2101 #: ../src/empathy.c:414
20102102 msgid "Don't connect on startup"
20112103 msgstr "Anslut inte vid uppstart"
20122104
2013 #: ../src/empathy.c:600
2105 #: ../src/empathy.c:418
20142106 msgid "Don't display the contact list or any other dialogs on startup"
20152107 msgstr "Visa inte kontaktlistan eller några andra dialogrutor vid uppstart"
20162108
2017 #: ../src/empathy.c:612
2109 #: ../src/empathy.c:435
20182110 msgid "- Empathy IM Client"
20192111 msgstr "- Empathy snabbmeddelandeklient"
20202112
20702162 msgstr "Du kan antingen gå tillbaka och försöka att ange dina kontouppgifter igen eller avsluta denna guide och lägga till konton senare från Redigera-menyn."
20712163
20722164 #: ../src/empathy-account-assistant.c:220
2073 #: ../src/empathy-account-assistant.c:1303
2165 #: ../src/empathy-account-assistant.c:1311
20742166 msgid "An error occurred"
20752167 msgstr "Ett fel inträffade"
20762168
20792171 #. To translator: %s is the name of the protocol, such as "Google Talk" or
20802172 #. * "Yahoo!"
20812173 #.
2082 #: ../src/empathy-account-assistant.c:413
2083 #: ../src/empathy-accounts-dialog.c:580
2174 #: ../src/empathy-account-assistant.c:412
2175 #: ../src/empathy-accounts-dialog.c:604
20842176 #, c-format
20852177 msgid "New %s account"
20862178 msgstr "Nytt %s-konto"
20872179
2088 #: ../src/empathy-account-assistant.c:508
2180 #: ../src/empathy-account-assistant.c:510
20892181 msgid "What kind of chat account do you have?"
20902182 msgstr "Vilken typ av chattkonto har du?"
20912183
2092 #: ../src/empathy-account-assistant.c:514
2184 #: ../src/empathy-account-assistant.c:516
20932185 msgid "Do you have any other chat accounts you want to set up?"
20942186 msgstr "Har du ytterligare chattkonton som du vill konfigurera?"
20952187
2096 #: ../src/empathy-account-assistant.c:520
2188 #: ../src/empathy-account-assistant.c:522
20972189 msgid "Enter your account details"
20982190 msgstr "Ange dina kontouppgifter"
20992191
2100 #: ../src/empathy-account-assistant.c:525
2192 #: ../src/empathy-account-assistant.c:527
21012193 msgid "What kind of chat account do you want to create?"
21022194 msgstr "Vilken typ av chattkonto vill du skapa?"
21032195
2104 #: ../src/empathy-account-assistant.c:531
2196 #: ../src/empathy-account-assistant.c:533
21052197 msgid "Do you want to create other chat accounts?"
21062198 msgstr "Vill du skapa andra chattkonton?"
21072199
2108 #: ../src/empathy-account-assistant.c:538
2200 #: ../src/empathy-account-assistant.c:540
21092201 msgid "Enter the details for the new account"
21102202 msgstr "Ange uppgifterna för det nya kontot"
21112203
2112 #: ../src/empathy-account-assistant.c:653
2204 #: ../src/empathy-account-assistant.c:655
21132205 msgid "With Empathy you can chat with people online nearby and with friends and colleagues who use Google Talk, AIM, Windows Live and many other chat programs. With a microphone or a webcam you can also have audio or video calls."
21142206 msgstr "Med Empathy kan du chatta med anslutna personer i närheten och med vänner och kollegor som använder Google Talk, AIM, Windows Live och många andra chattprogram. Du kan även använda ljud- och videosamtal om du har en mikrofon eller webbkamera."
21152207
2116 #: ../src/empathy-account-assistant.c:670
2208 #: ../src/empathy-account-assistant.c:672
21172209 msgid "Do you have an account you've been using with another chat program?"
21182210 msgstr "Har du ett konto som du har använt med andra chattprogram?"
21192211
2120 #: ../src/empathy-account-assistant.c:693
2212 #: ../src/empathy-account-assistant.c:695
21212213 msgid "Yes, import my account details from "
21222214 msgstr "Ja, importera mina kontouppgifter från "
21232215
2124 #: ../src/empathy-account-assistant.c:714
2216 #: ../src/empathy-account-assistant.c:716
21252217 msgid "Yes, I'll enter my account details now"
21262218 msgstr "Ja, jag vill ange mina kontouppgifter nu"
21272219
2128 #: ../src/empathy-account-assistant.c:736
2220 #: ../src/empathy-account-assistant.c:738
21292221 msgid "No, I want a new account"
21302222 msgstr "Nej, jag vill ha ett nytt konto"
21312223
2132 #: ../src/empathy-account-assistant.c:746
2224 #: ../src/empathy-account-assistant.c:748
21332225 msgid "No, I just want to see people online nearby for now"
21342226 msgstr "Nej, jag vill bara se anslutna personer i närheten just nu"
21352227
2136 #: ../src/empathy-account-assistant.c:767
2228 #: ../src/empathy-account-assistant.c:769
21372229 msgid "Select the accounts you want to import:"
21382230 msgstr "Välj de konton som du vill importera:"
21392231
2140 #: ../src/empathy-account-assistant.c:851
2141 #: ../src/empathy-new-chatroom-dialog.c:541
2142 #: ../src/empathy-new-chatroom-dialog.c:542
2232 #: ../src/empathy-account-assistant.c:853
2233 #: ../src/empathy-new-chatroom-dialog.c:607
2234 #: ../src/empathy-new-chatroom-dialog.c:608
21432235 msgid "Yes"
21442236 msgstr "Ja"
21452237
2146 #: ../src/empathy-account-assistant.c:858
2238 #: ../src/empathy-account-assistant.c:860
21472239 msgid "No, that's all for now"
21482240 msgstr "Nej, det är allt för stunden"
21492241
2150 #: ../src/empathy-account-assistant.c:1117
2242 #: ../src/empathy-account-assistant.c:1125
21512243 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 details below are correct. You can easily change these details later or disable this feature by using the 'Accounts' dialog"
21522244 msgstr "Empathy kan automatiskt upptäcka och chatta med personer som är anslutna på samma nätverk som du är. Om du vill använda denna funktion så kontrollera att uppgifterna nedan är korrekta. Du kan enkelt ändra dessa uppgifter senare eller inaktivera denna funktion genom att använda \"Konton\"-dialogrutan"
21532245
2154 #: ../src/empathy-account-assistant.c:1123
2155 #: ../src/empathy-account-assistant.c:1179
2246 #: ../src/empathy-account-assistant.c:1131
2247 #: ../src/empathy-account-assistant.c:1187
21562248 msgid "Edit->Accounts"
21572249 msgstr "Redigera->Konton"
21582250
2159 #: ../src/empathy-account-assistant.c:1139
2251 #: ../src/empathy-account-assistant.c:1147
21602252 msgid "I don't want to enable this feature for now"
21612253 msgstr "Jag vill inte aktivera denna funktion just nu"
21622254
2163 #: ../src/empathy-account-assistant.c:1175
2255 #: ../src/empathy-account-assistant.c:1183
21642256 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 install the telepathy-salut package and create a People Nearby account from the Accounts dialog"
21652257 msgstr "Du kommer inte att kunna chatta med personer som är anslutna till ditt lokala nätverk eftersom telepathy-salut inte är installerat. Om du vill aktivera denna funktion så installera paketet telepathy-salut och skapa ett Personer i närheten-konto från Konto-dialogrutan"
21662258
2167 #: ../src/empathy-account-assistant.c:1181
2259 #: ../src/empathy-account-assistant.c:1189
21682260 msgid "telepathy-salut not installed"
21692261 msgstr "telepathy-salut är inte installerat"
21702262
2171 #: ../src/empathy-account-assistant.c:1227
2263 #: ../src/empathy-account-assistant.c:1235
21722264 msgid "Messaging and VoIP Accounts Assistant"
21732265 msgstr "Guide för meddelanden och VoIP-konton"
21742266
2175 #: ../src/empathy-account-assistant.c:1261
2267 #: ../src/empathy-account-assistant.c:1269
21762268 msgid "Welcome to Empathy"
21772269 msgstr "Välkommen till Empathy"
21782270
2179 #: ../src/empathy-account-assistant.c:1270
2271 #: ../src/empathy-account-assistant.c:1278
21802272 msgid "Import your existing accounts"
21812273 msgstr "Importera dina befintliga konton"
21822274
2183 #: ../src/empathy-account-assistant.c:1288
2275 #: ../src/empathy-account-assistant.c:1296
21842276 msgid "Please enter personal details"
21852277 msgstr "Ange personlig information"
21862278
21872279 #. The primary text of the dialog shown to the user when he is about to lose
21882280 #. * unsaved changes
2189 #: ../src/empathy-accounts-dialog.c:66
2281 #: ../src/empathy-accounts-dialog.c:65
21902282 #, c-format
21912283 msgid "There are unsaved modifications to your %s account."
21922284 msgstr "Det finns osparade ändringar för ditt %s-konto."
21932285
21942286 #. The primary text of the dialog shown to the user when he is about to lose
21952287 #. * an unsaved new account
2196 #: ../src/empathy-accounts-dialog.c:70
2288 #: ../src/empathy-accounts-dialog.c:69
21972289 msgid "Your new account has not been saved yet."
21982290 msgstr "Ditt nya konto har inte sparats än."
21992291
2200 #: ../src/empathy-accounts-dialog.c:263
2201 #: ../src/empathy-call-window.c:729
2292 #: ../src/empathy-accounts-dialog.c:271
2293 #: ../src/empathy-call-window.c:808
22022294 msgid "Connecting…"
22032295 msgstr "Ansluter..."
22042296
2205 #: ../src/empathy-accounts-dialog.c:290
2297 #: ../src/empathy-accounts-dialog.c:312
2298 #, c-format
2299 msgid "Offline — %s"
2300 msgstr "Frånkopplad — %s"
2301
2302 #: ../src/empathy-accounts-dialog.c:324
22062303 #, c-format
22072304 msgid "Disconnected — %s"
22082305 msgstr "Frånkopplad — %s"
22092306
2210 #: ../src/empathy-accounts-dialog.c:295
2211 #, c-format
2212 msgid "Offline — %s"
2213 msgstr "Frånkopplad — %s"
2214
2215 #: ../src/empathy-accounts-dialog.c:308
2307 #: ../src/empathy-accounts-dialog.c:335
22162308 msgid "Offline — No Network Connection"
22172309 msgstr "Frånkopplad — Ingen nätverksanslutning"
22182310
2219 #: ../src/empathy-accounts-dialog.c:316
2311 #: ../src/empathy-accounts-dialog.c:342
22202312 msgid "Unknown Status"
22212313 msgstr "Okänd status"
22222314
2223 #: ../src/empathy-accounts-dialog.c:327
2315 #: ../src/empathy-accounts-dialog.c:354
22242316 msgid "Offline — Account Disabled"
22252317 msgstr "Frånkopplad — Kontot är inaktiverat"
22262318
2227 #: ../src/empathy-accounts-dialog.c:768
2319 #: ../src/empathy-accounts-dialog.c:795
22282320 msgid ""
22292321 "You are about to create a new account, which will discard\n"
22302322 "your changes. Are you sure you want to proceed?"
22322324 "Du är på väg att skapa ett nytt konto vilket kommer att\n"
22332325 "förkasta dina ändringar. Är du säker att du vill fortsätta?"
22342326
2235 #: ../src/empathy-accounts-dialog.c:1115
2327 #: ../src/empathy-accounts-dialog.c:1142
22362328 #, c-format
22372329 msgid "Do you want to remove %s from your computer?"
22382330 msgstr "Vill du ta bort %s från din dator?"
22392331
2240 #: ../src/empathy-accounts-dialog.c:1119
2332 #: ../src/empathy-accounts-dialog.c:1146
22412333 msgid "This will not remove your account on the server."
22422334 msgstr "Detta kommer inte att ta bort ditt konto på servern."
22432335
2244 #: ../src/empathy-accounts-dialog.c:1356
2336 #: ../src/empathy-accounts-dialog.c:1383
22452337 msgid ""
22462338 "You are about to select another account, which will discard\n"
22472339 "your changes. Are you sure you want to proceed?"
22492341 "Du är på väg att välja ett annat konto vilket kommer att\n"
22502342 "förkasta dina ändringar. Är du säker att du vill fortsätta?"
22512343
2252 #: ../src/empathy-accounts-dialog.c:1933
2344 #: ../src/empathy-accounts-dialog.c:1960
22532345 msgid ""
22542346 "You are about to close the window, which will discard\n"
22552347 "your changes. Are you sure you want to proceed?"
22772369 msgid "_Import…"
22782370 msgstr "_Importera…"
22792371
2280 #: ../src/empathy-call-window.c:453
2372 #: ../src/empathy-auto-salut-account-helper.c:78
2373 msgid "People nearby"
2374 msgstr "Personer i närheten"
2375
2376 #: ../src/empathy-av.c:133
2377 msgid "- Empathy Audio/Video Client"
2378 msgstr "- Ljud/Videoklienten Empathy"
2379
2380 #: ../src/empathy-av.c:149
2381 msgid "Empathy Audio/Video Client"
2382 msgstr "Ljud/Videoklienten Empathy"
2383
2384 #: ../src/empathy-call-window.c:479
22812385 msgid "Contrast"
22822386 msgstr "Kontrast"
22832387
2284 #: ../src/empathy-call-window.c:456
2388 #: ../src/empathy-call-window.c:482
22852389 msgid "Brightness"
22862390 msgstr "Ljusstyrka"
22872391
2288 #: ../src/empathy-call-window.c:459
2392 #: ../src/empathy-call-window.c:485
22892393 msgid "Gamma"
22902394 msgstr "Gamma"
22912395
2292 #: ../src/empathy-call-window.c:567
2396 #: ../src/empathy-call-window.c:590
22932397 msgid "Volume"
22942398 msgstr "Volym"
22952399
2296 #: ../src/empathy-call-window.c:1022
2400 #: ../src/empathy-call-window.c:1163
22972401 msgid "_Sidebar"
22982402 msgstr "_Sidopanel"
22992403
2300 #: ../src/empathy-call-window.c:1041
2404 #: ../src/empathy-call-window.c:1182
23012405 msgid "Audio input"
23022406 msgstr "Ljudingång"
23032407
2304 #: ../src/empathy-call-window.c:1045
2408 #: ../src/empathy-call-window.c:1186
23052409 msgid "Video input"
23062410 msgstr "Videoingång"
23072411
2308 #: ../src/empathy-call-window.c:1049
2412 #: ../src/empathy-call-window.c:1190
23092413 msgid "Dialpad"
23102414 msgstr "Knappsats"
23112415
2416 #: ../src/empathy-call-window.c:1195
2417 msgid "Details"
2418 msgstr "Detaljer"
2419
23122420 #. translators: Call is a noun and %s is the contact name. This string
23132421 #. * is used in the window title
2314 #: ../src/empathy-call-window.c:1117
2422 #: ../src/empathy-call-window.c:1263
23152423 #, c-format
23162424 msgid "Call with %s"
23172425 msgstr "Ring med %s"
23182426
23192427 #. translators: Call is a noun. This string is used in the window
23202428 #. * title
2321 #: ../src/empathy-call-window.c:1198
2429 #: ../src/empathy-call-window.c:1342
23222430 msgid "Call"
23232431 msgstr "Ring"
23242432
2433 #: ../src/empathy-call-window.c:1496
2434 msgid "The IP address as seen by the machine"
2435 msgstr "IP-adressen som den ses av datorn"
2436
2437 #: ../src/empathy-call-window.c:1498
2438 msgid "The IP address as seen by a server on the Internet"
2439 msgstr "IP-adressen som den ses av en server på Internet"
2440
2441 #: ../src/empathy-call-window.c:1500
2442 msgid "The IP address of the peer as seen by the other side"
2443 msgstr "IP-adressen för klienten som den ses av andra sidan"
2444
2445 #: ../src/empathy-call-window.c:1502
2446 msgid "The IP address of a relay server"
2447 msgstr "IP-adressen för en reläserver"
2448
2449 #: ../src/empathy-call-window.c:1504
2450 msgid "The IP address of the multicast group"
2451 msgstr "IP-adressen för multicast-gruppen"
2452
23252453 #. Translators: number of minutes:seconds the caller has been connected
2326 #: ../src/empathy-call-window.c:1695
2454 #: ../src/empathy-call-window.c:2237
23272455 #, c-format
23282456 msgid "Connected — %d:%02dm"
23292457 msgstr "Ansluten — %d:%02dm"
23302458
2331 #: ../src/empathy-call-window.c:1756
2459 #: ../src/empathy-call-window.c:2298
23322460 msgid "Technical Details"
23332461 msgstr "Tekniska detaljer"
23342462
2335 #: ../src/empathy-call-window.c:1794
2463 #: ../src/empathy-call-window.c:2336
23362464 #, c-format
23372465 msgid "%s's software does not understand any of the audio formats supported by your computer"
23382466 msgstr "Programvaran hos %s förstår inte något av de ljudformat som stöds av din dator"
23392467
2340 #: ../src/empathy-call-window.c:1799
2468 #: ../src/empathy-call-window.c:2341
23412469 #, c-format
23422470 msgid "%s's software does not understand any of the video formats supported by your computer"
23432471 msgstr "Programvaran hos %s förstår inte något av de videoformat som stöds av din dator"
23442472
2345 #: ../src/empathy-call-window.c:1805
2473 #: ../src/empathy-call-window.c:2347
23462474 #, c-format
23472475 msgid "Can't establish a connection to %s. One of you might be on a network that does not allow direct connections."
23482476 msgstr "Kan inte etablera en anslutning till %s. Någon av er kanske befinner er på ett nätverk som inte tillåter direktanslutningar."
23492477
2350 #: ../src/empathy-call-window.c:1811
2478 #: ../src/empathy-call-window.c:2353
23512479 msgid "There was a failure on the network"
23522480 msgstr "Det inträffade ett fel på nätverket"
23532481
2354 #: ../src/empathy-call-window.c:1815
2482 #: ../src/empathy-call-window.c:2357
23552483 msgid "The audio formats necessary for this call are not installed on your computer"
23562484 msgstr "Ljudformaten som krävs för detta samtal är inte installerade på din dator"
23572485
2358 #: ../src/empathy-call-window.c:1818
2486 #: ../src/empathy-call-window.c:2360
23592487 msgid "The video formats necessary for this call are not installed on your computer"
23602488 msgstr "Videoformaten som krävs för detta samtal är inte installerade på din dator"
23612489
2362 #: ../src/empathy-call-window.c:1828
2490 #: ../src/empathy-call-window.c:2370
23632491 #, c-format
23642492 msgid "Something unexpected happened in a Telepathy component. Please <a href=\"%s\">report this bug</a> and attach logs gathered from the 'Debug' window in the Help menu."
23652493 msgstr "Någonting oväntat hände i en Telepathy-komponent. <a href=\"%s\">Rapportera detta fel</a> och bifoga loggarna som samlats in från \"Felsök\"-fönstret i Hjälp-menyn."
23662494
2367 #: ../src/empathy-call-window.c:1836
2495 #: ../src/empathy-call-window.c:2378
23682496 msgid "There was a failure in the call engine"
23692497 msgstr "Det uppstod ett fel i samtalsmotorn"
23702498
2371 #: ../src/empathy-call-window.c:1875
2499 #: ../src/empathy-call-window.c:2381
2500 msgid "The end of the stream was reached"
2501 msgstr "Slutet på strömmen nåddes"
2502
2503 #: ../src/empathy-call-window.c:2421
23722504 msgid "Can't establish audio stream"
23732505 msgstr "Kan inte etablera ljudström"
23742506
2375 #: ../src/empathy-call-window.c:1885
2507 #: ../src/empathy-call-window.c:2431
23762508 msgid "Can't establish video stream"
23772509 msgstr "Kan inte etablera videoström"
23782510
23792511 #: ../src/empathy-call-window.ui.h:1
2512 msgid "Audio"
2513 msgstr "Ljud"
2514
2515 #: ../src/empathy-call-window.ui.h:2
23802516 msgid "Call the contact again"
23812517 msgstr "Ring upp kontakten igen"
23822518
2383 #: ../src/empathy-call-window.ui.h:2
2519 #: ../src/empathy-call-window.ui.h:3
23842520 msgid "Camera Off"
23852521 msgstr "Kamera av"
23862522
2387 #: ../src/empathy-call-window.ui.h:3
2523 #: ../src/empathy-call-window.ui.h:4
23882524 msgid "Camera On"
23892525 msgstr "Kamera på"
23902526
2391 #: ../src/empathy-call-window.ui.h:4
2527 #: ../src/empathy-call-window.ui.h:5
2528 msgid "Decoding Codec:"
2529 msgstr "Avkodande kodek:"
2530
2531 #: ../src/empathy-call-window.ui.h:6
23922532 msgid "Disable camera and stop sending video"
23932533 msgstr "Inaktivera kamera och stoppa videoöverföringen"
23942534
2395 #: ../src/empathy-call-window.ui.h:5
2535 #: ../src/empathy-call-window.ui.h:7
23962536 msgid "Enable camera and send video"
23972537 msgstr "Aktivera kamera och överför video"
23982538
2399 #: ../src/empathy-call-window.ui.h:6
2539 #: ../src/empathy-call-window.ui.h:8
24002540 msgid "Enable camera but don't send video"
24012541 msgstr "Aktivera kameran med överför ingen video"
24022542
2403 #: ../src/empathy-call-window.ui.h:7
2543 #: ../src/empathy-call-window.ui.h:9
2544 msgid "Encoding Codec:"
2545 msgstr "Kodande kodek:"
2546
2547 #: ../src/empathy-call-window.ui.h:10
24042548 msgid "Hang up"
24052549 msgstr "Lägg på"
24062550
2407 #: ../src/empathy-call-window.ui.h:8
2551 #: ../src/empathy-call-window.ui.h:11
24082552 msgid "Hang up current call"
24092553 msgstr "Avsluta aktuellt samtal"
24102554
2411 #: ../src/empathy-call-window.ui.h:9
2555 #: ../src/empathy-call-window.ui.h:12
2556 msgid "Local Candidate:"
2557 msgstr "Lokal kandidat:"
2558
2559 #: ../src/empathy-call-window.ui.h:13
24122560 msgid "Preview"
24132561 msgstr "Förhandsvisning"
24142562
2415 #: ../src/empathy-call-window.ui.h:10
2563 #: ../src/empathy-call-window.ui.h:14
24162564 msgid "Redial"
24172565 msgstr "Ring igen"
24182566
2419 #: ../src/empathy-call-window.ui.h:11
2567 #: ../src/empathy-call-window.ui.h:15
2568 msgid "Remote Candidate:"
2569 msgstr "Fjärrkandidat:"
2570
2571 #: ../src/empathy-call-window.ui.h:16
24202572 msgid "Send Audio"
24212573 msgstr "Skicka ljud"
24222574
2423 #: ../src/empathy-call-window.ui.h:12
2575 #: ../src/empathy-call-window.ui.h:17
24242576 msgid "Toggle audio transmission"
24252577 msgstr "Växla ljudöverföring"
24262578
2427 #: ../src/empathy-call-window.ui.h:13
2579 #: ../src/empathy-call-window.ui.h:19
24282580 msgid "V_ideo"
24292581 msgstr "V_ideo"
24302582
2431 #: ../src/empathy-call-window.ui.h:14
2583 #: ../src/empathy-call-window.ui.h:20
2584 msgid "Video"
2585 msgstr "Video"
2586
2587 #: ../src/empathy-call-window.ui.h:21
24322588 msgid "Video Off"
24332589 msgstr "Video av"
24342590
2435 #: ../src/empathy-call-window.ui.h:15
2591 #: ../src/empathy-call-window.ui.h:22
24362592 msgid "Video On"
24372593 msgstr "Video på"
24382594
2439 #: ../src/empathy-call-window.ui.h:16
2595 #: ../src/empathy-call-window.ui.h:23
24402596 msgid "Video Preview"
24412597 msgstr "Videoförhandsvisning"
24422598
2443 #: ../src/empathy-call-window.ui.h:18
2444 #: ../src/empathy-main-window.ui.h:28
2599 #: ../src/empathy-call-window.ui.h:25
2600 #: ../src/empathy-main-window.ui.h:27
24452601 msgid "_View"
24462602 msgstr "_Visa"
24472603
2448 #: ../src/empathy-chat-window.c:440
2449 #: ../src/empathy-chat-window.c:460
2604 #: ../src/empathy-chat-window.c:452
2605 #: ../src/empathy-chat-window.c:472
24502606 #, c-format
24512607 msgid "%s (%d unread)"
24522608 msgid_plural "%s (%d unread)"
24532609 msgstr[0] "%s (%d oläst)"
24542610 msgstr[1] "%s (%d olästa)"
24552611
2456 #: ../src/empathy-chat-window.c:452
2612 #: ../src/empathy-chat-window.c:464
24572613 #, c-format
24582614 msgid "%s (and %u other)"
24592615 msgid_plural "%s (and %u others)"
24602616 msgstr[0] "%s (och %u annat)"
24612617 msgstr[1] "%s (och %u andra)"
24622618
2463 #: ../src/empathy-chat-window.c:468
2619 #: ../src/empathy-chat-window.c:480
24642620 #, c-format
24652621 msgid "%s (%d unread from others)"
24662622 msgid_plural "%s (%d unread from others)"
24672623 msgstr[0] "%s (%d oläst från andra)"
24682624 msgstr[1] "%s (%d olästa från andra)"
24692625
2470 #: ../src/empathy-chat-window.c:477
2626 #: ../src/empathy-chat-window.c:489
24712627 #, c-format
24722628 msgid "%s (%d unread from all)"
24732629 msgid_plural "%s (%d unread from all)"
24742630 msgstr[0] "%s (%d oläst från alla)"
24752631 msgstr[1] "%s (%d olästa från alla)"
24762632
2477 #: ../src/empathy-chat-window.c:688
2633 #: ../src/empathy-chat-window.c:695
24782634 msgid "Typing a message."
24792635 msgstr "Skriver ett meddelande."
24802636
25072663 msgstr "Flytta flik till _höger"
25082664
25092665 #: ../src/empathy-chat-window.ui.h:8
2510 #: ../src/empathy-main-window.ui.h:17
2666 msgid "Notify for All Messages"
2667 msgstr "Notifiera för alla meddelanden"
2668
2669 #: ../src/empathy-chat-window.ui.h:9
2670 #: ../src/empathy-main-window.ui.h:16
25112671 msgid "_Contents"
25122672 msgstr "I_nnehåll"
25132673
2514 #: ../src/empathy-chat-window.ui.h:9
2674 #: ../src/empathy-chat-window.ui.h:10
25152675 msgid "_Conversation"
25162676 msgstr "_Samtal"
25172677
2518 #: ../src/empathy-chat-window.ui.h:10
2678 #: ../src/empathy-chat-window.ui.h:11
25192679 msgid "_Detach Tab"
25202680 msgstr "_Koppla loss flik"
25212681
2522 #: ../src/empathy-chat-window.ui.h:11
2523 #: ../src/empathy-main-window.ui.h:19
2682 #: ../src/empathy-chat-window.ui.h:12
2683 #: ../src/empathy-main-window.ui.h:18
25242684 msgid "_Edit"
25252685 msgstr "R_edigera"
25262686
2527 #: ../src/empathy-chat-window.ui.h:12
2687 #: ../src/empathy-chat-window.ui.h:13
25282688 msgid "_Favorite Chat Room"
25292689 msgstr "_Favoritchattrum"
25302690
2531 #: ../src/empathy-chat-window.ui.h:13
2532 #: ../src/empathy-main-window.ui.h:21
2691 #: ../src/empathy-chat-window.ui.h:14
2692 #: ../src/empathy-main-window.ui.h:20
25332693 msgid "_Help"
25342694 msgstr "_Hjälp"
25352695
2536 #: ../src/empathy-chat-window.ui.h:14
2696 #: ../src/empathy-chat-window.ui.h:15
25372697 msgid "_Next Tab"
25382698 msgstr "_Nästa flik"
25392699
2540 #: ../src/empathy-chat-window.ui.h:15
2700 #: ../src/empathy-chat-window.ui.h:16
25412701 msgid "_Previous Tab"
25422702 msgstr "_Föregående flik"
25432703
2544 #: ../src/empathy-chat-window.ui.h:16
2704 #: ../src/empathy-chat-window.ui.h:17
25452705 #: ../src/empathy-status-icon.ui.h:5
25462706 msgid "_Show Contact List"
25472707 msgstr "_Visa kontaktlista"
25482708
2549 #: ../src/empathy-chat-window.ui.h:17
2709 #: ../src/empathy-chat-window.ui.h:18
25502710 msgid "_Tabs"
25512711 msgstr "_Flikar"
25522712
2553 #: ../src/empathy-chatrooms-window.c:256
2713 #: ../src/empathy-chat-window.ui.h:19
2714 msgid "_Undo Close Tab"
2715 msgstr "Ån_gra flikstängning"
2716
2717 #: ../src/empathy-chatrooms-window.c:241
25542718 msgid "Name"
25552719 msgstr "Namn"
25562720
2557 #: ../src/empathy-chatrooms-window.c:274
2721 #: ../src/empathy-chatrooms-window.c:259
25582722 msgid "Room"
25592723 msgstr "Rum"
25602724
2561 #: ../src/empathy-chatrooms-window.c:282
2725 #: ../src/empathy-chatrooms-window.c:267
25622726 msgid "Auto-Connect"
25632727 msgstr "Anslut automatiskt"
25642728
25662730 msgid "Manage Favorite Rooms"
25672731 msgstr "Hantera favoritrum"
25682732
2569 #: ../src/empathy-event-manager.c:339
2733 #: ../src/empathy-event-manager.c:471
25702734 msgid "Incoming video call"
25712735 msgstr "Inkommande videosamtal"
25722736
2573 #: ../src/empathy-event-manager.c:339
2737 #: ../src/empathy-event-manager.c:471
25742738 msgid "Incoming call"
25752739 msgstr "Inkommande samtal"
25762740
2577 #: ../src/empathy-event-manager.c:343
2741 #: ../src/empathy-event-manager.c:475
25782742 #, c-format
25792743 msgid "%s is video calling you. Do you want to answer?"
25802744 msgstr "%s ringer ett videosamtal till dig. Vill du svara?"
25812745
2582 #: ../src/empathy-event-manager.c:344
2746 #: ../src/empathy-event-manager.c:476
25832747 #, c-format
25842748 msgid "%s is calling you. Do you want to answer?"
25852749 msgstr "%s ringer dig. Vill du svara?"
25862750
2587 #: ../src/empathy-event-manager.c:366
2751 #: ../src/empathy-event-manager.c:479
2752 #: ../src/empathy-event-manager.c:621
2753 #, c-format
2754 msgid "Incoming call from %s"
2755 msgstr "Inkommande samtal från %s"
2756
2757 #: ../src/empathy-event-manager.c:504
25882758 msgid "_Reject"
25892759 msgstr "Avv_isa"
25902760
2591 #: ../src/empathy-event-manager.c:372
2761 #: ../src/empathy-event-manager.c:510
25922762 msgid "_Answer"
25932763 msgstr "_Svara"
25942764
2595 #: ../src/empathy-event-manager.c:489
2765 #: ../src/empathy-event-manager.c:621
25962766 #, c-format
25972767 msgid "Incoming video call from %s"
25982768 msgstr "Inkommande videosamtal från %s"
25992769
2600 #: ../src/empathy-event-manager.c:489
2601 #, c-format
2602 msgid "Incoming call from %s"
2603 msgstr "Inkommande samtal från %s"
2604
2605 #: ../src/empathy-event-manager.c:579
2770 #: ../src/empathy-event-manager.c:698
26062771 msgid "Room invitation"
26072772 msgstr "Rumsinbjudan"
26082773
2609 #: ../src/empathy-event-manager.c:582
2774 #: ../src/empathy-event-manager.c:700
2775 #, c-format
2776 msgid "Invitation to join %s"
2777 msgstr "Inbjudan till att gå in i %s"
2778
2779 #: ../src/empathy-event-manager.c:707
26102780 #, c-format
26112781 msgid "%s is inviting you to join %s"
26122782 msgstr "%s bjuder in dig till %s"
26132783
2614 #: ../src/empathy-event-manager.c:590
2784 #: ../src/empathy-event-manager.c:715
26152785 msgid "_Decline"
26162786 msgstr "_Neka"
26172787
2618 #: ../src/empathy-event-manager.c:595
2788 #: ../src/empathy-event-manager.c:720
26192789 #: ../src/empathy-new-chatroom-dialog.ui.h:7
26202790 msgid "_Join"
26212791 msgstr "_Gå in"
26222792
2623 #: ../src/empathy-event-manager.c:634
2793 #: ../src/empathy-event-manager.c:758
26242794 #, c-format
26252795 msgid "%s invited you to join %s"
26262796 msgstr "%s har bjudit in dig till %s"
26272797
2628 #: ../src/empathy-event-manager.c:660
2798 #: ../src/empathy-event-manager.c:785
26292799 #, c-format
26302800 msgid "Incoming file transfer from %s"
26312801 msgstr "Inkommande filöverföring från %s"
26322802
2633 #: ../src/empathy-event-manager.c:818
2803 #: ../src/empathy-event-manager.c:986
26342804 #, c-format
26352805 msgid "Subscription requested by %s"
26362806 msgstr "Prenumeration begärd av %s"
26372807
2638 #: ../src/empathy-event-manager.c:822
2808 #: ../src/empathy-event-manager.c:990
26392809 #, c-format
26402810 msgid ""
26412811 "\n"
26442814 "\n"
26452815 "Meddelande: %s"
26462816
2647 #. someone is logging off
2648 #: ../src/empathy-event-manager.c:862
2817 #: ../src/empathy-event-manager.c:1033
26492818 #, c-format
26502819 msgid "%s is now offline."
26512820 msgstr "%s är nu frånkopplad."
26522821
2653 #. someone is logging in
2654 #: ../src/empathy-event-manager.c:878
2822 #: ../src/empathy-event-manager.c:1053
26552823 #, c-format
26562824 msgid "%s is now online."
26572825 msgstr "%s är nu ansluten."
26582826
26592827 #. Translators: time left, when it is more than one hour
2660 #: ../src/empathy-ft-manager.c:100
2828 #: ../src/empathy-ft-manager.c:99
26612829 #, c-format
26622830 msgid "%u:%02u.%02u"
26632831 msgstr "%u:%02u.%02u"
26642832
26652833 #. Translators: time left, when is is less than one hour
2666 #: ../src/empathy-ft-manager.c:103
2834 #: ../src/empathy-ft-manager.c:102
26672835 #, c-format
26682836 msgid "%02u.%02u"
26692837 msgstr "%02u.%02u"
26702838
2671 #: ../src/empathy-ft-manager.c:179
2839 #: ../src/empathy-ft-manager.c:178
26722840 msgctxt "file transfer percent"
26732841 msgid "Unknown"
26742842 msgstr "Okänt"
26752843
2676 #: ../src/empathy-ft-manager.c:274
2844 #: ../src/empathy-ft-manager.c:273
26772845 #, c-format
26782846 msgid "%s of %s at %s/s"
26792847 msgstr "%s av %s i %s/s"
26802848
2681 #: ../src/empathy-ft-manager.c:275
2849 #: ../src/empathy-ft-manager.c:274
26822850 #, c-format
26832851 msgid "%s of %s"
26842852 msgstr "%s av %s"
26852853
26862854 #. translators: first %s is filename, second %s is the contact name
2687 #: ../src/empathy-ft-manager.c:306
2855 #: ../src/empathy-ft-manager.c:305
26882856 #, c-format
26892857 msgid "Receiving \"%s\" from %s"
26902858 msgstr "Tar emot \"%s\" från %s"
26912859
26922860 #. translators: first %s is filename, second %s is the contact name
2693 #: ../src/empathy-ft-manager.c:309
2861 #: ../src/empathy-ft-manager.c:308
26942862 #, c-format
26952863 msgid "Sending \"%s\" to %s"
26962864 msgstr "Skickar \"%s\" till %s"
26972865
26982866 #. translators: first %s is filename, second %s
26992867 #. * is the contact name
2700 #: ../src/empathy-ft-manager.c:339
2868 #: ../src/empathy-ft-manager.c:338
27012869 #, c-format
27022870 msgid "Error receiving \"%s\" from %s"
27032871 msgstr "Fel vid mottagning av \"%s\" från %s"
27042872
2705 #: ../src/empathy-ft-manager.c:342
2873 #: ../src/empathy-ft-manager.c:341
27062874 msgid "Error receiving a file"
27072875 msgstr "Fel vid mottagning av en fil"
27082876
2709 #: ../src/empathy-ft-manager.c:347
2877 #: ../src/empathy-ft-manager.c:346
27102878 #, c-format
27112879 msgid "Error sending \"%s\" to %s"
27122880 msgstr "Fel vid sändning av \"%s\" till %s"
27132881
2714 #: ../src/empathy-ft-manager.c:350
2882 #: ../src/empathy-ft-manager.c:349
27152883 msgid "Error sending a file"
27162884 msgstr "Fel vid sändning av en fil"
27172885
27182886 #. translators: first %s is filename, second %s
27192887 #. * is the contact name
2720 #: ../src/empathy-ft-manager.c:489
2888 #: ../src/empathy-ft-manager.c:488
27212889 #, c-format
27222890 msgid "\"%s\" received from %s"
27232891 msgstr "\"%s\" togs emot från %s"
27242892
27252893 #. translators: first %s is filename, second %s
27262894 #. * is the contact name
2727 #: ../src/empathy-ft-manager.c:494
2895 #: ../src/empathy-ft-manager.c:493
27282896 #, c-format
27292897 msgid "\"%s\" sent to %s"
27302898 msgstr "\"%s\" skickades till %s"
27312899
2732 #: ../src/empathy-ft-manager.c:497
2900 #: ../src/empathy-ft-manager.c:496
27332901 msgid "File transfer completed"
27342902 msgstr "Filöverföringen är färdig"
27352903
2736 #: ../src/empathy-ft-manager.c:616
2737 #: ../src/empathy-ft-manager.c:783
2904 #: ../src/empathy-ft-manager.c:615
2905 #: ../src/empathy-ft-manager.c:782
27382906 msgid "Waiting for the other participant's response"
27392907 msgstr "Väntar på svar från den andra deltagaren"
27402908
2741 #: ../src/empathy-ft-manager.c:642
2742 #: ../src/empathy-ft-manager.c:680
2909 #: ../src/empathy-ft-manager.c:641
2910 #: ../src/empathy-ft-manager.c:679
27432911 #, c-format
27442912 msgid "Checking integrity of \"%s\""
27452913 msgstr "Kontrollerar integritet för \"%s\""
27462914
2747 #: ../src/empathy-ft-manager.c:645
2748 #: ../src/empathy-ft-manager.c:683
2915 #: ../src/empathy-ft-manager.c:644
2916 #: ../src/empathy-ft-manager.c:682
27492917 #, c-format
27502918 msgid "Hashing \"%s\""
27512919 msgstr "Hashar \"%s\""
27522920
2753 #: ../src/empathy-ft-manager.c:991
2921 #: ../src/empathy-ft-manager.c:996
27542922 msgid "%"
27552923 msgstr "%"
27562924
2757 #: ../src/empathy-ft-manager.c:1003
2925 #: ../src/empathy-ft-manager.c:1008
27582926 msgid "File"
27592927 msgstr "Fil"
27602928
2761 #: ../src/empathy-ft-manager.c:1025
2929 #: ../src/empathy-ft-manager.c:1030
27622930 msgid "Remaining"
27632931 msgstr "Återstår"
27642932
27792947 msgstr "Importera konton"
27802948
27812949 #. Translators: this is the header of a treeview column
2782 #: ../src/empathy-import-widget.c:290
2950 #: ../src/empathy-import-widget.c:292
27832951 msgid "Import"
27842952 msgstr "Importera"
27852953
2786 #: ../src/empathy-import-widget.c:299
2954 #: ../src/empathy-import-widget.c:301
27872955 msgid "Protocol"
27882956 msgstr "Protokoll"
27892957
2790 #: ../src/empathy-import-widget.c:323
2958 #: ../src/empathy-import-widget.c:325
27912959 msgid "Source"
27922960 msgstr "Källa"
27932961
2794 #: ../src/empathy-import-mc4-accounts.c:106
2795 #, c-format
2796 msgid "%s account"
2797 msgstr "%s konto"
2798
2799 #: ../src/empathy-main-window.c:437
2962 #. Labels for empty contact list
2963 #: ../src/empathy-main-window.c:95
2964 msgid "No match found"
2965 msgstr "Ingen träff hittades"
2966
2967 #: ../src/empathy-main-window.c:519
28002968 msgid "Reconnect"
28012969 msgstr "Anslut igen"
28022970
2803 #: ../src/empathy-main-window.c:443
2971 #: ../src/empathy-main-window.c:525
28042972 msgid "Edit Account"
28052973 msgstr "Redigera konto"
28062974
2807 #: ../src/empathy-main-window.c:449
2975 #: ../src/empathy-main-window.c:531
28082976 msgid "Close"
28092977 msgstr "Stäng"
28102978
2811 #: ../src/empathy-main-window.c:1033
2979 #: ../src/empathy-main-window.c:1213
28122980 msgid "Contact"
28132981 msgstr "Kontakt"
28142982
2815 #: ../src/empathy-main-window.c:1414
2983 #: ../src/empathy-main-window.c:1538
2984 msgid "Contact List"
2985 msgstr "Kontaktlista"
2986
2987 #: ../src/empathy-main-window.c:1647
28162988 msgid "Show and edit accounts"
28172989 msgstr "Visa och redigera konton"
28182990
28192991 #: ../src/empathy-main-window.ui.h:1
2820 msgid "Contact List"
2821 msgstr "Kontaktlista"
2822
2823 #: ../src/empathy-main-window.ui.h:2
28242992 msgid "Contacts on a _Map"
28252993 msgstr "Kontakter på en ka_rta"
28262994
28272995 # Hm?
2828 #: ../src/empathy-main-window.ui.h:3
2996 #: ../src/empathy-main-window.ui.h:2
28292997 msgid "Context"
28302998 msgstr "Sammanhang"
28312999
2832 #: ../src/empathy-main-window.ui.h:4
3000 #: ../src/empathy-main-window.ui.h:3
28333001 msgid "Join _Favorites"
28343002 msgstr "Gå in i _favoriter"
28353003
2836 #: ../src/empathy-main-window.ui.h:5
3004 #: ../src/empathy-main-window.ui.h:4
28373005 msgid "Manage Favorites"
28383006 msgstr "Hantera favoriter"
28393007
2840 #: ../src/empathy-main-window.ui.h:6
3008 #: ../src/empathy-main-window.ui.h:5
28413009 msgid "N_ormal Size"
28423010 msgstr "N_ormal storlek"
28433011
2844 #: ../src/empathy-main-window.ui.h:7
3012 #: ../src/empathy-main-window.ui.h:6
28453013 #: ../src/empathy-status-icon.ui.h:1
28463014 msgid "New _Call…"
28473015 msgstr "Nytt sa_mtal…"
28483016
2849 #: ../src/empathy-main-window.ui.h:8
3017 #: ../src/empathy-main-window.ui.h:7
28503018 msgid "Normal Size With _Avatars"
28513019 msgstr "Normal storlek med _profilbilder"
28523020
2853 #: ../src/empathy-main-window.ui.h:9
3021 #: ../src/empathy-main-window.ui.h:8
28543022 msgid "P_references"
28553023 msgstr "I_nställningar"
28563024
2857 #: ../src/empathy-main-window.ui.h:10
3025 #: ../src/empathy-main-window.ui.h:9
28583026 msgid "Show P_rotocols"
28593027 msgstr "Visa protoko_ll"
28603028
2861 #: ../src/empathy-main-window.ui.h:11
3029 #: ../src/empathy-main-window.ui.h:10
28623030 msgid "Sort by _Name"
28633031 msgstr "Sortera efter _namn"
28643032
2865 #: ../src/empathy-main-window.ui.h:12
3033 #: ../src/empathy-main-window.ui.h:11
28663034 msgid "Sort by _Status"
28673035 msgstr "Sortera efter _status"
28683036
2869 #: ../src/empathy-main-window.ui.h:13
3037 #: ../src/empathy-main-window.ui.h:12
28703038 msgid "_Accounts"
28713039 msgstr "_Konton"
28723040
2873 #: ../src/empathy-main-window.ui.h:16
3041 #: ../src/empathy-main-window.ui.h:15
28743042 msgid "_Compact Size"
28753043 msgstr "_Kompakt storlek"
28763044
2877 #: ../src/empathy-main-window.ui.h:18
3045 #: ../src/empathy-main-window.ui.h:17
28783046 msgid "_Debug"
28793047 msgstr "_Felsökning"
28803048
2881 #: ../src/empathy-main-window.ui.h:20
3049 #: ../src/empathy-main-window.ui.h:19
28823050 msgid "_File Transfers"
28833051 msgstr "Fi_löverföringar"
28843052
2885 #: ../src/empathy-main-window.ui.h:22
3053 #: ../src/empathy-main-window.ui.h:21
28863054 msgid "_Join…"
28873055 msgstr "_Gå in..."
28883056
2889 #: ../src/empathy-main-window.ui.h:23
3057 #: ../src/empathy-main-window.ui.h:22
28903058 #: ../src/empathy-status-icon.ui.h:3
28913059 msgid "_New Conversation…"
28923060 msgstr "_Nytt samtal..."
28933061
2894 #: ../src/empathy-main-window.ui.h:24
3062 #: ../src/empathy-main-window.ui.h:23
28953063 msgid "_Offline Contacts"
28963064 msgstr "_Frånkopplade kontakter"
28973065
2898 #: ../src/empathy-main-window.ui.h:25
3066 #: ../src/empathy-main-window.ui.h:24
28993067 msgid "_Personal Information"
29003068 msgstr "_Personlig information"
29013069
2902 #: ../src/empathy-main-window.ui.h:27
3070 #: ../src/empathy-main-window.ui.h:26
29033071 msgid "_Room"
29043072 msgstr "_Rum"
29053073
2906 #: ../src/empathy-new-chatroom-dialog.c:338
3074 #: ../src/empathy-new-chatroom-dialog.c:379
29073075 msgid "Chat Room"
29083076 msgstr "Chattrum"
29093077
2910 #: ../src/empathy-new-chatroom-dialog.c:354
3078 #: ../src/empathy-new-chatroom-dialog.c:395
29113079 msgid "Members"
29123080 msgstr "Medlemmar"
29133081
29143082 #. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
29153083 #. yes/no, yes/no and a number.
2916 #: ../src/empathy-new-chatroom-dialog.c:539
3084 #: ../src/empathy-new-chatroom-dialog.c:605
29173085 #, c-format
29183086 msgid ""
29193087 "<b>%s</b>\n"
29263094 "Lösenord krävs: %s\n"
29273095 "Medlemmar: %s"
29283096
2929 #: ../src/empathy-new-chatroom-dialog.c:541
2930 #: ../src/empathy-new-chatroom-dialog.c:542
3097 #: ../src/empathy-new-chatroom-dialog.c:607
3098 #: ../src/empathy-new-chatroom-dialog.c:608
29313099 msgid "No"
29323100 msgstr "Nej"
29333101
2934 #: ../src/empathy-new-chatroom-dialog.c:569
3102 #: ../src/empathy-new-chatroom-dialog.c:635
29353103 msgid "Could not start room listing"
29363104 msgstr "Kunde inte starta rumslistningen"
29373105
2938 #: ../src/empathy-new-chatroom-dialog.c:579
3106 #: ../src/empathy-new-chatroom-dialog.c:645
29393107 msgid "Could not stop room listing"
29403108 msgstr "Kunde inte stoppa rumslistningen"
29413109
29633131 msgid "_Room:"
29643132 msgstr "_Rum:"
29653133
2966 #: ../src/empathy-preferences.c:148
3134 #: ../src/empathy-preferences.c:136
29673135 msgid "Message received"
29683136 msgstr "Meddelande togs emot"
29693137
2970 #: ../src/empathy-preferences.c:149
3138 #: ../src/empathy-preferences.c:137
29713139 msgid "Message sent"
29723140 msgstr "Meddelandet skickat"
29733141
2974 #: ../src/empathy-preferences.c:150
3142 #: ../src/empathy-preferences.c:138
29753143 msgid "New conversation"
29763144 msgstr "Nytt samtal"
29773145
2978 #: ../src/empathy-preferences.c:151
3146 #: ../src/empathy-preferences.c:139
29793147 msgid "Contact goes online"
29803148 msgstr "Kontakt ansluter"
29813149
2982 #: ../src/empathy-preferences.c:152
3150 #: ../src/empathy-preferences.c:140
29833151 msgid "Contact goes offline"
29843152 msgstr "Kontakt kopplar från"
29853153
2986 #: ../src/empathy-preferences.c:153
3154 #: ../src/empathy-preferences.c:141
29873155 msgid "Account connected"
29883156 msgstr "Kontot anslutet"
29893157
2990 #: ../src/empathy-preferences.c:154
3158 #: ../src/empathy-preferences.c:142
29913159 msgid "Account disconnected"
29923160 msgstr "Kontot frånkopplat"
29933161
2994 #: ../src/empathy-preferences.c:394
3162 #: ../src/empathy-preferences.c:437
29953163 msgid "Language"
29963164 msgstr "Språk"
3165
3166 #: ../src/empathy-preferences.c:873
3167 msgid "Preferences"
3168 msgstr "Inställningar"
29973169
29983170 #: ../src/empathy-preferences.ui.h:1
29993171 msgid "Appearance"
30003172 msgstr "Utseende"
30013173
30023174 #: ../src/empathy-preferences.ui.h:2
3003 msgid "Automatically _connect on startup "
3004 msgstr "Anslut _automatiskt vid uppstart"
3005
3006 #: ../src/empathy-preferences.ui.h:3
30073175 msgid "Behavior"
30083176 msgstr "Beteende"
30093177
3010 #: ../src/empathy-preferences.ui.h:4
3178 #: ../src/empathy-preferences.ui.h:3
30113179 msgid "Chat Th_eme:"
30123180 msgstr "Chatt_ema:"
30133181
3014 #: ../src/empathy-preferences.ui.h:5
3182 #: ../src/empathy-preferences.ui.h:4
30153183 msgid "Disable notifications when _away or busy"
30163184 msgstr "Inaktivera notifieringar under fr_ånvaro eller upptagen"
30173185
3018 #: ../src/empathy-preferences.ui.h:6
3186 #: ../src/empathy-preferences.ui.h:5
30193187 msgid "Disable sounds when _away or busy"
30203188 msgstr "Inaktivera ljud under fr_ånvaro eller upptagen"
3189
3190 #: ../src/empathy-preferences.ui.h:6
3191 msgid "Display incoming events in the notification area"
3192 msgstr "Visa inkommande händelser i notifieringsytan"
30213193
30223194 #: ../src/empathy-preferences.ui.h:7
30233195 msgid "Enable notifications when a contact comes online"
30523224 msgstr "Spela upp ljud för händelser"
30533225
30543226 #: ../src/empathy-preferences.ui.h:16
3055 msgid "Preferences"
3056 msgstr "Inställningar"
3057
3058 #: ../src/empathy-preferences.ui.h:17
30593227 msgid "Privacy"
30603228 msgstr "Integritet"
30613229
3062 #: ../src/empathy-preferences.ui.h:18
3230 #: ../src/empathy-preferences.ui.h:17
30633231 msgid "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."
30643232 msgstr "Minskad precision för platsen betyder att ingenting mer informativt än din stad, län och land kommer att publiceras. GPS-koordinater kommer endast att använda en decimal."
30653233
3066 #: ../src/empathy-preferences.ui.h:19
3234 #: ../src/empathy-preferences.ui.h:18
30673235 msgid "Show _smileys as images"
30683236 msgstr "Visa _smilisar som bilder"
30693237
3070 #: ../src/empathy-preferences.ui.h:20
3238 #: ../src/empathy-preferences.ui.h:19
30713239 msgid "Show contact _list in rooms"
30723240 msgstr "Visa kontakt_lista i rum"
30733241
3074 #: ../src/empathy-preferences.ui.h:21
3242 #: ../src/empathy-preferences.ui.h:20
30753243 msgid "Sounds"
30763244 msgstr "Ljud"
30773245
3078 #: ../src/empathy-preferences.ui.h:22
3246 #: ../src/empathy-preferences.ui.h:21
30793247 msgid "Spell Checking"
30803248 msgstr "Stavningskontroll"
30813249
3082 #: ../src/empathy-preferences.ui.h:23
3250 #: ../src/empathy-preferences.ui.h:22
30833251 msgid "The list of languages reflects only the languages for which you have a dictionary installed."
30843252 msgstr "Listan visar endast språk som du har en ordlista installerad för."
30853253
3086 #: ../src/empathy-preferences.ui.h:24
3254 #: ../src/empathy-preferences.ui.h:23
30873255 msgid "Themes"
30883256 msgstr "Teman"
3257
3258 #: ../src/empathy-preferences.ui.h:24
3259 msgid "_Automatically connect on startup"
3260 msgstr "Anslut _automatiskt vid uppstart"
30893261
30903262 #: ../src/empathy-preferences.ui.h:25
30913263 msgid "_Cellphone"
31153287 msgid "_Publish location to my contacts"
31163288 msgstr "_Publicera platsen till mina kontakter"
31173289
3118 #: ../src/empathy-preferences.ui.h:32
3290 #. 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.
3291 #: ../src/empathy-preferences.ui.h:33
31193292 msgid "_Reduce location accuracy"
31203293 msgstr "_Minska precision för plats"
31213294
3122 #: ../src/empathy-status-icon.c:176
3295 #: ../src/empathy-status-icon.c:141
31233296 msgid "Respond"
31243297 msgstr "Svara"
3298
3299 #: ../src/empathy-status-icon.c:147
3300 msgid "Reject"
3301 msgstr "Avvisa"
3302
3303 #: ../src/empathy-status-icon.c:151
3304 msgid "Answer"
3305 msgstr "Svara"
3306
3307 #: ../src/empathy-status-icon.c:158
3308 msgid "Decline"
3309 msgstr "Neka"
3310
3311 #: ../src/empathy-status-icon.c:162
3312 msgid "Accept"
3313 msgstr "Acceptera"
31253314
31263315 #: ../src/empathy-status-icon.ui.h:2
31273316 msgid "Status"
31313320 msgid "_Quit"
31323321 msgstr "_Avsluta"
31333322
3134 #: ../src/empathy-map-view.ui.h:1
3323 #: ../src/empathy-map-view.c:452
31353324 msgid "Contact Map View"
31363325 msgstr "Kartvy för kontakter"
31373326
3138 #: ../src/empathy-debug-window.c:1066
3327 #: ../src/empathy-debug-window.c:1219
31393328 msgid "Save"
31403329 msgstr "Spara"
31413330
3142 #: ../src/empathy-debug-window.c:1219
3331 #: ../src/empathy-debug-window.c:1395
31433332 msgid "Debug Window"
31443333 msgstr "Felsökningsfönster"
31453334
3146 #: ../src/empathy-debug-window.c:1299
3335 #: ../src/empathy-debug-window.c:1475
31473336 msgid "Pause"
31483337 msgstr "Gör paus"
31493338
3150 #: ../src/empathy-debug-window.c:1311
3339 #: ../src/empathy-debug-window.c:1487
31513340 msgid "Level "
31523341 msgstr "Nivå "
31533342
3154 #: ../src/empathy-debug-window.c:1331
3343 #: ../src/empathy-debug-window.c:1507
31553344 msgid "Debug"
31563345 msgstr "Felsökning"
31573346
3158 #: ../src/empathy-debug-window.c:1337
3347 #: ../src/empathy-debug-window.c:1513
31593348 msgid "Info"
31603349 msgstr "Info"
31613350
3162 #: ../src/empathy-debug-window.c:1343
3163 #: ../src/empathy-debug-window.c:1392
3351 #: ../src/empathy-debug-window.c:1519
3352 #: ../src/empathy-debug-window.c:1568
31643353 msgid "Message"
31653354 msgstr "Meddelande"
31663355
3167 #: ../src/empathy-debug-window.c:1349
3356 #: ../src/empathy-debug-window.c:1525
31683357 msgid "Warning"
31693358 msgstr "Varning"
31703359
3171 #: ../src/empathy-debug-window.c:1355
3360 #: ../src/empathy-debug-window.c:1531
31723361 msgid "Critical"
31733362 msgstr "Kritiskt"
31743363
3175 #: ../src/empathy-debug-window.c:1361
3364 #: ../src/empathy-debug-window.c:1537
31763365 msgid "Error"
31773366 msgstr "Fel"
31783367
3179 #: ../src/empathy-debug-window.c:1380
3368 #: ../src/empathy-debug-window.c:1556
31803369 msgid "Time"
31813370 msgstr "Tid"
31823371
3183 #: ../src/empathy-debug-window.c:1383
3372 #: ../src/empathy-debug-window.c:1559
31843373 msgid "Domain"
31853374 msgstr "Domän"
31863375
3187 #: ../src/empathy-debug-window.c:1385
3376 #: ../src/empathy-debug-window.c:1561
31883377 msgid "Category"
31893378 msgstr "Kategori"
31903379
3191 #: ../src/empathy-debug-window.c:1387
3380 #: ../src/empathy-debug-window.c:1563
31923381 msgid "Level"
31933382 msgstr "Nivå"
31943383
3195 #: ../src/empathy-debug-window.c:1424
3384 #: ../src/empathy-debug-window.c:1600
31963385 msgid "The selected connection manager does not support the remote debugging extension."
31973386 msgstr "Den valda anslutningshanteraren saknar stöd för tillägg för fjärrfelsökning."
31983387
32053394 msgid "Choose a contact to invite into the conversation:"
32063395 msgstr "Välj en kontakt att bjuda in till samtalet:"
32073396
3208 #: ../src/empathy-accounts.c:213
3397 #: ../src/empathy-invite-participant-dialog.c:45
3398 msgid "Invite"
3399 msgstr "Bjud in"
3400
3401 #: ../src/empathy-accounts.c:182
32093402 msgid "Don't display any dialogs; do any work (eg, importing) and exit"
32103403 msgstr "Visa inte några dialogrutor; gör valfri åtgärd (t.ex, importera) och avsluta"
32113404
3212 #: ../src/empathy-accounts.c:217
3405 #: ../src/empathy-accounts.c:186
32133406 msgid "Don't display any dialogs if there are any non-salut accounts"
32143407 msgstr "Visa inte några dialogrutor om det finns några icke-salut-konton"
32153408
3216 #: ../src/empathy-accounts.c:221
3409 #: ../src/empathy-accounts.c:190
32173410 msgid "Initially select given account (eg, gabble/jabber/foo_40example_2eorg0)"
32183411 msgstr "Välj initiallt angivet konto (t.ex., gabble/jabber/foo_40example_2eorg0)"
32193412
3220 #: ../src/empathy-accounts.c:223
3413 #: ../src/empathy-accounts.c:192
32213414 msgid "<account-id>"
32223415 msgstr "<konto-id>"
32233416
3224 #: ../src/empathy-accounts.c:231
3417 #: ../src/empathy-accounts.c:200
32253418 msgid "- Empathy Accounts"
32263419 msgstr "- Empathy-konton"
32273420
3228 #: ../src/empathy-accounts.c:247
3421 #: ../src/empathy-accounts.c:216
32293422 msgid "Empathy Accounts"
32303423 msgstr "Empathy-konton"
32313424
32333426 msgid "Empathy Debugger"
32343427 msgstr "Empathy-felsökare"
32353428
3429 #, fuzzy
3430 #~ msgid "Your contact list is empty"
3431 #~ msgstr "Visa kontaktlista i rum"
3432 #~ msgid "Send and receive messages"
3433 #~ msgstr "Skicka och ta emot meddelanden"
3434 #~ msgid "MC 4 accounts have been imported"
3435 #~ msgstr "MC 4-konton har importerats"
3436 #~ msgid "MC 4 accounts have been imported."
3437 #~ msgstr "MC 4-konton har importerats."
3438 #~ msgid "Hostname of the proxy for outbound requests."
3439 #~ msgstr "Värdnamn för proxyservern för utgående begäran."
3440 #~ msgid ""
3441 #~ "Look up the DNS SRV record at the service's domain for the host name of a "
3442 #~ "STUN server."
3443 #~ msgstr ""
3444 #~ "Slå upp DNS SRV-posten på tjänstens domän för värdnamnet för en STUN-"
3445 #~ "server."
3446 #~ msgid "Port of the proxy for outbound requests."
3447 #~ msgstr "Port på proxyservern för utgående trafik."
3448 #~ msgid ""
3449 #~ "The username for SIP authentication, if different from the SIP URI\n"
3450 #~ "username."
3451 #~ msgstr ""
3452 #~ "Användarnamnet för SIP-autentisering, om det skiljer sig från\n"
3453 #~ "användarnamnet i SIP URI."
3454 #~ msgid ""
3455 #~ "Update the registration binding if the external address for the client is "
3456 #~ "discovered to be different from the local binding."
3457 #~ msgstr ""
3458 #~ "Uppdatera registreringsbindningen om den externa adressen för klienten "
3459 #~ "skiljer sig från den lokala bindningen."
3460 #~ msgid ""
3461 #~ "Use the loose routing behavior and the Route header as recommended in RFC "
3462 #~ "3261."
3463 #~ msgstr ""
3464 #~ "Använd loose routing-beteendet och Route header som rekommenderas i RFC "
3465 #~ "3261."
3466 #~ msgid "Failed to reconnect this chat"
3467 #~ msgstr "Misslyckades med att återansluta till denna chatt"
3468 #~ msgid "Failed to join chat room"
3469 #~ msgstr "Misslyckades med att gå in i chattrummet"
3470 #~ msgid "Select a destination"
3471 #~ msgstr "Välj ett mål"
3472 #~ msgid "%s account"
3473 #~ msgstr "%s konto"
32363474 #~ msgid "_Add&#x2026;"
32373475 #~ msgstr "_Lägg till&#x2026;"
32383476 #~ msgid "_Import&#x2026;"
33783616 #~ msgstr "Ta bort"
33793617 #~ msgid "gtk-leave-fullscreen"
33803618 #~ msgstr "Lämna helskärmsläge"
3381 #~ msgid "Empathy Instant Messenger"
3382 #~ msgstr "Snabbmeddelandeklienten Empathy"
33833619 #~ msgid "- Empathy Instant Messenger"
33843620 #~ msgstr "- Empathy snabbmeddelandeklient"
33853621 #~ msgid "Avatars are user chosen images shown in the contact list"
36573893 #~ msgstr "Kontaktinfor_mation"
36583894 #~ msgid "Cu_t"
36593895 #~ msgstr "Klipp _ut"
3660 #~ msgid "In_vite..."
3661 #~ msgstr "_Bjud in..."
36623896 #~ msgid "_Add To Favorites"
36633897 #~ msgstr "_Lägg till i favoriter"
36643898 #~ msgid "_Copy"
38734107 #~ msgstr "Gå in i chattrummet avbröts."
38744108 #~ msgid "Unavailable"
38754109 #~ msgstr "Otillgänglig"
3876 #~ msgid "Connection refused."
3877 #~ msgstr "Anslutning vägrades."
38784110 #~ msgid "Server address could not be resolved."
38794111 #~ msgstr "Serverns address kunde inte slås upp."
3880 #~ msgid "Connection timed out."
3881 #~ msgstr "Anslutning timade ut."
38824112 #~ msgid "Authentication failed."
38834113 #~ msgstr "Autentisering misslyckades."
38844114 #~ msgid "The username you are trying already exists."
39914221 #~ msgstr "Välj vilket rum du vill bjuda in till:"
39924222 #~ msgid "Your invitation has been declined"
39934223 #~ msgstr "Ditt inbjudan har nekats."
3994 #~ msgid "Accept"
3995 #~ msgstr "Acceptera"
39964224 #~ msgid ""
39974225 #~ "Please enter a new name for the group:\n"
39984226 #~ "%s"
43374565 #~ msgstr "Begär kontaktinformation, var vänlig vänta..."
43384566 #~ msgid "Height of main window"
43394567 #~ msgstr "Höjden på huvudfönstret"
4340 #~ msgid "The X position of the main window."
4341 #~ msgstr "X-positionen av huvudfönstret."
43424568 #~ msgid "The Y position of the main window."
43434569 #~ msgstr "Y-positionen av huvudfönstret."
43444570 #~ msgid "The width of the main window."
44234649 #~ msgstr "Kunde inte hitta servern du ville använda"
44244650 #~ msgid "Connection to the server failed."
44254651 #~ msgstr "Anslutningen till servern misslyckades."
4426 #~ msgid "Connection could not be created"
4427 #~ msgstr "Anslutning kunde inte skapas"
44284652 #~ msgid "Bad Request"
44294653 #~ msgstr "Felaktig förfrågan"
44304654 #~ msgid "Payment Required"
44314655 #~ msgstr "Betalning krävd"
4432 #~ msgid "Not Found"
4433 #~ msgstr "Inte hittad"
44344656 #~ msgid "Not Allowed"
44354657 #~ msgstr "Inte tillåten"
44364658 #~ msgid "Not Acceptable"
45734795 #~ msgstr "Smek_namn:"
45744796 #~ msgid "<b>Preset status messages</b>"
45754797 #~ msgstr "<b>Förinställda statusmeddelanden</b>"
4576 #~ msgid "<i>Information not available</i>"
4577 #~ msgstr "<i>Informationen inte tillgänglig</i>"
45784798 #~ msgid "Information about ..."
45794799 #~ msgstr "Information om..."
45804800 #~ msgid "Jabber Account"
46034823 #~ "otillgänglig för tillfället."
46044824 #~ msgid "An error occurred when chatting in the group chat %s."
46054825 #~ msgstr "Ett fel inträffade under samtal i gruppchatten %s."
4606 #~ msgid "Details:"
4607 #~ msgstr "Detaljer:"
46084826 #~ msgid "Unable to enter the group chat %s."
46094827 #~ msgstr "Kunde inte gå in i gruppchatten %s."
46104828 #~ msgid "An error occurred when chatting with %s."
1919 "Project-Id-Version: empathy master\n"
2020 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
2121 "product=empathy&component=general\n"
22 "POT-Creation-Date: 2010-07-20 23:20+0000\n"
22 "POT-Creation-Date: 2010-07-26 16:00+0000\n"
2323 "PO-Revision-Date: 2010-07-23 02:01+0800\n"
2424 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
2525 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
440440
441441 #. Tweak the dialog
442442 #: ../data/empathy-accounts.desktop.in.in.h:2
443 #: ../src/empathy-accounts-dialog.c:2094 ../src/cc-empathy-accounts-page.c:244
444 #: ../src/cc-empathy-accounts-panel.c:91
443 #: ../src/empathy-accounts-dialog.c:2092
445444 msgid "Messaging and VoIP Accounts"
446445 msgstr "消息和 VoIP 帐户"
447446
659658
660659 #: ../libempathy-gtk/empathy-account-widget.c:1623
661660 msgid "This account already exists on the server"
662 msgstr "服务器上已存在该账户。"
661 msgstr "服务器上已存在该账户"
663662
664663 #: ../libempathy-gtk/empathy-account-widget.c:1626
665664 msgid "Create a new account on the server"
13831382 msgstr "删除联系人"
13841383
13851384 #: ../libempathy-gtk/empathy-contact-menu.c:203
1386 #: ../libempathy-gtk/empathy-individual-menu.c:226
1385 #: ../libempathy-gtk/empathy-individual-menu.c:223
13871386 #: ../src/empathy-main-window.ui.h:13
13881387 msgid "_Add Contact…"
13891388 msgstr "添加联系人(_A)..."
13901389
13911390 #: ../libempathy-gtk/empathy-contact-menu.c:231
1392 #: ../libempathy-gtk/empathy-individual-menu.c:266
1391 #: ../libempathy-gtk/empathy-individual-menu.c:264
13931392 #: ../src/empathy-main-window.ui.h:14
13941393 msgid "_Chat"
13951394 msgstr "聊天(_C)"
13961395
13971396 #: ../libempathy-gtk/empathy-contact-menu.c:261
1398 #: ../libempathy-gtk/empathy-individual-menu.c:308
1397 #: ../libempathy-gtk/empathy-individual-menu.c:306
13991398 msgctxt "menu item"
14001399 msgid "_Audio Call"
14011400 msgstr "音频呼叫(_A)"
14021401
14031402 #: ../libempathy-gtk/empathy-contact-menu.c:291
1404 #: ../libempathy-gtk/empathy-individual-menu.c:353
1403 #: ../libempathy-gtk/empathy-individual-menu.c:351
14051404 msgctxt "menu item"
14061405 msgid "_Video Call"
14071406 msgstr "视频呼叫(_V)"
14081407
14091408 #: ../libempathy-gtk/empathy-contact-menu.c:331
1410 #: ../libempathy-gtk/empathy-individual-menu.c:405
1409 #: ../libempathy-gtk/empathy-individual-menu.c:403
14111410 #: ../src/empathy-main-window.ui.h:25
14121411 msgid "_Previous Conversations"
14131412 msgstr "最近会话(_P)"
14141413
14151414 #: ../libempathy-gtk/empathy-contact-menu.c:353
1416 #: ../libempathy-gtk/empathy-individual-menu.c:446
1415 #: ../libempathy-gtk/empathy-individual-menu.c:444
14171416 msgid "Send File"
14181417 msgstr "发送文件"
14191418
14201419 #: ../libempathy-gtk/empathy-contact-menu.c:376
1421 #: ../libempathy-gtk/empathy-individual-menu.c:488
1420 #: ../libempathy-gtk/empathy-individual-menu.c:486
14221421 msgid "Share My Desktop"
14231422 msgstr "共享我的桌面"
14241423
14251424 #: ../libempathy-gtk/empathy-contact-menu.c:416
1426 #: ../libempathy-gtk/empathy-contact-widget.c:1828
1427 #: ../libempathy-gtk/empathy-individual-menu.c:517
1425 #: ../libempathy-gtk/empathy-contact-widget.c:1801
1426 #: ../libempathy-gtk/empathy-individual-menu.c:515
14281427 msgid "Favorite"
14291428 msgstr "收藏夹"
14301429
14311430 #: ../libempathy-gtk/empathy-contact-menu.c:445
1432 #: ../libempathy-gtk/empathy-individual-menu.c:549
1431 #: ../libempathy-gtk/empathy-individual-menu.c:547
14331432 msgid "Infor_mation"
14341433 msgstr "信息(_M)"
14351434
14391438 msgstr "编辑(_E)"
14401439
14411440 #: ../libempathy-gtk/empathy-contact-menu.c:545
1442 #: ../libempathy-gtk/empathy-individual-menu.c:666
1441 #: ../libempathy-gtk/empathy-individual-menu.c:664
14431442 #: ../src/empathy-chat-window.c:903
14441443 msgid "Inviting you to this room"
14451444 msgstr "邀请到此聊天室"
14461445
14471446 #: ../libempathy-gtk/empathy-contact-menu.c:576
1448 #: ../libempathy-gtk/empathy-individual-menu.c:704
1447 #: ../libempathy-gtk/empathy-individual-menu.c:702
14491448 msgid "_Invite to Chat Room"
14501449 msgstr "邀请到聊天室(_I)"
14511450
14731472 msgid "Birthday:"
14741473 msgstr "生日:"
14751474
1476 #: ../libempathy-gtk/empathy-contact-widget.c:612
1475 #: ../libempathy-gtk/empathy-contact-widget.c:603
14771476 msgid "Select"
14781477 msgstr "选择"
14791478
1480 #: ../libempathy-gtk/empathy-contact-widget.c:621
1479 #: ../libempathy-gtk/empathy-contact-widget.c:612
14811480 #: ../src/empathy-main-window.c:1195
14821481 msgid "Group"
14831482 msgstr "群组"
14841483
1485 #: ../libempathy-gtk/empathy-contact-widget.c:857
1484 #: ../libempathy-gtk/empathy-contact-widget.c:841
14861485 msgid "Country ISO Code:"
14871486 msgstr "包括 ISO 编码:"
14881487
1489 #: ../libempathy-gtk/empathy-contact-widget.c:859
1488 #: ../libempathy-gtk/empathy-contact-widget.c:843
14901489 msgid "Country:"
14911490 msgstr "国家:"
14921491
1493 #: ../libempathy-gtk/empathy-contact-widget.c:861
1492 #: ../libempathy-gtk/empathy-contact-widget.c:845
14941493 msgid "State:"
14951494 msgstr "省:"
14961495
1497 #: ../libempathy-gtk/empathy-contact-widget.c:863
1496 #: ../libempathy-gtk/empathy-contact-widget.c:847
14981497 msgid "City:"
14991498 msgstr "城市:"
15001499
1501 #: ../libempathy-gtk/empathy-contact-widget.c:865
1500 #: ../libempathy-gtk/empathy-contact-widget.c:849
15021501 msgid "Area:"
15031502 msgstr "地区:"
15041503
1505 #: ../libempathy-gtk/empathy-contact-widget.c:867
1504 #: ../libempathy-gtk/empathy-contact-widget.c:851
15061505 msgid "Postal Code:"
15071506 msgstr "邮政编码:"
15081507
1509 #: ../libempathy-gtk/empathy-contact-widget.c:869
1508 #: ../libempathy-gtk/empathy-contact-widget.c:853
15101509 msgid "Street:"
15111510 msgstr "街道:"
15121511
1513 #: ../libempathy-gtk/empathy-contact-widget.c:871
1512 #: ../libempathy-gtk/empathy-contact-widget.c:855
15141513 msgid "Building:"
15151514 msgstr "建筑物:"
15161515
1517 #: ../libempathy-gtk/empathy-contact-widget.c:873
1516 #: ../libempathy-gtk/empathy-contact-widget.c:857
15181517 msgid "Floor:"
15191518 msgstr "楼层:"
15201519
1521 #: ../libempathy-gtk/empathy-contact-widget.c:875
1520 #: ../libempathy-gtk/empathy-contact-widget.c:859
15221521 msgid "Room:"
15231522 msgstr "房间:"
15241523
1525 #: ../libempathy-gtk/empathy-contact-widget.c:877
1524 #: ../libempathy-gtk/empathy-contact-widget.c:861
15261525 msgid "Text:"
15271526 msgstr "文本:"
15281527
1529 #: ../libempathy-gtk/empathy-contact-widget.c:879
1528 #: ../libempathy-gtk/empathy-contact-widget.c:863
15301529 msgid "Description:"
15311530 msgstr "描述:"
15321531
1533 #: ../libempathy-gtk/empathy-contact-widget.c:881
1532 #: ../libempathy-gtk/empathy-contact-widget.c:865
15341533 msgid "URI:"
15351534 msgstr "URI:"
15361535
1537 #: ../libempathy-gtk/empathy-contact-widget.c:883
1536 #: ../libempathy-gtk/empathy-contact-widget.c:867
15381537 msgid "Accuracy Level:"
15391538 msgstr "准确程度:"
15401539
1541 #: ../libempathy-gtk/empathy-contact-widget.c:885
1540 #: ../libempathy-gtk/empathy-contact-widget.c:869
15421541 msgid "Error:"
15431542 msgstr "错误:"
15441543
1545 #: ../libempathy-gtk/empathy-contact-widget.c:887
1544 #: ../libempathy-gtk/empathy-contact-widget.c:871
15461545 msgid "Vertical Error (meters):"
15471546 msgstr "垂直误差(米):"
15481547
1549 #: ../libempathy-gtk/empathy-contact-widget.c:889
1548 #: ../libempathy-gtk/empathy-contact-widget.c:873
15501549 msgid "Horizontal Error (meters):"
15511550 msgstr "水平误差(米):"
15521551
1553 #: ../libempathy-gtk/empathy-contact-widget.c:891
1552 #: ../libempathy-gtk/empathy-contact-widget.c:875
15541553 msgid "Speed:"
15551554 msgstr "速度:"
15561555
1557 #: ../libempathy-gtk/empathy-contact-widget.c:893
1556 #: ../libempathy-gtk/empathy-contact-widget.c:877
15581557 msgid "Bearing:"
15591558 msgstr "方位朝向:"
15601559
1561 #: ../libempathy-gtk/empathy-contact-widget.c:895
1560 #: ../libempathy-gtk/empathy-contact-widget.c:879
15621561 msgid "Climb Speed:"
15631562 msgstr "爬升速度:"
15641563
1565 #: ../libempathy-gtk/empathy-contact-widget.c:897
1564 #: ../libempathy-gtk/empathy-contact-widget.c:881
15661565 msgid "Last Updated on:"
15671566 msgstr "最近更新于:"
15681567
1569 #: ../libempathy-gtk/empathy-contact-widget.c:899
1568 #: ../libempathy-gtk/empathy-contact-widget.c:883
15701569 msgid "Longitude:"
15711570 msgstr "经度:"
15721571
1573 #: ../libempathy-gtk/empathy-contact-widget.c:901
1572 #: ../libempathy-gtk/empathy-contact-widget.c:885
15741573 msgid "Latitude:"
15751574 msgstr "纬度:"
15761575
1577 #: ../libempathy-gtk/empathy-contact-widget.c:903
1576 #: ../libempathy-gtk/empathy-contact-widget.c:887
15781577 msgid "Altitude:"
15791578 msgstr "海拔:"
15801579
1581 #: ../libempathy-gtk/empathy-contact-widget.c:966
1580 #: ../libempathy-gtk/empathy-contact-widget.c:950
15821581 #: ../src/empathy-preferences.ui.h:12
15831582 msgid "Location"
15841583 msgstr "位置"
15851584
1586 #: ../libempathy-gtk/empathy-contact-widget.c:982
1585 #: ../libempathy-gtk/empathy-contact-widget.c:966
15871586 msgid "<b>Location</b>, "
15881587 msgstr "<b>位置</b>,"
15891588
1590 #: ../libempathy-gtk/empathy-contact-widget.c:1033
1589 #: ../libempathy-gtk/empathy-contact-widget.c:1017
15911590 msgid "%B %e, %Y at %R UTC"
15921591 msgstr "%B %e,%Y 于 %R UTC 时间"
15931592
1594 #: ../libempathy-gtk/empathy-contact-widget.c:1116
1593 #: ../libempathy-gtk/empathy-contact-widget.c:1100
15951594 msgid "Save Avatar"
15961595 msgstr "保存头像"
15971596
1598 #: ../libempathy-gtk/empathy-contact-widget.c:1172
1597 #: ../libempathy-gtk/empathy-contact-widget.c:1156
15991598 msgid "Unable to save avatar"
16001599 msgstr "无法保存头像"
16011600
16501649 msgid "_Add Group"
16511650 msgstr "添加群组(_A)"
16521651
1653 #: ../libempathy-gtk/empathy-individual-menu.c:605
1652 #: ../libempathy-gtk/empathy-individual-menu.c:603
16541653 msgctxt "Edit individual (contextual menu)"
16551654 msgid "_Edit"
16561655 msgstr "编辑(_E)"
17351734 #: ../libempathy-gtk/empathy-presence-chooser.c:168
17361735 #: ../libempathy-gtk/empathy-presence-chooser.c:204
17371736 msgid "Custom Message…"
1738 msgstr "自定义消息"
1737 msgstr "自定义消息..."
17391738
17401739 #: ../libempathy-gtk/empathy-presence-chooser.c:221
17411740 #: ../libempathy-gtk/empathy-presence-chooser.c:223
20462045
20472046 #: ../src/empathy.c:474
20482047 msgid "Don't connect on startup"
2049 msgstr "启动时不自动登录"
2048 msgstr "启动时不自动连接"
20502049
20512050 #: ../src/empathy.c:478
20522051 msgid "Don't display the contact list or any other dialogs on startup"
21522151 #. To translator: %s is the name of the protocol, such as "Google Talk" or
21532152 #. * "Yahoo!"
21542153 #.
2155 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:606
2154 #: ../src/empathy-account-assistant.c:412 ../src/empathy-accounts-dialog.c:604
21562155 #, c-format
21572156 msgid "New %s account"
21582157 msgstr "新建 %s 账户"
22062205
22072206 #: ../src/empathy-account-assistant.c:738
22082207 msgid "No, I want a new account"
2209 msgstr "不,我想要一个新的账户。"
2208 msgstr "不,我想要一个新的账户"
22102209
22112210 #: ../src/empathy-account-assistant.c:748
22122211 msgid "No, I just want to see people online nearby for now"
22242223
22252224 #: ../src/empathy-account-assistant.c:860
22262225 msgid "No, that's all for now"
2227 msgstr "没有,就这样吧。"
2226 msgstr "没有,就这样吧"
22282227
22292228 #: ../src/empathy-account-assistant.c:1129
22302229 msgid ""
22902289 msgid "Your new account has not been saved yet."
22912290 msgstr "您的新帐户还没有保存。"
22922291
2293 #: ../src/empathy-accounts-dialog.c:273 ../src/empathy-call-window.c:799
2292 #: ../src/empathy-accounts-dialog.c:271 ../src/empathy-call-window.c:799
22942293 msgid "Connecting…"
22952294 msgstr "正在连接..."
22962295
2297 #: ../src/empathy-accounts-dialog.c:314
2296 #: ../src/empathy-accounts-dialog.c:312
22982297 #, c-format
22992298 msgid "Offline — %s"
23002299 msgstr "离线 - %s"
23012300
2302 #: ../src/empathy-accounts-dialog.c:326
2301 #: ../src/empathy-accounts-dialog.c:324
23032302 #, c-format
23042303 msgid "Disconnected — %s"
23052304 msgstr "已断开 - %s"
23062305
2307 #: ../src/empathy-accounts-dialog.c:337
2306 #: ../src/empathy-accounts-dialog.c:335
23082307 msgid "Offline — No Network Connection"
23092308 msgstr "离线 - 无可用网络"
23102309
2311 #: ../src/empathy-accounts-dialog.c:344
2310 #: ../src/empathy-accounts-dialog.c:342
23122311 msgid "Unknown Status"
23132312 msgstr "未知状态"
23142313
2315 #: ../src/empathy-accounts-dialog.c:356
2314 #: ../src/empathy-accounts-dialog.c:354
23162315 msgid "Offline — Account Disabled"
23172316 msgstr "离线 - 帐户被禁用"
23182317
2319 #: ../src/empathy-accounts-dialog.c:797
2318 #: ../src/empathy-accounts-dialog.c:795
23202319 msgid ""
23212320 "You are about to create a new account, which will discard\n"
23222321 "your changes. Are you sure you want to proceed?"
23232322 msgstr "您将要创建一个新账户,所做的修改将作废。您确定要继续吗?"
23242323
2325 #: ../src/empathy-accounts-dialog.c:1144
2324 #: ../src/empathy-accounts-dialog.c:1142
23262325 #, c-format
23272326 msgid "Do you want to remove %s from your computer?"
23282327 msgstr "您要从电脑中移除 %s 吗?"
23292328
2330 #: ../src/empathy-accounts-dialog.c:1148
2329 #: ../src/empathy-accounts-dialog.c:1146
23312330 msgid "This will not remove your account on the server."
23322331 msgstr "这不会删除服务器上的账户。"
23332332
2334 #: ../src/empathy-accounts-dialog.c:1385
2333 #: ../src/empathy-accounts-dialog.c:1383
23352334 msgid ""
23362335 "You are about to select another account, which will discard\n"
23372336 "your changes. Are you sure you want to proceed?"
23382337 msgstr "您将要选择另一个账户,所做的修改将作废。您确定要继续吗?"
23392338
2340 #: ../src/empathy-accounts-dialog.c:1962
2339 #: ../src/empathy-accounts-dialog.c:1960
23412340 msgid ""
23422341 "You are about to close the window, which will discard\n"
23432342 "your changes. Are you sure you want to proceed?"
23682367 #: ../src/empathy-auto-salut-account-helper.c:78
23692368 msgid "People nearby"
23702369 msgstr "附近的人"
2370
2371 #: ../src/empathy-av.c:133
2372 msgid "- Empathy Audio/Video Client"
2373 msgstr " - Empathy 语音/视频客户端"
2374
2375 #: ../src/empathy-av.c:149
2376 msgid "Empathy Audio/Video Client"
2377 msgstr "Empathy 语音/视频客户端"
23712378
23722379 #: ../src/empathy-call-window.c:470
23732380 msgid "Contrast"
25352542
25362543 #: ../src/empathy-call-window.ui.h:13
25372544 msgid "Redial"
2538 msgstr "重播"
2545 msgstr "重拨"
25392546
25402547 #: ../src/empathy-call-window.ui.h:14
25412548 msgid "Send Audio"
32163223
32173224 #: ../src/empathy-preferences.ui.h:24
32183225 msgid "_Automatically connect on startup"
3219 msgstr "启动时自动登录(_A) "
3226 msgstr "启动时自动连接(_A) "
32203227
32213228 #: ../src/empathy-preferences.ui.h:25
32223229 msgid "_Cellphone"
33843391 #: ../src/empathy-debugger.c:40
33853392 msgid "Empathy Debugger"
33863393 msgstr "Empathy 调试器"
3387
3388 #: ../src/empathy-av.c:133
3389 msgid "- Empathy Audio/Video Client"
3390 msgstr " - Empathy 语音/视频客户端"
3391
3392 #: ../src/empathy-av.c:149
3393 msgid "Empathy Audio/Video Client"
3394 msgstr "Empathy 语音/视频客户端"
33953394
33963395 #~ msgid "Send and receive messages"
33973396 #~ msgstr "发送接收即时消息"
5656 RESPONSE_CREATE_STOP = 2
5757 } CreateEnterPageResponse;
5858
59 enum {
59 typedef enum {
6060 PAGE_INTRO = 0,
6161 PAGE_IMPORT = 1,
6262 PAGE_ENTER_CREATE = 2,
6363 PAGE_SALUT = 3,
64 };
64 } PageID;
6565
6666 enum {
6767 PROP_PARENT = 1,
7474 gboolean enter_create_forward;
7575 TpAccountManager *account_mgr;
7676 EmpathyConnectionManagers *connection_mgrs;
77 gint current_page_id;
77 PageID current_page_id;
7878
7979 /* enter or create page */
8080 GtkWidget *enter_or_create_page;
932932 gint current_idx;
933933
934934 /* check from which page we are coming from */
935 switch (priv->current_page_id)
936 {
937 case PAGE_IMPORT:
938 empathy_import_widget_add_selected_accounts (priv->iw);
939 break;
940 }
935 if (priv->current_page_id == PAGE_IMPORT)
936 empathy_import_widget_add_selected_accounts (priv->iw);
941937
942938 current_idx = gtk_assistant_get_current_page (assistant);
943939 priv->current_page_id = current_idx;
309309 gchar *message;
310310
311311 message = g_strdup_printf (_("Offline — %s"),
312 empathy_status_reason_get_default_message (reason));
312 empathy_account_get_error_message (account));
313313 gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
314314 GTK_MESSAGE_WARNING);
315315
321321 gchar *message;
322322
323323 message = g_strdup_printf (_("Disconnected — %s"),
324 empathy_status_reason_get_default_message (reason));
324 empathy_account_get_error_message (account));
325325 gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
326326 GTK_MESSAGE_ERROR);
327327
471471 EmpathyAccountSettings *settings)
472472 {
473473 EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
474 gchar *icon_name;
474 const gchar *icon_name;
475475 TpAccount *account;
476476
477477 priv->setting_widget_object =
22982298 gboolean hidden)
22992299 {
23002300 GError *error = NULL;
2301 gchar *argv[4] = { NULL, };
2301 const gchar *argv[4] = { NULL, };
23022302 gint i = 0;
23032303 gchar *account_option = NULL;
23042304 gchar *path;
23402340 selected_account == NULL ? "<none selected>" :
23412341 tp_proxy_get_object_path (TP_PROXY (selected_account)));
23422342
2343 gdk_spawn_on_screen (screen, NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
2343 gdk_spawn_on_screen (screen, NULL, (gchar**) argv, NULL, G_SPAWN_SEARCH_PATH,
23442344 NULL, NULL, NULL, &error);
23452345 if (error != NULL)
23462346 {
173173 GtkWidget *vcodec_decoding_label;
174174 GtkWidget *acodec_decoding_label;
175175
176 GtkWidget *audio_remote_candidate_label;
177 GtkWidget *audio_local_candidate_label;
178 GtkWidget *video_remote_candidate_label;
179 GtkWidget *video_local_candidate_label;
180 GtkWidget *video_remote_candidate_info_img;
181 GtkWidget *video_local_candidate_info_img;
182 GtkWidget *audio_remote_candidate_info_img;
183 GtkWidget *audio_local_candidate_info_img;
184
176185 GstElement *video_input;
177186 GstElement *audio_input;
178187 GstElement *audio_output;
366375 int i;
367376 GQuark button_quark;
368377 struct {
369 gchar *label;
378 const gchar *label;
370379 TpDTMFEvent event;
371380 } dtmfbuttons[] = { { "1", TP_DTMF_EVENT_DIGIT_1 },
372381 { "2", TP_DTMF_EVENT_DIGIT_2 },
10501059 "acodec_encoding_label", &priv->acodec_encoding_label,
10511060 "acodec_decoding_label", &priv->acodec_decoding_label,
10521061 "vcodec_decoding_label", &priv->vcodec_decoding_label,
1062 "audio_remote_candidate_label", &priv->audio_remote_candidate_label,
1063 "audio_local_candidate_label", &priv->audio_local_candidate_label,
1064 "video_remote_candidate_label", &priv->video_remote_candidate_label,
1065 "video_local_candidate_label", &priv->video_local_candidate_label,
1066 "video_remote_candidate_info_img", &priv->video_remote_candidate_info_img,
1067 "video_local_candidate_info_img", &priv->video_local_candidate_info_img,
1068 "audio_remote_candidate_info_img", &priv->audio_remote_candidate_info_img,
1069 "audio_local_candidate_info_img", &priv->audio_local_candidate_info_img,
10531070 NULL);
10541071 g_free (filename);
10551072
14491466 update_recv_codec (self, FALSE);
14501467 }
14511468
1469 static const gchar *
1470 candidate_type_to_str (FsCandidate *candidate)
1471 {
1472 switch (candidate->type)
1473 {
1474 case FS_CANDIDATE_TYPE_HOST:
1475 return "host";
1476 case FS_CANDIDATE_TYPE_SRFLX:
1477 return "server reflexive";
1478 case FS_CANDIDATE_TYPE_PRFLX:
1479 return "peer reflexive";
1480 case FS_CANDIDATE_TYPE_RELAY:
1481 return "relay";
1482 case FS_CANDIDATE_TYPE_MULTICAST:
1483 return "multicast";
1484 }
1485
1486 return NULL;
1487 }
1488
1489 static const gchar *
1490 candidate_type_to_desc (FsCandidate *candidate)
1491 {
1492 switch (candidate->type)
1493 {
1494 case FS_CANDIDATE_TYPE_HOST:
1495 return _("The IP address as seen by the machine");
1496 case FS_CANDIDATE_TYPE_SRFLX:
1497 return _("The IP address as seen by a server on the Internet");
1498 case FS_CANDIDATE_TYPE_PRFLX:
1499 return _("The IP address of the peer as seen by the other side");
1500 case FS_CANDIDATE_TYPE_RELAY:
1501 return _("The IP address of a relay server");
1502 case FS_CANDIDATE_TYPE_MULTICAST:
1503 return _("The IP address of the multicast group");
1504 }
1505
1506 return NULL;
1507 }
1508
1509 static void
1510 update_candidat_widget (EmpathyCallWindow *self,
1511 GtkWidget *label,
1512 GtkWidget *img,
1513 FsCandidate *candidate)
1514 {
1515 gchar *str;
1516
1517 g_assert (candidate != NULL);
1518 str = g_strdup_printf ("%s %u (%s)", candidate->ip,
1519 candidate->port, candidate_type_to_str (candidate));
1520
1521 gtk_label_set_text (GTK_LABEL (label), str);
1522 gtk_widget_set_tooltip_text (img, candidate_type_to_desc (candidate));
1523
1524 g_free (str);
1525 }
1526
1527 static void
1528 candidates_changed_cb (GObject *object,
1529 FsMediaType type,
1530 EmpathyCallWindow *self)
1531 {
1532 EmpathyCallWindowPriv *priv = GET_PRIV (self);
1533 FsCandidate *candidate = NULL;
1534
1535 if (type == FS_MEDIA_TYPE_VIDEO)
1536 {
1537 /* Update remote candidate */
1538 candidate = empathy_call_handler_get_video_remote_candidate (
1539 priv->handler);
1540
1541 update_candidat_widget (self, priv->video_remote_candidate_label,
1542 priv->video_remote_candidate_info_img, candidate);
1543
1544 /* Update local candidate */
1545 candidate = empathy_call_handler_get_video_local_candidate (
1546 priv->handler);
1547
1548 update_candidat_widget (self, priv->video_local_candidate_label,
1549 priv->video_local_candidate_info_img, candidate);
1550 }
1551 else
1552 {
1553 /* Update remote candidate */
1554 candidate = empathy_call_handler_get_audio_remote_candidate (
1555 priv->handler);
1556
1557 update_candidat_widget (self, priv->audio_remote_candidate_label,
1558 priv->audio_remote_candidate_info_img, candidate);
1559
1560 /* Update local candidate */
1561 candidate = empathy_call_handler_get_audio_local_candidate (
1562 priv->handler);
1563
1564 update_candidat_widget (self, priv->audio_local_candidate_label,
1565 priv->audio_local_candidate_info_img, candidate);
1566 }
1567 }
1568
14521569 static void
14531570 empathy_call_window_constructed (GObject *object)
14541571 {
14871604 G_CALLBACK (recv_audio_codecs_notify_cb), self, 0);
14881605 tp_g_signal_connect_object (priv->handler, "notify::recv-video-codecs",
14891606 G_CALLBACK (recv_video_codecs_notify_cb), self, 0);
1607
1608 tp_g_signal_connect_object (priv->handler, "candidates-changed",
1609 G_CALLBACK (candidates_changed_cb), self, 0);
14901610 }
14911611
14921612 static void empathy_call_window_dispose (GObject *object);
22562376 case TP_MEDIA_STREAM_ERROR_MEDIA_ERROR:
22572377 return g_strdup (_("There was a failure in the call engine"));
22582378
2379 case TP_MEDIA_STREAM_ERROR_EOS:
2380 return g_strdup (_("The end of the stream was reached"));
2381
2382 case TP_MEDIA_STREAM_ERROR_UNKNOWN:
22592383 default:
22602384 return NULL;
22612385 }
26162740 g_error_free (error);
26172741 g_free (debug);
26182742 }
2743 case GST_MESSAGE_UNKNOWN:
2744 case GST_MESSAGE_EOS:
2745 case GST_MESSAGE_WARNING:
2746 case GST_MESSAGE_INFO:
2747 case GST_MESSAGE_TAG:
2748 case GST_MESSAGE_BUFFERING:
2749 case GST_MESSAGE_STATE_DIRTY:
2750 case GST_MESSAGE_STEP_DONE:
2751 case GST_MESSAGE_CLOCK_PROVIDE:
2752 case GST_MESSAGE_CLOCK_LOST:
2753 case GST_MESSAGE_NEW_CLOCK:
2754 case GST_MESSAGE_STRUCTURE_CHANGE:
2755 case GST_MESSAGE_STREAM_STATUS:
2756 case GST_MESSAGE_APPLICATION:
2757 case GST_MESSAGE_ELEMENT:
2758 case GST_MESSAGE_SEGMENT_START:
2759 case GST_MESSAGE_SEGMENT_DONE:
2760 case GST_MESSAGE_DURATION:
2761 case GST_MESSAGE_ANY:
26192762 default:
26202763 break;
26212764 }
347347 <property name="yalign">0.5</property>
348348 <property name="xpad">0</property>
349349 <property name="ypad">0</property>
350 <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
350 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
351351 <property name="width_chars">-1</property>
352352 <property name="single_line_mode">False</property>
353353 <property name="angle">0</property>
357357 <property name="right_attach">2</property>
358358 <property name="top_attach">1</property>
359359 <property name="bottom_attach">2</property>
360 <property name="x_options">expand|shrink|fill</property>
360 <property name="x_options">fill</property>
361361 <property name="y_options"/>
362362 </packing>
363363 </child>
408408 <property name="yalign">0.5</property>
409409 <property name="xpad">0</property>
410410 <property name="ypad">0</property>
411 <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
411 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
412412 <property name="width_chars">-1</property>
413413 <property name="single_line_mode">False</property>
414414 <property name="angle">0</property>
418418 <property name="right_attach">2</property>
419419 <property name="top_attach">2</property>
420420 <property name="bottom_attach">3</property>
421 <property name="x_options">expand|shrink|fill</property>
422 <property name="y_options"/>
423 </packing>
421 <property name="x_options">fill</property>
422 <property name="y_options"/>
423 </packing>
424 </child>
425
426 <child>
427 <object class="GtkLabel" id="vrc_label">
428 <property name="visible">True</property>
429 <property name="label" translatable="yes">Remote Candidate:</property>
430 <property name="use_underline">False</property>
431 <property name="use_markup">True</property>
432 <property name="justify">GTK_JUSTIFY_LEFT</property>
433 <property name="wrap">False</property>
434 <property name="selectable">False</property>
435 <property name="xalign">0</property>
436 <property name="yalign">0.5</property>
437 <property name="xpad">0</property>
438 <property name="ypad">0</property>
439 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
440 <property name="width_chars">-1</property>
441 <property name="single_line_mode">False</property>
442 <property name="angle">0</property>
443 <attributes>
444 <attribute name="style" value="PANGO_STYLE_ITALIC"/>
445 </attributes>
446 </object>
447 <packing>
448 <property name="left_attach">0</property>
449 <property name="right_attach">1</property>
450 <property name="top_attach">3</property>
451 <property name="bottom_attach">4</property>
452 <property name="x_options">fill</property>
453 <property name="y_options"/>
454 </packing>
455 </child>
456
457 <child>
458 <object class="GtkLabel" id="video_remote_candidate_label">
459 <property name="visible">True</property>
460 <property name="can_focus">True</property>
461 <property name="label" translatable="yes">Unknown</property>
462 <property name="use_underline">False</property>
463 <property name="use_markup">False</property>
464 <property name="justify">GTK_JUSTIFY_LEFT</property>
465 <property name="wrap">False</property>
466 <property name="selectable">True</property>
467 <property name="xalign">0</property>
468 <property name="yalign">0.5</property>
469 <property name="xpad">0</property>
470 <property name="ypad">0</property>
471 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
472 <property name="width_chars">-1</property>
473 <property name="single_line_mode">False</property>
474 <property name="angle">0</property>
475 </object>
476 <packing>
477 <property name="left_attach">1</property>
478 <property name="right_attach">2</property>
479 <property name="top_attach">3</property>
480 <property name="bottom_attach">4</property>
481 <property name="x_options">fill</property>
482 <property name="y_options"/>
483 </packing>
484 </child>
485
486 <child>
487 <object class="GtkImage" id="video_remote_candidate_info_img">
488 <property name="visible">True</property>
489 <property name="stock">gtk-info</property>
490 <property name="xalign">0</property>
491 </object>
492 <packing>
493 <property name="left_attach">2</property>
494 <property name="right_attach">3</property>
495 <property name="top_attach">3</property>
496 <property name="bottom_attach">4</property>
497 <property name="x_options">fill</property>
498 <property name="y_options"/>
499 </packing>
500 </child>
501
502
503 <child>
504 <object class="GtkLabel" id="vlc_label">
505 <property name="visible">True</property>
506 <property name="label" translatable="yes">Local Candidate:</property>
507 <property name="use_underline">False</property>
508 <property name="use_markup">True</property>
509 <property name="justify">GTK_JUSTIFY_LEFT</property>
510 <property name="wrap">False</property>
511 <property name="selectable">False</property>
512 <property name="xalign">0</property>
513 <property name="yalign">0.5</property>
514 <property name="xpad">0</property>
515 <property name="ypad">0</property>
516 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
517 <property name="width_chars">-1</property>
518 <property name="single_line_mode">False</property>
519 <property name="angle">0</property>
520 <attributes>
521 <attribute name="style" value="PANGO_STYLE_ITALIC"/>
522 </attributes>
523 </object>
524 <packing>
525 <property name="left_attach">0</property>
526 <property name="right_attach">1</property>
527 <property name="top_attach">4</property>
528 <property name="bottom_attach">5</property>
529 <property name="x_options">fill</property>
530 <property name="y_options"/>
531 </packing>
532 </child>
533
534 <child>
535 <object class="GtkLabel" id="video_local_candidate_label">
536 <property name="visible">True</property>
537 <property name="can_focus">True</property>
538 <property name="label" translatable="yes">Unknown</property>
539 <property name="use_underline">False</property>
540 <property name="use_markup">False</property>
541 <property name="justify">GTK_JUSTIFY_LEFT</property>
542 <property name="wrap">False</property>
543 <property name="selectable">True</property>
544 <property name="xalign">0</property>
545 <property name="yalign">0.5</property>
546 <property name="xpad">0</property>
547 <property name="ypad">0</property>
548 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
549 <property name="width_chars">-1</property>
550 <property name="single_line_mode">False</property>
551 <property name="angle">0</property>
552 </object>
553 <packing>
554 <property name="left_attach">1</property>
555 <property name="right_attach">2</property>
556 <property name="top_attach">4</property>
557 <property name="bottom_attach">5</property>
558 <property name="x_options">fill</property>
559 <property name="y_options"/>
560 </packing>
561 </child>
562
563 <child>
564 <object class="GtkImage" id="video_local_candidate_info_img">
565 <property name="visible">True</property>
566 <property name="stock">gtk-info</property>
567 <property name="xalign">0</property>
568 </object>
569 <packing>
570 <property name="left_attach">2</property>
571 <property name="right_attach">3</property>
572 <property name="top_attach">4</property>
573 <property name="bottom_attach">5</property>
574 <property name="x_options">fill</property>
575 <property name="y_options"/>
576 </packing>
424577 </child>
425578
426579 </object>
541694 <property name="yalign">0.5</property>
542695 <property name="xpad">0</property>
543696 <property name="ypad">0</property>
544 <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
697 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
545698 <property name="width_chars">-1</property>
546699 <property name="single_line_mode">False</property>
547700 <property name="angle">0</property>
551704 <property name="right_attach">2</property>
552705 <property name="top_attach">0</property>
553706 <property name="bottom_attach">1</property>
554 <property name="x_options">expand|shrink|fill</property>
707 <property name="x_options">fill</property>
555708 <property name="y_options"/>
556709 </packing>
557710 </child>
601754 <property name="yalign">0.5</property>
602755 <property name="xpad">0</property>
603756 <property name="ypad">0</property>
604 <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
757 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
605758 <property name="width_chars">-1</property>
606759 <property name="single_line_mode">False</property>
607760 <property name="angle">0</property>
611764 <property name="right_attach">2</property>
612765 <property name="top_attach">1</property>
613766 <property name="bottom_attach">2</property>
614 <property name="x_options">expand|shrink|fill</property>
615 <property name="y_options"/>
616 </packing>
767 <property name="x_options">fill</property>
768 <property name="y_options"/>
769 </packing>
770 </child>
771
772 <child>
773 <object class="GtkLabel" id="arc_label">
774 <property name="visible">True</property>
775 <property name="label" translatable="yes">Remote Candidate:</property>
776 <property name="use_underline">False</property>
777 <property name="use_markup">True</property>
778 <property name="justify">GTK_JUSTIFY_LEFT</property>
779 <property name="wrap">False</property>
780 <property name="selectable">False</property>
781 <property name="xalign">0</property>
782 <property name="yalign">0.5</property>
783 <property name="xpad">0</property>
784 <property name="ypad">0</property>
785 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
786 <property name="width_chars">-1</property>
787 <property name="single_line_mode">False</property>
788 <property name="angle">0</property>
789 <attributes>
790 <attribute name="style" value="PANGO_STYLE_ITALIC"/>
791 </attributes>
792 </object>
793 <packing>
794 <property name="left_attach">0</property>
795 <property name="right_attach">1</property>
796 <property name="top_attach">2</property>
797 <property name="bottom_attach">3</property>
798 <property name="x_options">fill</property>
799 <property name="y_options"/>
800 </packing>
801 </child>
802
803 <child>
804 <object class="GtkLabel" id="audio_remote_candidate_label">
805 <property name="visible">True</property>
806 <property name="can_focus">True</property>
807 <property name="label" translatable="yes">Unknown</property>
808 <property name="use_underline">False</property>
809 <property name="use_markup">False</property>
810 <property name="justify">GTK_JUSTIFY_LEFT</property>
811 <property name="wrap">False</property>
812 <property name="selectable">True</property>
813 <property name="xalign">0</property>
814 <property name="yalign">0.5</property>
815 <property name="xpad">0</property>
816 <property name="ypad">0</property>
817 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
818 <property name="width_chars">-1</property>
819 <property name="single_line_mode">False</property>
820 <property name="angle">0</property>
821 </object>
822 <packing>
823 <property name="left_attach">1</property>
824 <property name="right_attach">2</property>
825 <property name="top_attach">2</property>
826 <property name="bottom_attach">3</property>
827 <property name="x_options">fill</property>
828 <property name="y_options"/>
829 </packing>
830 </child>
831
832 <child>
833 <object class="GtkImage" id="audio_remote_candidate_info_img">
834 <property name="visible">True</property>
835 <property name="stock">gtk-info</property>
836 <property name="xalign">0</property>
837 </object>
838 <packing>
839 <property name="left_attach">2</property>
840 <property name="right_attach">3</property>
841 <property name="top_attach">2</property>
842 <property name="bottom_attach">3</property>
843 <property name="x_options">fill</property>
844 <property name="y_options"/>
845 </packing>
846 </child>
847
848 <child>
849 <object class="GtkLabel" id="alc_label">
850 <property name="visible">True</property>
851 <property name="label" translatable="yes">Local Candidate:</property>
852 <property name="use_underline">False</property>
853 <property name="use_markup">True</property>
854 <property name="justify">GTK_JUSTIFY_LEFT</property>
855 <property name="wrap">False</property>
856 <property name="selectable">False</property>
857 <property name="xalign">0</property>
858 <property name="yalign">0.5</property>
859 <property name="xpad">0</property>
860 <property name="ypad">0</property>
861 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
862 <property name="width_chars">-1</property>
863 <property name="single_line_mode">False</property>
864 <property name="angle">0</property>
865 <attributes>
866 <attribute name="style" value="PANGO_STYLE_ITALIC"/>
867 </attributes>
868 </object>
869 <packing>
870 <property name="left_attach">0</property>
871 <property name="right_attach">1</property>
872 <property name="top_attach">3</property>
873 <property name="bottom_attach">4</property>
874 <property name="x_options">fill</property>
875 <property name="y_options"/>
876 </packing>
877 </child>
878
879 <child>
880 <object class="GtkLabel" id="audio_local_candidate_label">
881 <property name="visible">True</property>
882 <property name="can_focus">True</property>
883 <property name="label" translatable="yes">Unknown</property>
884 <property name="use_underline">False</property>
885 <property name="use_markup">False</property>
886 <property name="justify">GTK_JUSTIFY_LEFT</property>
887 <property name="wrap">False</property>
888 <property name="selectable">True</property>
889 <property name="xalign">0</property>
890 <property name="yalign">0.5</property>
891 <property name="xpad">0</property>
892 <property name="ypad">0</property>
893 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
894 <property name="width_chars">-1</property>
895 <property name="single_line_mode">False</property>
896 <property name="angle">0</property>
897 </object>
898 <packing>
899 <property name="left_attach">1</property>
900 <property name="right_attach">2</property>
901 <property name="top_attach">3</property>
902 <property name="bottom_attach">4</property>
903 <property name="x_options">fill</property>
904 <property name="y_options"/>
905 </packing>
906 </child>
907
908 <child>
909 <object class="GtkImage" id="audio_local_candidate_info_img">
910 <property name="visible">True</property>
911 <property name="stock">gtk-info</property>
912 <property name="xalign">0</property>
913 </object>
914 <packing>
915 <property name="left_attach">2</property>
916 <property name="right_attach">3</property>
917 <property name="top_attach">3</property>
918 <property name="bottom_attach">4</property>
919 <property name="x_options">fill</property>
920 <property name="y_options"/>
921 </packing>
617922 </child>
618923
619924 </object>
2020
2121 #include <libempathy/empathy-chatroom-manager.h>
2222 #include <libempathy/empathy-dispatcher.h>
23 #include <libempathy/empathy-utils.h>
2324
2425 #include "empathy-chat-window.h"
2526
216217 TpChannel *channel = l->data;
217218 EmpathyTpChat *tp_chat;
218219
219 tp_chat = empathy_tp_chat_new (channel);
220 tp_chat = empathy_tp_chat_new (account, channel);
220221
221222 if (empathy_tp_chat_is_ready (tp_chat))
222223 {
367368 g_queue_get_length (priv->queue));
368369 }
369370
370 static void
371 connection_ready_cb (TpConnection *connection,
372 const GError *error,
373 gpointer user_data)
374 {
375 ChatData *data = user_data;
376 EmpathyChatManager *self = chat_manager_singleton;
377 EmpathyChatManagerPriv *priv;
378
379 /* Extremely unlikely to happen, but I don't really want to keep refs to the
380 * chat manager in the ChatData structs as it'll then prevent the manager
381 * from being finalized. */
382 if (G_UNLIKELY (self == NULL))
383 goto out;
384
385 priv = GET_PRIV (self);
386
387 if (error == NULL)
388 {
389 if (data->room)
390 empathy_dispatcher_join_muc (connection, data->id,
391 EMPATHY_DISPATCHER_NON_USER_ACTION);
392 else
393 empathy_dispatcher_chat_with_contact_id (connection, data->id,
394 EMPATHY_DISPATCHER_NON_USER_ACTION, NULL, NULL);
395
396 g_signal_emit (self, signals[CHATS_CHANGED], 0,
397 g_queue_get_length (priv->queue));
398 }
399 else
400 {
401 DEBUG ("Error readying connection, no chat: %s", error->message);
402 }
403
404 out:
405 chat_data_free (data);
406 }
407
408371 void
409372 empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self)
410373 {
411374 EmpathyChatManagerPriv *priv = GET_PRIV (self);
412375 ChatData *data;
413 TpConnection *connection;
414376
415377 data = g_queue_pop_tail (priv->queue);
416378
420382 DEBUG ("Removing %s from queue and starting a chat with: %s",
421383 data->room ? "room" : "contact", data->id);
422384
423 connection = tp_account_get_connection (data->account);
424
425 if (connection != NULL)
426 {
427 tp_connection_call_when_ready (connection, connection_ready_cb, data);
428 }
385 if (data->room)
386 empathy_dispatcher_join_muc (data->account, data->id,
387 TP_USER_ACTION_TIME_NOT_USER_ACTION);
429388 else
430 {
431 DEBUG ("No connection, no chat.");
432 chat_data_free (data);
433 }
389 empathy_dispatcher_chat_with_contact_id (data->account, data->id,
390 TP_USER_ACTION_TIME_NOT_USER_ACTION);
391
392 g_signal_emit (self, signals[CHATS_CHANGED], 0,
393 g_queue_get_length (priv->queue));
394
395 chat_data_free (data);
434396 }
435397
436398 guint
933933 const char *id;
934934
935935 id = empathy_contact_selector_dialog_get_selected (
936 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), NULL);
936 EMPATHY_CONTACT_SELECTOR_DIALOG (dialog), NULL, NULL);
937937 if (EMP_STR_EMPTY (id)) goto out;
938938
939939 connection = tp_channel_borrow_connection (channel);
17371737 }
17381738
17391739 if (!chat) {
1740 TpConnection *connection;
1741
1742 connection = tp_account_get_connection (account);
1743
1744 if (connection) {
1745 empathy_dispatcher_chat_with_contact_id (
1746 connection, contact_id, gtk_get_current_event_time (), NULL, NULL);
1747 }
1740 empathy_dispatcher_chat_with_contact_id (
1741 account, contact_id, gtk_get_current_event_time ());
17481742
17491743 g_strfreev (strv);
17501744 return;
17661760
17671761 /* Added to take care of any outstanding chat events */
17681762 empathy_chat_window_present_chat (chat,
1769 EMPATHY_DISPATCHER_NON_USER_ACTION);
1763 TP_USER_ACTION_TIME_NOT_USER_ACTION);
17701764
17711765 /* We should return TRUE to remove the data when doing
17721766 * GDK_ACTION_MOVE, but we don't here otherwise it has
23602354 /* Don't force the window to show itself when it wasn't
23612355 * an action by the user
23622356 */
2363 if (timestamp == EMPATHY_DISPATCHER_NON_USER_ACTION)
2357 if (!tp_user_action_time_should_present (timestamp, &x_timestamp))
23642358 return;
23652359
23662360 priv = GET_PRIV (window);
23672361
2368 if (timestamp == EMPATHY_DISPATCHER_CURRENT_TIME) {
2369 x_timestamp = GDK_CURRENT_TIME;
2370 } else {
2371 x_timestamp = CLAMP (timestamp, 0, G_MAXUINT32);
2362 if (x_timestamp != GDK_CURRENT_TIME) {
23722363 /* Don't present or switch tab if the action was earlier than the
23732364 * last actions X time, accounting for overflow and the first ever
23742365 * presentation */
2828 #include <telepathy-glib/interfaces.h>
2929 #include <telepathy-glib/simple-approver.h>
3030
31 #include <libempathy/empathy-dispatcher.h>
3231 #include <libempathy/empathy-idle.h>
3332 #include <libempathy/empathy-tp-contact-factory.h>
3433 #include <libempathy/empathy-contact-manager.h>
7574 } EventManagerApproval;
7675
7776 typedef struct {
78 EmpathyDispatcher *dispatcher;
7977 TpBaseClient *approver;
8078 EmpathyContactManager *contact_manager;
8179 GSList *events;
309307
310308 if (approval->auto_approved)
311309 {
312 timestamp = EMPATHY_DISPATCHER_NON_USER_ACTION;
310 timestamp = TP_USER_ACTION_TIME_NOT_USER_ACTION;
313311 }
314312 else
315313 {
316 timestamp = gtk_get_current_event_time ();
317
318 if (timestamp == GDK_CURRENT_TIME)
319 timestamp = EMPATHY_DISPATCHER_CURRENT_TIME;
314 timestamp = tp_user_action_time_from_x11 (gtk_get_current_event_time ());
320315 }
321316
322317 g_assert (approval->operation != NULL);
335330 event_text_channel_process_func (EventPriv *event)
336331 {
337332 EmpathyTpChat *tp_chat;
338 gint64 timestamp = gtk_get_current_event_time ();
339 if (timestamp == GDK_CURRENT_TIME)
340 timestamp = EMPATHY_DISPATCHER_CURRENT_TIME;
333 gint64 timestamp;
334
335 timestamp = tp_user_action_time_from_x11 (gtk_get_current_event_time ());
341336
342337 if (event->approval->handler != 0)
343338 {
865860 {
866861 EmpathyTpChat *tp_chat;
867862
868 tp_chat = empathy_tp_chat_new (channel);
863 tp_chat = empathy_tp_chat_new (account, channel);
869864 approval->handler_instance = G_OBJECT (tp_chat);
870865
871866 if (tp_proxy_has_interface (channel, TP_IFACE_CHANNEL_INTERFACE_GROUP))
901896 else if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_STREAMED_MEDIA)
902897 {
903898 EmpathyContact *contact;
904 EmpathyTpCall *call = empathy_tp_call_new (channel);
899 EmpathyTpCall *call = empathy_tp_call_new (account, channel);
905900
906901 approval->handler_instance = G_OBJECT (call);
907902
923918 else if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER)
924919 {
925920 TpHandle handle;
926 EmpathyTpFile *tp_file = empathy_tp_file_new (channel, TRUE);
921 EmpathyTpFile *tp_file = empathy_tp_file_new (channel);
927922
928923 approval->handler_instance = G_OBJECT (tp_file);
929924
11171112 g_slist_foreach (priv->approvals, (GFunc) event_manager_approval_free, NULL);
11181113 g_slist_free (priv->approvals);
11191114 g_object_unref (priv->contact_manager);
1120 g_object_unref (priv->dispatcher);
11211115 g_object_unref (priv->approver);
11221116 }
11231117
11711165
11721166 manager->priv = priv;
11731167
1174 priv->dispatcher = empathy_dispatcher_dup_singleton ();
11751168 priv->contact_manager = empathy_contact_manager_dup_singleton ();
11761169 g_signal_connect (priv->contact_manager, "pendings-changed",
11771170 G_CALLBACK (event_manager_pendings_changed_cb), manager);
880880 case RESPONSE_STOP:
881881 ft_manager_stop (manager);
882882 break;
883 case GTK_RESPONSE_NONE:
884 case GTK_RESPONSE_DELETE_EVENT:
885 /* Do nothing */
886 break;
887 default:
888 g_assert_not_reached ();
883889 }
884890 }
885891
4444 /* Pidgin to CM map */
4545 typedef struct
4646 {
47 gchar *protocol;
48 gchar *pidgin_name;
49 gchar *cm_name;
47 const gchar *protocol;
48 const gchar *pidgin_name;
49 const gchar *cm_name;
5050 } PidginCmMapItem;
5151
5252 static PidginCmMapItem pidgin_cm_map[] =
176176 }
177177
178178 if (value)
179 g_hash_table_insert (data->settings, item->cm_name, value);
179 g_hash_table_insert (data->settings, (gpointer) item->cm_name, value);
180180
181181 g_free (type);
182182 g_free (content);
277277 /* Add the server setting */
278278 value = tp_g_value_slice_new (G_TYPE_STRING);
279279 g_value_set_string (value, nick_server[1]);
280 g_hash_table_insert (data->settings, "server", value);
280 g_hash_table_insert (data->settings, (gpointer) "server", value);
281281 }
282282
283283 /* Add the account setting */
284284 value = tp_g_value_slice_new (G_TYPE_STRING);
285285 g_value_set_string (value, username);
286 g_hash_table_insert (data->settings, "account", value);
286 g_hash_table_insert (data->settings, (gpointer) "account", value);
287287
288288 g_strfreev (name_resource);
289289 g_strfreev (nick_server);
301301 /* Add the password setting */
302302 value = tp_g_value_slice_new (G_TYPE_STRING);
303303 g_value_set_string (value, password);
304 g_hash_table_insert (data->settings, "password", value);
304 g_hash_table_insert (data->settings, (gpointer) "password", value);
305305
306306 g_free (password);
307307 }
335335 GValue *value;
336336 value = tp_g_value_slice_new (G_TYPE_STRING);
337337 g_value_set_string (value, "");
338 g_hash_table_insert (data->settings, "password", value);
338 g_hash_table_insert (data->settings, (gpointer) "password", value);
339339 }
340340
341341 accounts = g_list_prepend (accounts, data);
9090 /* Name in the geometry file */
9191 #define GEOMETRY_NAME "main-window"
9292
93 /* Labels for empty contact list */
94 #define NO_MATCH_FOUND _("No match found")
95
9396 G_DEFINE_TYPE (EmpathyMainWindow, empathy_main_window, GTK_TYPE_WINDOW);
9497
9598 #define GET_PRIV(self) ((EmpathyMainWindowPriv *)((EmpathyMainWindow *) self)->priv)
102105 EmpathyEventManager *event_manager;
103106 guint flash_timeout_id;
104107 gboolean flash_on;
108 gboolean empty;
105109
106110 GSettings *gsettings_ui;
107111 GSettings *gsettings_contacts;
114118 GtkWidget *presence_chooser;
115119 GtkWidget *errors_vbox;
116120 GtkWidget *search_bar;
121 GtkWidget *notebook;
122 GtkWidget *no_entry_label;
117123
118124 GtkToggleAction *show_protocols;
119125 GtkRadioAction *sort_by_name;
356362 }
357363
358364 static void
365 main_window_row_deleted_cb (GtkTreeModel *model,
366 GtkTreePath *path,
367 EmpathyMainWindow *window)
368 {
369 EmpathyMainWindowPriv *priv = GET_PRIV (window);
370 GtkTreeIter help_iter;
371
372 if (!gtk_tree_model_get_iter_first (model, &help_iter)) {
373 priv->empty = TRUE;
374
375 if (empathy_individual_view_is_searching (
376 priv->individual_view)) {
377 gtk_label_set_text (GTK_LABEL (priv->no_entry_label),
378 NO_MATCH_FOUND);
379 gtk_notebook_set_current_page (
380 GTK_NOTEBOOK (priv->notebook),
381 0);
382 }
383 }
384 }
385
386 static void
387 main_window_row_inserted_cb (GtkTreeModel *model,
388 GtkTreePath *path,
389 GtkTreeIter *iter,
390 EmpathyMainWindow *window)
391 {
392 EmpathyMainWindowPriv *priv = GET_PRIV (window);
393
394 if (priv->empty) {
395 priv->empty = FALSE;
396 gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook),
397 1);
398 gtk_widget_grab_focus (GTK_WIDGET (priv->individual_view));
399 }
400 }
401
402 static void
359403 main_window_remove_error (EmpathyMainWindow *window,
360404 TpAccount *account)
361405 {
416460
417461 static void
418462 main_window_error_display (EmpathyMainWindow *window,
419 TpAccount *account,
420 const gchar *message)
463 TpAccount *account)
421464 {
422465 EmpathyMainWindowPriv *priv = GET_PRIV (window);
423466 GtkWidget *info_bar;
434477
435478 str = g_markup_printf_escaped ("<b>%s</b>\n%s",
436479 tp_account_get_display_name (account),
437 message);
480 empathy_account_get_error_message (account));
438481
439482 info_bar = g_hash_table_lookup (priv->errors, account);
440483 if (info_bar) {
570613
571614 if (current == TP_CONNECTION_STATUS_DISCONNECTED &&
572615 reason != TP_CONNECTION_STATUS_REASON_REQUESTED) {
573 const gchar *message;
574
575 message = empathy_status_reason_get_default_message (reason);
576
577 main_window_error_display (window, account, message);
616 main_window_error_display (window, account);
578617 }
579618
580619 if (current == TP_CONNECTION_STATUS_DISCONNECTED) {
733772 EMPATHY_PREFS_UI_SHOW_OFFLINE,
734773 current);
735774
736 /* Turn off sound just while we alter the contact list. */
737 // FIXME: empathy_sound_set_enabled (FALSE);
738 empathy_individual_store_set_show_offline (priv->individual_store,
775 empathy_individual_view_set_show_offline (priv->individual_view,
739776 current);
740 //empathy_sound_set_enabled (TRUE);
741777 }
742778
743779 static void
901937 main_window_view_show_map_cb (GtkCheckMenuItem *item,
902938 EmpathyMainWindow *window)
903939 {
904 #if HAVE_LIBCHAMPLAIN
940 #ifdef HAVE_LIBCHAMPLAIN
905941 empathy_map_view_show ();
906942 #endif
907943 }
911947 gint64 timestamp)
912948 {
913949 TpAccount *account;
914 TpConnection *connection;
915950 const gchar *room;
916951
917952 account = empathy_chatroom_get_account (chatroom);
918 connection = tp_account_get_connection (account);
919 g_assert (connection != NULL);
920953 room = empathy_chatroom_get_room (chatroom);
921954
922955 DEBUG ("Requesting channel for '%s'", room);
923 empathy_dispatcher_join_muc (connection, room, timestamp);
956 empathy_dispatcher_join_muc (account, room, timestamp);
924957 }
925958
926959 typedef struct
9781011 case TP_CONNECTION_STATUS_CONNECTED:
9791012 /* We can join the room */
9801013 break;
1014
1015 default:
1016 g_assert_not_reached ();
9811017 }
9821018
9831019 join_chatroom (ctx->chatroom, ctx->timestamp);
14901526 gboolean show_offline;
14911527 gchar *filename;
14921528 GSList *l;
1529 GtkTreeModel *model;
14931530
14941531 priv = window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window,
14951532 EMPATHY_TYPE_MAIN_WINDOW, EmpathyMainWindowPriv);
15181555 "view_show_map", &show_map_widget,
15191556 "room_join_favorites", &priv->room_join_favorites,
15201557 "presence_toolbar", &priv->presence_toolbar,
1558 "notebook", &priv->notebook,
1559 "no_entry_label", &priv->no_entry_label,
15211560 "roster_scrolledwindow", &sw,
15221561 NULL);
15231562 g_free (filename);
15581597 g_object_ref (priv->ui_manager);
15591598 g_object_unref (gui);
15601599
1561 #if !HAVE_LIBCHAMPLAIN
1600 #ifndef HAVE_LIBCHAMPLAIN
15621601 gtk_action_set_visible (show_map_widget, FALSE);
15631602 #endif
15641603
16511690 FALSE, TRUE, 0);
16521691 g_signal_connect_swapped (window, "map",
16531692 G_CALLBACK (gtk_widget_grab_focus), priv->individual_view);
1693
1694 /* Connect to proper signals to check if contact list is empty or not */
1695 model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->individual_view));
1696 priv->empty = TRUE;
1697 g_signal_connect (model, "row-inserted",
1698 G_CALLBACK (main_window_row_inserted_cb),
1699 window);
1700 g_signal_connect (model, "row-deleted",
1701 G_CALLBACK (main_window_row_deleted_cb),
1702 window);
16541703
16551704 /* Load user-defined accelerators. */
16561705 main_window_accels_load ();
301301 </packing>
302302 </child>
303303 <child>
304 <object class="GtkScrolledWindow" id="roster_scrolledwindow">
304 <object class="GtkNotebook" id="notebook">
305305 <property name="visible">True</property>
306306 <property name="can_focus">True</property>
307 <property name="has_focus">True</property>
308 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
309 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
307 <property name="show_tabs">False</property>
308 <property name="show_border">False</property>
310309 <child>
311 <placeholder/>
310 <object class="GtkLabel" id="no_entry_label">
311 <property name="visible">True</property>
312 <property name="yalign">0.30000001192092896</property>
313 </object>
314 <packing>
315 <property name="position">0</property>
316 </packing>
317 </child>
318 <child>
319 <object class="GtkScrolledWindow" id="roster_scrolledwindow">
320 <property name="visible">True</property>
321 <property name="can_focus">True</property>
322 <property name="has_focus">True</property>
323 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
324 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
325 <child>
326 <placeholder/>
327 </child>
328 </object>
329 <packing>
330 <property name="position">1</property>
331 </packing>
312332 </child>
313333 </object>
314334 <packing>
713713 new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog)
714714 {
715715 EmpathyAccountChooser *account_chooser;
716 TpConnection *connection;
716 TpAccount *account;
717717 const gchar *room;
718718 const gchar *server = NULL;
719719 gchar *room_name = NULL;
722722 server = gtk_entry_get_text (GTK_ENTRY (dialog->entry_server));
723723
724724 account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser);
725 connection = empathy_account_chooser_get_connection (account_chooser);
725 account = empathy_account_chooser_get_account (account_chooser);
726726
727727 if (!EMP_STR_EMPTY (server)) {
728728 room_name = g_strconcat (room, "@", server, NULL);
733733 g_strstrip (room_name);
734734
735735 DEBUG ("Requesting channel for '%s'", room_name);
736 empathy_dispatcher_join_muc (connection, room_name,
736 empathy_dispatcher_join_muc (account, room_name,
737737 gtk_get_current_event_time ());
738738
739739 g_free (room_name);
5959 GtkWidget *checkbutton_separate_chat_windows;
6060 GtkWidget *checkbutton_events_notif_area;
6161 GtkWidget *checkbutton_autoconnect;
62 GtkWidget *checkbutton_logging;
6263
6364 GtkWidget *checkbutton_sounds_enabled;
6465 GtkWidget *checkbutton_sounds_disabled_away;
8485 GSettings *gsettings_notify;
8586 GSettings *gsettings_sound;
8687 GSettings *gsettings_ui;
88 GSettings *gsettings_logger;
8789 };
8890
8991 static void preferences_setup_widgets (EmpathyPreferences *preferences);
293295 priv->checkbutton_location_reduce_accuracy,
294296 "sensitive",
295297 G_SETTINGS_BIND_GET);
298
299 g_settings_bind (priv->gsettings_logger,
300 EMPATHY_PREFS_LOGGER_ENABLED,
301 priv->checkbutton_logging,
302 "active",
303 G_SETTINGS_BIND_DEFAULT);
296304 }
297305
298306 static void
836844 g_object_unref (priv->gsettings_notify);
837845 g_object_unref (priv->gsettings_sound);
838846 g_object_unref (priv->gsettings_ui);
847 g_object_unref (priv->gsettings_logger);
839848
840849 G_OBJECT_CLASS (empathy_preferences_parent_class)->finalize (self);
841850 }
885894 "checkbutton_separate_chat_windows", &priv->checkbutton_separate_chat_windows,
886895 "checkbutton_events_notif_area", &priv->checkbutton_events_notif_area,
887896 "checkbutton_autoconnect", &priv->checkbutton_autoconnect,
897 "checkbutton_logging", &priv->checkbutton_logging,
888898 "checkbutton_notifications_enabled", &priv->checkbutton_notifications_enabled,
889899 "checkbutton_notifications_disabled_away", &priv->checkbutton_notifications_disabled_away,
890900 "checkbutton_notifications_focus", &priv->checkbutton_notifications_focus,
913923 priv->gsettings_notify = g_settings_new (EMPATHY_PREFS_NOTIFICATIONS_SCHEMA);
914924 priv->gsettings_sound = g_settings_new (EMPATHY_PREFS_SOUNDS_SCHEMA);
915925 priv->gsettings_ui = g_settings_new (EMPATHY_PREFS_UI_SCHEMA);
926 priv->gsettings_logger = g_settings_new (EMPATHY_PREFS_LOGGER_SCHEMA);
916927
917928 preferences_themes_setup (preferences);
918929
931942 }
932943
933944 page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), 3);
934 #if HAVE_GEOCLUE
945 #ifdef HAVE_GEOCLUE
935946 gtk_widget_show (page);
936947 #else
937948 gtk_widget_hide (page);
130130 </object>
131131 <packing>
132132 <property name="position">2</property>
133 </packing>
134 </child>
135 <child>
136 <object class="GtkCheckButton" id="checkbutton_logging">
137 <property name="label" translatable="yes">Log conversations</property>
138 <property name="visible">True</property>
139 <property name="can_focus">True</property>
140 <property name="receives_default">False</property>
141 <property name="use_underline">True</property>
142 <property name="active">True</property>
143 <property name="draw_indicator">True</property>
144 </object>
145 <packing>
146 <property name="position">3</property>
133147 </packing>
134148 </child>
135149 </object>
452466 </child>
453467 <child>
454468 <object class="GtkCheckButton" id="checkbutton_location_reduce_accuracy">
455 <property name="label" translatable="yes">_Reduce location accuracy</property>
469 <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>
456470 <property name="visible">True</property>
457471 <property name="can_focus">True</property>
458472 <property name="receives_default">False</property>
3131 #include <gdk/gdkx.h>
3232 #include <unique/unique.h>
3333
34 #if HAVE_LIBCHAMPLAIN
34 #ifdef HAVE_LIBCHAMPLAIN
3535 #include <clutter-gtk/clutter-gtk.h>
3636 #endif
3737
5353 #include <libempathy/empathy-connectivity.h>
5454 #include <libempathy/empathy-connection-managers.h>
5555 #include <libempathy/empathy-dispatcher.h>
56 #include <libempathy/empathy-dispatch-operation.h>
5756 #include <libempathy/empathy-ft-factory.h>
5857 #include <libempathy/empathy-gsettings.h>
5958 #include <libempathy/empathy-tp-chat.h>
7978 static void account_manager_ready_cb (GObject *source_object,
8079 GAsyncResult *result,
8180 gpointer user_data);
82
83 static void
84 dispatch_cb (EmpathyDispatcher *dispatcher,
85 EmpathyDispatchOperation *operation,
86 gpointer user_data)
87 {
88 GQuark channel_type;
89
90 channel_type = empathy_dispatch_operation_get_channel_type_id (operation);
91
92 if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER)
93 {
94 EmpathyFTFactory *factory;
95
96 factory = empathy_ft_factory_dup_singleton ();
97
98 /* if the operation is not incoming, don't claim it,
99 * as it might have been triggered by another client, and
100 * we are observing it.
101 */
102 if (empathy_dispatch_operation_is_incoming (operation))
103 empathy_ft_factory_claim_channel (factory, operation);
104 }
105 }
10681
10782 static void
10883 use_conn_notify_cb (GSettings *gsettings,
227202 return UNIQUE_RESPONSE_OK;
228203 }
229204
205 static gboolean show_version_cb (const char *option_name,
206 const char *value,
207 gpointer data,
208 GError **error) G_GNUC_NORETURN;
209
230210 static gboolean
231211 show_version_cb (const char *option_name,
232212 const char *value,
236216 g_print ("%s\n", PACKAGE_STRING);
237217
238218 exit (EXIT_SUCCESS);
239
240 return FALSE;
241219 }
242220
243221 static void
309287 g_object_unref (gsettings);
310288 }
311289
312 static EmpathyDispatcher *
313 setup_dispatcher (void)
314 {
315 EmpathyDispatcher *d;
316 GPtrArray *filters;
317 struct {
318 const gchar *channeltype;
319 TpHandleType handletype;
320 } types[] = {
321 /* file transfer to contacts */
322 { TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER, TP_HANDLE_TYPE_CONTACT },
323 };
324 GHashTable *asv;
325 guint i;
326
327 /* Setup the an extended Client.Handler that matches everything we can do */
328 filters = g_ptr_array_new ();
329 for (i = 0 ; i < G_N_ELEMENTS (types); i++)
330 {
331 asv = tp_asv_new (
332 TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING, types[i].channeltype,
333 TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_INT, types[i].handletype,
334 NULL);
335
336 g_ptr_array_add (filters, asv);
337 }
338
339 d = empathy_dispatcher_new (PACKAGE_NAME"MoreThanMeetsTheEye", filters, NULL);
340
341 g_ptr_array_foreach (filters, (GFunc) g_hash_table_destroy, NULL);
342 g_ptr_array_free (filters, TRUE);
343
344 return d;
345 }
346
347290 static void
348291 account_status_changed_cb (TpAccount *account,
349292 guint old_status,
353296 GHashTable *details,
354297 EmpathyChatroom *room)
355298 {
356 TpConnection *conn;
357
358 conn = tp_account_get_connection (account);
359 if (conn == NULL)
299 if (new_status != TP_CONNECTION_STATUS_CONNECTED)
360300 return;
361301
362 empathy_dispatcher_join_muc (conn,
363 empathy_chatroom_get_room (room), EMPATHY_DISPATCHER_NON_USER_ACTION);
302 empathy_dispatcher_join_muc (account,
303 empathy_chatroom_get_room (room), TP_USER_ACTION_TIME_NOT_USER_ACTION);
364304 }
365305
366306 static void
407347 }
408348 else
409349 {
410 empathy_dispatcher_join_muc (conn,
350 empathy_dispatcher_join_muc (account,
411351 empathy_chatroom_get_room (room),
412 EMPATHY_DISPATCHER_NON_USER_ACTION);
352 TP_USER_ACTION_TIME_NOT_USER_ACTION);
413353 }
414354 }
415355
444384 int
445385 main (int argc, char *argv[])
446386 {
447 #if HAVE_GEOCLUE
387 #ifdef HAVE_GEOCLUE
448388 EmpathyLocationManager *location_manager = NULL;
449389 #endif
450390 EmpathyStatusIcon *icon;
484424
485425 /* Init */
486426 g_thread_init (NULL);
427
428 #ifdef HAVE_LIBCHAMPLAIN
429 gtk_clutter_init (&argc, &argv);
430 #endif
431
487432 empathy_init ();
488433
489434 optcontext = g_option_context_new (N_("- Empathy IM Client"));
490435 g_option_context_add_group (optcontext, gtk_get_option_group (TRUE));
491 #if HAVE_LIBCHAMPLAIN
492 g_option_context_add_group (optcontext, clutter_get_option_group ());
493 #endif
494436 g_option_context_add_main_entries (optcontext, options, GETTEXT_PACKAGE);
495437
496438 if (!g_option_context_parse (optcontext, &argc, &argv, &error)) {
551493 tp_account_manager_prepare_async (account_manager, NULL,
552494 account_manager_ready_cb, NULL);
553495
554 /* Handle channels */
555 dispatcher = setup_dispatcher ();
556 g_signal_connect (dispatcher, "dispatch", G_CALLBACK (dispatch_cb), NULL);
496 /* The EmpathyDispatcher doesn't dispatch anything any more but we have to
497 * keep it around as we still use it to request channels */
498 dispatcher = empathy_dispatcher_dup_singleton ();
557499
558500 migrate_config_to_xdg_dir ();
559501
591533 g_signal_connect (ft_factory, "new-incoming-transfer",
592534 G_CALLBACK (new_incoming_transfer_cb), NULL);
593535
536 if (!empathy_ft_factory_register (ft_factory, &error))
537 {
538 g_warning ("Failed to register FileTransfer handler: %s", error->message);
539 g_error_free (error);
540 }
541
594542 /* Location mananger */
595 #if HAVE_GEOCLUE
543 #ifdef HAVE_GEOCLUE
596544 location_manager = empathy_location_manager_dup_singleton ();
597545 #endif
598546
612560 g_object_unref (log_manager);
613561 g_object_unref (dispatcher);
614562 g_object_unref (chatroom_manager);
615 #if HAVE_GEOCLUE
563 #ifdef HAVE_GEOCLUE
616564 g_object_unref (location_manager);
617565 #endif
618566 g_object_unref (ft_factory);
1111 static GtkWidget *window = NULL;
1212
1313 static void
14 chat_cb (EmpathyDispatchOperation *dispatch,
15 const GError *error,
16 gpointer user_data)
17 {
18 GtkWidget *dialog;
19
20 if (error != NULL)
21 {
22 dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL,
23 GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s",
24 error->message ? error->message : "No error message");
25
26 gtk_dialog_run (GTK_DIALOG (dialog));
27 }
28
29 gtk_widget_destroy (window);
30 }
31
32 static void
3314 clicked_cb (GtkButton *button,
3415 gpointer data)
3516 {
4122 if (!contact)
4223 return;
4324
44 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time (),
45 chat_cb, NULL);
25 empathy_dispatcher_chat_with_contact (contact, gtk_get_current_event_time ());
4626
4727 g_object_unref (contact);
4828 }