From 1b7857fc8136af71c8d623c68748eec0cb6905d2 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 4 Mar 2013 11:13:14 +0100 Subject: [PATCH 001/177] Fix one more possible crash in TunnelManager if the ip address is NULL. --- coreapi/TunnelManager.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coreapi/TunnelManager.cc b/coreapi/TunnelManager.cc index 4828bf114..d1020b1b2 100644 --- a/coreapi/TunnelManager.cc +++ b/coreapi/TunnelManager.cc @@ -102,6 +102,10 @@ int TunnelManager::eXosipSelect(int max_fds, fd_set *s1, fd_set *s2, fd_set *s3, void TunnelManager::addServer(const char *ip, int port,unsigned int udpMirrorPort,unsigned int delay) { + if (ip == NULL) { + ip = ""; + ms_warning("Adding tunnel server with empty ip, it will not work!"); + } addServer(ip,port); mUdpMirrorClients.push_back(UdpMirrorClient(ServerAddr(ip,udpMirrorPort),delay)); } From 7f127269fbfe22d211fb6ea8429da583e766a23d Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 4 Mar 2013 14:36:51 +0100 Subject: [PATCH 002/177] Update oRTP and mediastreamer2 submodules. --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index 8d85a5ded..b2ddf6ece 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 8d85a5ded3b18e2d3d4ba22ee75e0f1ef9c0f739 +Subproject commit b2ddf6ece0aede9c602cfb39d3f43f177c9dbf7e diff --git a/oRTP b/oRTP index b055a5050..16db79654 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit b055a505042c4420e104ce81a09790c5373f62bb +Subproject commit 16db796543aa4cf0e44bb022f5556d7536e60c34 From 5e0ef20b574f144d10302b0451c7783aec8cbd23 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 5 Mar 2013 11:38:36 +0100 Subject: [PATCH 003/177] update ms2 and ortp --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index b2ddf6ece..a77366122 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit b2ddf6ece0aede9c602cfb39d3f43f177c9dbf7e +Subproject commit a77366122ae4366914fb578bd8f28878f7f521be diff --git a/oRTP b/oRTP index 16db79654..20b527144 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 16db796543aa4cf0e44bb022f5556d7536e60c34 +Subproject commit 20b527144f9850dd9065d96db7a20244e8a8b227 From b458bf95eb2554b110e5ed299a72c34827ef423d Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 5 Mar 2013 11:52:07 +0100 Subject: [PATCH 004/177] merge patch fixing gnome notifications --- gtk/main.c | 8 ++++---- po/de.po | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gtk/main.c b/gtk/main.c index dab29bda0..242b7f0be 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1118,13 +1118,13 @@ void linphone_gtk_notify(LinphoneCall *call, const char *msg){ NotifyNotification *n; switch(linphone_call_get_state(call)){ case LinphoneCallError: - make_notification(_("Call error"),body=g_markup_printf_escaped("%s\n%s",msg,remote)); + make_notification(_("Call error"),body=g_markup_printf_escaped("%s\n%s",msg,remote)); break; case LinphoneCallEnd: - make_notification(_("Call ended"),body=g_markup_printf_escaped("%s",remote)); + make_notification(_("Call ended"),body=g_markup_printf_escaped("%s",remote)); break; case LinphoneCallIncomingReceived: - n=build_notification(_("Incoming call"),body=g_markup_printf_escaped("%s",remote)); + n=build_notification(_("Incoming call"),body=g_markup_printf_escaped("%s",remote)); if (notify_actions_supported()) { notify_notification_add_action (n,"answer", _("Answer"), NOTIFY_ACTION_CALLBACK(linphone_gtk_answer_clicked),NULL,NULL); @@ -1134,7 +1134,7 @@ void linphone_gtk_notify(LinphoneCall *call, const char *msg){ show_notification(n); break; case LinphoneCallPausedByRemote: - make_notification(_("Call paused"),body=g_markup_printf_escaped(_("by %s"),remote)); + make_notification(_("Call paused"),body=g_markup_printf_escaped(_("by %s"),remote)); break; default: break; diff --git a/po/de.po b/po/de.po index 6a0b322f7..bb68557f4 100644 --- a/po/de.po +++ b/po/de.po @@ -163,8 +163,8 @@ msgstr "Anruf wird gehalten" #: ../gtk/main.c:1067 #, c-format -msgid "by %s" -msgstr "von %s" +msgid "by %s" +msgstr "von %s" #: ../gtk/main.c:1116 #, c-format From e2788cf307ebcbd22ce706326406b291dfee24cf Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 6 Mar 2013 08:42:04 +0100 Subject: [PATCH 005/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index a77366122..e5f7137b7 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit a77366122ae4366914fb578bd8f28878f7f521be +Subproject commit e5f7137b7206ddc4f2803cde0f3316b90977bd6a From 5046f9388b544f78c92c00de9597e7284d97f0b9 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 6 Mar 2013 11:36:25 +0100 Subject: [PATCH 006/177] Update upnp call stats on session destruction --- coreapi/upnp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 8aead382c..240c34b38 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -1109,7 +1109,10 @@ void linphone_upnp_session_destroy(UpnpSession *session) { linphone_upnp_context_send_remove_port_binding(lc->upnp, session->video->rtcp, TRUE); } } - + + session->call->stats[LINPHONE_CALL_STATS_AUDIO].upnp_state = LinphoneUpnpStateKo; + session->call->stats[LINPHONE_CALL_STATS_VIDEO].upnp_state = LinphoneUpnpStateKo; + linphone_upnp_stream_destroy(session->audio); linphone_upnp_stream_destroy(session->video); ms_free(session); From 68d0139f5a6f375749fda3c4d16863538cbd5e19 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 6 Mar 2013 14:27:11 +0100 Subject: [PATCH 007/177] linphone_call_log_video_enabled, update MS2 to fix IOS display orientation for Linphone iOS branch 1.x --- coreapi/linphonecore.c | 7 ++++++- coreapi/linphonecore.h | 1 + mediastreamer2 | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index a33328f03..69dc26a1e 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -366,7 +366,12 @@ int linphone_call_log_get_duration(LinphoneCallLog *cl){ float linphone_call_log_get_quality(LinphoneCallLog *cl){ return cl->quality; } - +/** + * return true if video was enabled at the end of the call + */ +LinphoneCallStatus linphone_call_log_video_enabled(LinphoneCallLog *cl) { + return cl->video_enabled; +} /** @} */ void linphone_call_log_destroy(LinphoneCallLog *cl){ diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 2c2168646..97d1663b5 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -161,6 +161,7 @@ LinphoneAddress *linphone_call_log_get_to(LinphoneCallLog *cl); LinphoneAddress *linphone_call_log_get_remote_address(LinphoneCallLog *cl); LinphoneCallDir linphone_call_log_get_dir(LinphoneCallLog *cl); LinphoneCallStatus linphone_call_log_get_status(LinphoneCallLog *cl); +LinphoneCallStatus linphone_call_log_video_enabled(LinphoneCallLog *cl); time_t linphone_call_log_get_start_date(LinphoneCallLog *cl); int linphone_call_log_get_duration(LinphoneCallLog *cl); float linphone_call_log_get_quality(LinphoneCallLog *cl); diff --git a/mediastreamer2 b/mediastreamer2 index e5f7137b7..a824c4739 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit e5f7137b7206ddc4f2803cde0f3316b90977bd6a +Subproject commit a824c473919ab993e536e9f2d29471332e68280e From 800e0a3f45107be37ac8aa498243e8d5c93e728e Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 6 Mar 2013 15:02:34 +0100 Subject: [PATCH 008/177] change: on mac, use macport's gtk-osx-application instead of ige-mac-integration. --- README.macos | 2 +- configure.ac | 2 +- gtk/main.c | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.macos b/README.macos index 1648a3135..2c64ea1b1 100644 --- a/README.macos +++ b/README.macos @@ -33,7 +33,7 @@ You need: - Install gtk. It is recommended to use the quartz backend for better integration. $ port install gtk2 +quartz +no_x11 - $ port install ige-mac-integration + $ port install gtk-osx-application -python27 $ port install hicolor-icon-theme - Compile and install the tunnel diff --git a/configure.ac b/configure.ac index 43efbff30..2e2e56232 100644 --- a/configure.ac +++ b/configure.ac @@ -229,7 +229,7 @@ AC_ARG_ENABLE(gtk_ui, if test "$gtk_ui" = "true" ; then PKG_CHECK_MODULES(LIBGTK, gtk+-2.0 >= 2.18.0 gthread-2.0) if test "$enable_x11" = "false" ; then - PKG_CHECK_MODULES(LIBGTKMAC,[ige-mac-integration >= 0.9.7 ]) + PKG_CHECK_MODULES(LIBGTKMAC,[gtk-mac-integration >= 2.0.1]) AC_DEFINE([HAVE_GTK_OSX],[1],[Defined when gtk osx is used]) fi else diff --git a/gtk/main.c b/gtk/main.c index 242b7f0be..b31396b08 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1419,10 +1419,10 @@ static gboolean do_icon_blink(GtkStatusIcon *gi){ void linphone_gtk_status_icon_set_blinking(gboolean val){ #ifdef HAVE_GTK_OSX static gint attention_id; - GtkOSXApplication *theMacApp=(GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL); + GtkosxApplication *theMacApp=gtkosx_application_get(); if (val) - attention_id=gtk_osxapplication_attention_request(theMacApp,CRITICAL_REQUEST); - else gtk_osxapplication_cancel_attention_request(theMacApp,attention_id); + attention_id=gtkosx_application_attention_request(theMacApp,CRITICAL_REQUEST); + else gtkosx_application_cancel_attention_request(theMacApp,attention_id); #else if (icon!=NULL){ guint tout; @@ -1728,10 +1728,10 @@ static void linphone_gtk_init_main_window(){ #ifdef HAVE_GTK_OSX { GtkWidget *menubar=linphone_gtk_get_widget(main_window,"menubar1"); - GtkOSXApplication *theMacApp = (GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL); - gtk_osxapplication_set_menu_bar(theMacApp,GTK_MENU_SHELL(menubar)); + GtkosxApplication *theMacApp = gtkosx_application_get(); + gtkosx_application_set_menu_bar(theMacApp,GTK_MENU_SHELL(menubar)); gtk_widget_hide(menubar); - gtk_osxapplication_ready(theMacApp); + gtkosx_application_ready(theMacApp); } g_signal_connect(G_OBJECT(main_window), "window-state-event",G_CALLBACK(on_window_state_event), NULL); #endif @@ -1936,7 +1936,7 @@ int main(int argc, char *argv[]){ add_pixmap_directory(PACKAGE_DATA_DIR "/pixmaps/linphone"); #ifdef HAVE_GTK_OSX - GtkOSXApplication *theMacApp = (GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL); + GtkosxApplication *theMacApp = gtkosx_application_get(); g_signal_connect(G_OBJECT(theMacApp),"NSApplicationDidBecomeActive",(GCallback)linphone_gtk_show_main_window,NULL); g_signal_connect(G_OBJECT(theMacApp),"NSApplicationWillTerminate",(GCallback)gtk_main_quit,NULL); /*never block termination:*/ From 74e9abe77692b5462bb8b7ec21d5a07734dde10a Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 6 Mar 2013 16:47:48 +0100 Subject: [PATCH 009/177] fix for new version of pango in macports. Macport upgrade required. --- Makefile.am | 2 +- build/macos/environment.sh | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index f871d46a8..36466ab9e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -220,7 +220,7 @@ bundle: $(LIBICONV_HACK) printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \ > $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc cp -f $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig - sed -e 's:@executable_path/../Resources:../..:g' $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig > $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules + sed -e 's:@executable_path.*/::g' $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig > $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules cp -f $(LIBICONV_HACK) $(BUNDLEDIR)/Contents/Resources/lib/. cd $(BUNDLEDIR)/.. && rm -f $(MACAPPZIP) && zip -r $(MACAPPZIP) $(MACAPPNAME) && cd - diff --git a/build/macos/environment.sh b/build/macos/environment.sh index 8d34ca02c..c2c672973 100644 --- a/build/macos/environment.sh +++ b/build/macos/environment.sh @@ -1,4 +1,5 @@ export EXTRA_ARGS="--workdir $bundle_res" -export GIO_EXTRA_MODULES="$bundle_res/lib/gio/modules" - +export GIO_EXTRA_MODULES="$bundle_lib/gio/modules" +export PANGO_LIBDIR="$bundle_lib" +export PANGO_SYSCONFDIR="$bundle_etc" From 974514eed431f34312d85fe7cbea017d420b5a5c Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 6 Mar 2013 18:09:40 +0100 Subject: [PATCH 010/177] Update README.macos --- README.macos | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/README.macos b/README.macos index 2c64ea1b1..3fb5106a3 100644 --- a/README.macos +++ b/README.macos @@ -8,56 +8,67 @@ You need: Download and install macports using its user friendly installer. - Install build time dependencies - $ port install automake autoconf libtool intltool + $ sudo port install automake autoconf libtool intltool - Install some linphone dependencies with macports - $ port install speex - $ port install libosip2 # WARNING: currently outdated in macport - $ port install libeXosip2 #WARNING: currently outdated in macport - $ port install ffmpeg-devel - $ port install libvpx - $ port install readline + $ sudo port install speex + $ sudo port install libosip2 # WARNING: currently outdated in macport + $ sudo port install libeXosip2 #WARNING: currently outdated in macport + $ sudo port install ffmpeg-devel -gpl2 + $ sudo port install libvpx + $ sudo port install readline - Install srtp (optional) for call encryption - $ port install srtp + $ sudo port install srtp If that fails, get from source: $ git clone git://git.linphone.org/srtp.git $ cd srtp && autoconf && ./configure --prefix=/opt/local && make libsrtp.a $ sudo make install - Install zrtpcpp (optional), for unbreakable call encryption - $ port install cmake + $ sudo port install cmake $ git clone git://git.linphone.org/zrtpcpp.git $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make $ sudo make install - Install gtk. It is recommended to use the quartz backend for better integration. - $ port install gtk2 +quartz +no_x11 - $ port install gtk-osx-application -python27 - $ port install hicolor-icon-theme + $ sudo port install gtk2 +quartz +no_x11 + $ sudo port install gtk-osx-application -python27 + $ sudo port install hicolor-icon-theme + +- Install additional librairies required for wizard (linphone.org account creation assistant) + $ sudo port install libsoup + + ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle ** + As a temporary workaround, build a newer version by yourself: + $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz + $ tar -xvzf glib-networking-2.34.2.tar.xz + $ cd glib-networking-2.34.2 + $ ./configure --prefix=/opt/local && make + $ sudo make install -- Compile and install the tunnel +- Compile and install the tunnel library (optional, proprietary extension only) -If you got the source code from git, run ./autogen.sh first + If you got the source code from git, run ./autogen.sh first -Then or otherwise, do: + Then or otherwise, do: $ ./configure --prefix=/opt/local && make && sudo make install - Compile linphone -If you got the source code from git, run ./autogen.sh first. + If you got the source code from git, run ./autogen.sh first. -Then or otherwise, do: + Then or otherwise, do: $ ./configure --prefix=/opt/local --with-readline=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp && make -Install to /opt/local + Install to /opt/local $ sudo make install -Done. + Done. If you want to generate a portable bundle, then install gtk-mac-bundler. Use git: From 8a9b9fcd1416a06d1ab5d6393dc981a3a8556082 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 7 Mar 2013 12:19:28 +0100 Subject: [PATCH 011/177] add message storage --- configure.ac | 19 +++ console/Makefile.am | 2 + coreapi/Makefile.am | 8 +- coreapi/callbacks.c | 1 + coreapi/chat.c | 48 ++++++- coreapi/linphonecore.c | 3 + coreapi/linphonecore.h | 4 +- coreapi/message_storage.c | 194 ++++++++++++++++++++++++++++ coreapi/private.h | 23 ++++ coreapi/sal.h | 4 +- coreapi/sal_eXosip2.c | 3 - coreapi/sal_eXosip2_presence.c | 21 +-- gtk/Makefile.am | 5 +- gtk/chat.c | 229 ++++++++++++++++----------------- gtk/main.c | 4 - 15 files changed, 418 insertions(+), 150 deletions(-) create mode 100644 coreapi/message_storage.c diff --git a/configure.ac b/configure.ac index 2e2e56232..890fcba2d 100644 --- a/configure.ac +++ b/configure.ac @@ -669,6 +669,24 @@ if test x$enable_tunnel = xtrue; then AC_SUBST(TUNNEL_LIBS) fi +AC_ARG_ENABLE(msg-storage, + [AS_HELP_STRING([--enable-msg-storage=[yes/no]], [Turn on compilation of message storage (default=yes)])], + [case "${enableval}" in + yes) enable_msg_storage=true ;; + no) enable_msg_storage=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-msg-storage) ;; + esac], + [enable_msg_storage=true] +) +AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue) +if test x$enable_msg_storage = xtrue; then + PKG_CHECK_MODULES(SQLITE3,[ sqlite3 >= 3.7.0],[],[ + AC_MSG_ERROR([sqlite3 required for message storage not found.])] ) + SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED" + AC_SUBST(SQLITE3_CFLAGS) + AC_SUBST(SQLITE3_LIBS) +fi + dnl check for db2html (docbook) to generate html user manual AC_CHECK_PROG(have_sgmltools, sgmltools, yes, no) @@ -781,6 +799,7 @@ printf "* %-30s %s\n" "GTK interface" $gtk_ui printf "* %-30s %s\n" "Account assistant" $build_wizard printf "* %-30s %s\n" "Console interface" $console_ui printf "* %-30s %s\n" "Tools" $build_tools +printf "* %-30s %s\n" "Message storage" $enable_msg_storage printf "* %-30s %s\n" "zRTP encryption (GPLv3)" $zrtp printf "* %-30s %s\n" "uPnP support" $build_upnp diff --git a/console/Makefile.am b/console/Makefile.am index 82ce998e5..976cbeafa 100644 --- a/console/Makefile.am +++ b/console/Makefile.am @@ -14,6 +14,7 @@ COMMON_CFLAGS=\ $(READLINE_CFLAGS) \ $(OSIP_CFLAGS) \ $(ORTP_CFLAGS) \ + $(SQLITE3_CFLAGS) \ $(MEDIASTREAMER_CFLAGS) if BUILD_CONSOLE @@ -28,6 +29,7 @@ linphonec_SOURCES=linphonec.c linphonec.h commands.c linphonec_CFLAGS=$(COMMON_CFLAGS) $(CONSOLE_FLAGS) linphonec_LDADD=$(top_builddir)/coreapi/liblinphone.la \ $(READLINE_LIBS) \ + $(SQLITE3_LIBS) \ $(X11_LIBS) if BUILD_WIN32 diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index 90a1c3202..bef0613b5 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -47,6 +47,7 @@ liblinphone_la_SOURCES=\ lsd.c linphonecore_utils.h \ ec-calibrator.c \ conference.c \ + message_storage.c \ $(GITVERSION_FILE) if BUILD_UPNP @@ -73,7 +74,9 @@ liblinphone_la_LIBADD= \ $(MEDIASTREAMER_LIBS) \ $(ORTP_LIBS) $(OPENSSL_LIBS) \ $(TUNNEL_LIBS) \ - $(LIBSOUP_LIBS) + $(LIBSOUP_LIBS) \ + $(SQLITE3_LIBS) + if BUILD_TESTS noinst_PROGRAMS=test_lsd test_ecc test_numbers @@ -106,7 +109,8 @@ AM_CFLAGS=\ $(IPV6_CFLAGS) \ -DORTP_INET6 \ $(VIDEO_CFLAGS) \ - $(TUNNEL_CFLAGS) + $(TUNNEL_CFLAGS) \ + $(SQLITE3_CFLAGS) if BUILD_WIZARD AM_CFLAGS+= -DBUILD_WIZARD diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 1c87f88ce..d65e53674 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -934,6 +934,7 @@ static void text_delivery_update(SalOp *op, SalTextDeliveryStatus status){ LinphoneChatMessage *chat_msg=(LinphoneChatMessage* )sal_op_get_user_pointer(op); const MSList* calls = linphone_core_get_calls(chat_msg->chat_room->lc); + linphone_core_set_message_state(chat_msg->chat_room,chat_msg->message,chatStatusSal2Linphone(status),chat_msg->time); if (chat_msg && chat_msg->cb) { chat_msg->cb(chat_msg ,chatStatusSal2Linphone(status) diff --git a/coreapi/chat.c b/coreapi/chat.c index b9894ea8f..5f79849dc 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -62,12 +62,26 @@ void linphone_chat_room_destroy(LinphoneChatRoom *cr){ ms_free(cr->peer); } +#ifdef WIN32 + +static inline char *my_ctime_r(const time_t *t, char *buf){ + strcpy(buf,ctime(t)); + return buf; +} + +#else +#define my_ctime_r ctime_r +#endif + static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage* msg){ const char *route=NULL; const char *identity=linphone_core_find_best_identity(cr->lc,cr->peer_url,&route); SalOp *op=NULL; LinphoneCall *call; char* content_type; + time_t t=time(NULL); + char buf[26]; + char *to; if (lp_config_get_int(cr->lc->config,"sip","chat_use_call_dialogs",0)){ if((call = linphone_core_get_call_by_remote_address(cr->lc,cr->peer))!=NULL){ @@ -82,6 +96,7 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM } } } + msg->time=t; if (op==NULL){ /*sending out of calls*/ op = sal_op_new(cr->lc->sal); @@ -94,11 +109,15 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM } if (msg->external_body_url) { content_type=ms_strdup_printf("message/external-body; access-type=URL; URL=\"%s\"",msg->external_body_url); - sal_message_send(op,identity,cr->peer,content_type, NULL); + sal_message_send(op,identity,cr->peer,content_type, NULL,my_ctime_r(&t,buf)); ms_free(content_type); } else { - sal_text_send(op, identity, cr->peer,msg->message); + sal_text_send(op, identity, cr->peer,msg->message,my_ctime_r(&t,buf)); } + to=linphone_address_as_string_uri_only (cr->peer_url); + linphone_core_set_history_message(cr,identity,to,OUTGOING,msg->message, + my_ctime_r(&t,buf),READ,LinphoneChatMessageStateInProgress); + ms_free(to); } /** @@ -130,8 +149,11 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag LinphoneChatRoom *cr=NULL; LinphoneAddress *addr; char *cleanfrom; + const char *to; + char *from; LinphoneChatMessage* msg; const SalCustomHeader *ch; + char buf[26]; addr=linphone_address_new(sal_msg->from); linphone_address_clean(addr); @@ -142,7 +164,9 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag } cr=NULL; } + to=linphone_core_get_identity(lc); cleanfrom=linphone_address_as_string(addr); + from=linphone_address_as_string_uri_only(addr); if (cr==NULL){ /* create a new chat room */ cr=linphone_core_create_chat_room(lc,cleanfrom); @@ -150,6 +174,7 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag msg = linphone_chat_room_create_message(cr, sal_msg->text); linphone_chat_message_set_from(msg, cr->peer_url); msg->time=sal_msg->time; + msg->state=LinphoneChatMessageStateDelivered; ch=sal_op_get_custom_header(op); if (ch) msg->custom_headers=sal_custom_header_clone(ch); @@ -158,7 +183,11 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag } linphone_address_destroy(addr); linphone_chat_room_message_received(cr,lc,msg); + linphone_core_set_history_message(cr,to,from,INCOMING, + msg->message,my_ctime_r(&msg->time,buf),NOT_READ, + LinphoneChatMessageStateDelivered); ms_free(cleanfrom); + ms_free(from); } /** @@ -215,6 +244,7 @@ LinphoneChatMessage* linphone_chat_room_create_message(LinphoneChatRoom *cr, con void linphone_chat_room_send_message2(LinphoneChatRoom *cr, LinphoneChatMessage* msg,LinphoneChatMessageStateChangeCb status_cb, void* ud) { msg->cb=status_cb; msg->cb_ud=ud; + msg->state=LinphoneChatMessageStateInProgress; _linphone_chat_room_send_message(cr, msg); } @@ -308,6 +338,15 @@ time_t linphone_chat_message_get_time(const LinphoneChatMessage* message) { return message->time; } +/** + * Get the state of the message + *@param message #LinphoneChatMessage obj + *@return #LinphoneChatMessageState + */ +LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessage* message) { + return message->state; +} + /** * Get text part of this message * @return text or NULL if no text. @@ -347,6 +386,9 @@ LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* msg) void* message_userdata; char* external_body_url; LinphoneAddress* from; + time_t time; + SalCustomHeader *custom_headers; + LinphoneChatMessageState state; };*/ LinphoneChatMessage* new_message = linphone_chat_room_create_message(msg->chat_room,msg->message); if (msg->external_body_url) new_message->external_body_url=ms_strdup(msg->external_body_url); @@ -354,6 +396,8 @@ LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* msg) new_message->cb_ud=msg->cb_ud; new_message->message_userdata=msg->message_userdata; new_message->cb=msg->cb; + new_message->time=msg->time; + new_message->state=msg->state; if (msg->from) new_message->from=linphone_address_clone(msg->from); return new_message; } diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 69dc26a1e..eac319061 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1306,6 +1306,9 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta #ifdef TUNNEL_ENABLED lc->tunnel=linphone_core_tunnel_new(lc); if (lc->tunnel) linphone_tunnel_configure(lc->tunnel); +#endif +#ifdef MSG_STORAGE_ENABLED + lc->db=linphone_message_storage_init(); #endif if (lc->vtable.display_status) lc->vtable.display_status(lc,_("Ready")); diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 97d1663b5..c1054922d 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -673,6 +673,7 @@ LinphoneCore* linphone_chat_room_get_lc(LinphoneChatRoom *cr); void linphone_chat_room_set_user_data(LinphoneChatRoom *cr, void * ud); void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr); +LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessage* message); const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state); LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* message); void linphone_chat_message_set_from(LinphoneChatMessage* message, const LinphoneAddress* from); @@ -1417,7 +1418,8 @@ int linphone_core_get_audio_dscp(const LinphoneCore *lc); void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp); int linphone_core_get_video_dscp(const LinphoneCore *lc); - +MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message); +void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read); #ifdef __cplusplus } diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c new file mode 100644 index 000000000..90665c26c --- /dev/null +++ b/coreapi/message_storage.c @@ -0,0 +1,194 @@ +/* +message_storage.c +Copyright (C) 2012 Belledonne Communications, Grenoble, France + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "private.h" +#include "linphonecore.h" + +#ifdef WIN32 + +static inline char *my_ctime_r(const time_t *t, char *buf){ + strcpy(buf,ctime(t)); + return buf; +} + +#else +#define my_ctime_r ctime_r +#endif + +#ifdef MSG_STORAGE_ENABLED + +#include "sqlite3.h" + +static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; +static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; + +#define CONFIG_FILE ".linphone-history.db" + +char *linphone_message_storage_get_config_file(const char *filename){ + const int path_max=1024; + char *config_file=(char *)malloc(path_max*sizeof(char)); + if (filename==NULL) filename=CONFIG_FILE; + /*try accessing a local file first if exists*/ + if (access(CONFIG_FILE,F_OK)==0){ + snprintf(config_file,path_max,"%s",filename); + }else{ +#ifdef WIN32 + const char *appdata=getenv("APPDATA"); + if (appdata){ + snprintf(config_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR); + CreateDirectory(config_file,NULL); + snprintf(config_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename); + } +#else + const char *home=getenv("HOME"); + if (home==NULL) home="."; + snprintf(config_file,path_max,"%s/%s",home,filename); +#endif + } + return config_file; +} + +void create_chat_message(char **argv, void *data){ + LinphoneChatRoom *cr = (LinphoneChatRoom *)data; + LinphoneChatMessage* new_message = linphone_chat_room_create_message(cr,argv[4]); + struct tm ret={0}; + char tmp1[80]={0}; + char tmp2[80]={0}; + + if(atoi(argv[3])==INCOMING){ + linphone_chat_message_set_from(new_message,linphone_address_new(argv[2])); + } else { + linphone_chat_message_set_from(new_message,linphone_address_new(argv[1])); + } + + if(argv[5]!=NULL){ + int i,j; + sscanf(argv[5],"%3c %3c%d%d:%d:%d %d",tmp1,tmp2,&ret.tm_mday, + &ret.tm_hour,&ret.tm_min,&ret.tm_sec,&ret.tm_year); + ret.tm_year-=1900; + for(i=0;i<7;i++) { + if(strcmp(tmp1,days[i])==0) ret.tm_wday=i; + } + for(j=0;j<12;j++) { + if(strcmp(tmp2,months[j])==0) ret.tm_mon=j; + } + } + new_message->time=argv[5]!=NULL ? mktime(&ret) : time(NULL); + new_message->state=atoi(argv[7]); + cr->messages_hist=ms_list_prepend(cr->messages_hist,(void *)new_message); +} + +static int callback(void *data, int argc, char **argv, char **colName){ + create_chat_message(argv,data); + return 0; +} + +void linphone_sql_request_message(sqlite3 *db,const char *stmt,void *data){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,stmt,callback,data,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +void linphone_sql_request(sqlite3* db,const char *stmt){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,stmt,0,0,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, + int direction, const char *message,const char *date, int read, int state){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", + local_contact,remote_contact,direction,message,date,read,state); + linphone_sql_request(lc->db,buf); +} + +void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char time_str[26]; + char *buf=sqlite3_mprintf("update history set status=%i where message = %Q and time = %Q;", + state,message,my_ctime_r(&date,time_str)); + linphone_sql_request(lc->db,buf); +} + +void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;", + read,from); + linphone_sql_request(lc->db,buf); +} + +MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + cr->messages_hist = NULL; + char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",to,nb_message); + linphone_sql_request_message(lc->db,buf,(void *)cr); + return cr->messages_hist; +} + +void linphone_close_storage(sqlite3* db){ + sqlite3_close(db); +} + +void linphone_create_table(sqlite3* db){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);", + 0,0,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +sqlite3 * linphone_message_storage_init(){ + int ret; + char *errmsg; + sqlite3 *db; + char *filename; + filename=linphone_message_storage_get_config_file(NULL); + ret=sqlite3_open(filename,&db); + if(ret != SQLITE_OK) { + printf("Error in the opening: %s.\n", errmsg); + sqlite3_close(db); + } + linphone_create_table(db); + return db; +} +#else + +void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, + int direction, const char *message,const char *date, int read, int state){ +} + +void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ +} + +void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ +} + +MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ + return NULL; +} +#endif \ No newline at end of file diff --git a/coreapi/private.h b/coreapi/private.h index 41d453df3..35578604f 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -44,6 +44,10 @@ extern "C" { #include "upnp.h" #endif //BUILD_UPNP +#ifdef MSG_STORAGE_ENABLED +#include "sqlite3.h" +#endif + #ifndef LIBLINPHONE_VERSION #define LIBLINPHONE_VERSION LINPHONE_VERSION #endif @@ -125,6 +129,7 @@ struct _LinphoneChatMessage { LinphoneAddress* from; time_t time; SalCustomHeader *custom_headers; + LinphoneChatMessageState state; }; typedef struct StunCandidate{ @@ -392,6 +397,7 @@ struct _LinphoneChatRoom{ char *peer; LinphoneAddress *peer_url; void * user_data; + MSList *messages_hist; }; @@ -610,6 +616,9 @@ struct _LinphoneCore LinphoneTunnel *tunnel; char* device_id; MSList *last_recv_msg_ids; +#ifdef MSG_STORAGE_ENABLED + sqlite3 *db; +#endif #ifdef BUILD_UPNP UpnpContext *upnp; #endif //BUILD_UPNP @@ -691,6 +700,20 @@ void linphone_call_params_uninit(LinphoneCallParams *params); int linphone_upnp_init(LinphoneCore *lc); void linphone_upnp_destroy(LinphoneCore *lc); +#define OUTGOING 0 +#define INCOMING 1 + +#define NOT_READ 0 +#define READ 1 + +#ifdef MSG_STORAGE_ENABLED +sqlite3 * linphone_message_storage_init(); +#endif +void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, + int direction, const char *message,const char *date, int read, int state); +void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state,time_t date); + + #ifdef __cplusplus } #endif diff --git a/coreapi/sal.h b/coreapi/sal.h index 25d8d20bc..ba232cca3 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -430,8 +430,8 @@ int sal_register_refresh(SalOp *op, int expires); int sal_unregister(SalOp *h); /*Messaging */ -int sal_text_send(SalOp *op, const char *from, const char *to, const char *text); -int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg); +int sal_text_send(SalOp *op, const char *from, const char *to, const char *text, const char*t); +int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg, const char*t); /*presence Subscribe/notify*/ int sal_subscribe_presence(SalOp *op, const char *from, const char *to); diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 1777c0d42..2ea0f9aff 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1800,7 +1800,6 @@ static void text_received(Sal *sal, eXosip_event_t *ev){ } }else ms_warning("No date header in SIP MESSAGE, we don't know when it was sent."); - content_type= osip_message_get_content_type(ev->request); if (!content_type) { ms_error("Could not get message because no content type"); @@ -1848,8 +1847,6 @@ static void text_received(Sal *sal, eXosip_event_t *ev){ osip_free(from); } - - static void other_request(Sal *sal, eXosip_event_t *ev){ ms_message("in other_request"); if (ev->request==NULL) return; diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index 1e49970bf..2670af472 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -81,21 +81,8 @@ void sal_remove_in_subscribe(Sal *sal, SalOp *op){ sal->in_subscribes=ms_list_remove(sal->in_subscribes,op); } -#ifdef WIN32 - -static inline char *my_ctime_r(const time_t *t, char *buf){ - strcpy(buf,ctime(t)); - return buf; -} - -#else -#define my_ctime_r ctime_r -#endif - -int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg){ +int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg, const char *t){ osip_message_t *sip=NULL; - time_t t=time(NULL); - char buf[26]; if(op->cid == -1) { @@ -111,7 +98,7 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co sal_op_get_from(op),sal_op_get_route(op)); if (sip!=NULL){ sal_exosip_add_custom_headers(sip,op->base.custom_headers); - osip_message_set_date(sip,my_ctime_r(&t,buf)); + osip_message_set_date(sip,t); osip_message_set_content_type(sip,content_type); if (msg) osip_message_set_body(sip,msg,strlen(msg)); sal_add_other(op->base.root,op,sip); @@ -141,8 +128,8 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co return 0; } -int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg) { - return sal_message_send(op,from,to,"text/plain",msg); +int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg,const char *t) { + return sal_message_send(op,from,to,"text/plain",msg,t); } /*presence Subscribe/notify*/ int sal_subscribe_presence(SalOp *op, const char *from, const char *to){ diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 831c69a8c..ba965b69a 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -55,7 +55,7 @@ linphone_SOURCES+= \ endif linphone_LDADD= $(top_builddir)/coreapi/liblinphone.la \ - $(LIBGTK_LIBS) $(NOTIFY1_LIBS) $(NOTIFY4_LIBS) $(LIBGTKMAC_LIBS) $(INTLLIBS) + $(LIBGTK_LIBS) $(NOTIFY1_LIBS) $(NOTIFY4_LIBS) $(LIBGTKMAC_LIBS) $(INTLLIBS) $(SQLITE3_LIBS) if BUILD_WIN32 @@ -79,7 +79,8 @@ AM_CFLAGS= -DIN_LINPHONE -I$(top_srcdir)/coreapi/ \ $(MEDIASTREAMER_CFLAGS) \ $(ORTP_CFLAGS) \ $(STRICT_OPTIONS) $(LIBGTK_CFLAGS) $(LIBGTKMAC_CFLAGS) $(IPV6_CFLAGS) \ - $(TUNNEL_CFLAGS) + $(TUNNEL_CFLAGS) \ + $(SQLITE3_CFLAGS) version_date.h: $(top_srcdir)/configure.ac diff --git a/gtk/chat.c b/gtk/chat.c index 76d34c2ff..159ddd8bc 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -29,15 +29,24 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *w=g_object_get_data(G_OBJECT(friendlist),"chatview"); int idx = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"idx")); + g_return_if_fail(w!=NULL); - gtk_notebook_remove_page (GTK_NOTEBOOK(nb),idx); + gtk_notebook_remove_page(GTK_NOTEBOOK(nb),idx); linphone_gtk_create_chat_picture(FALSE); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); - g_object_set_data(G_OBJECT(w),"from_message",NULL); + g_object_set_data(G_OBJECT(w),"from_message",NULL); g_object_set_data(G_OBJECT(w),"cr",NULL); gtk_widget_destroy(w); } +const char* get_display_name(const LinphoneAddress *from){ + const char *display=linphone_address_get_display_name(from); + if (display==NULL || display[0]=='\0') { + display=linphone_address_get_username(from); + } + return display; +} + GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr,const LinphoneAddress *uri){ GtkWidget *w=gtk_hbox_new (FALSE,0); GtkWidget *i=create_pixmap ("chat.png"); @@ -49,12 +58,7 @@ GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr,const LinphoneAddress *ur gtk_button_set_relief(GTK_BUTTON(b),GTK_RELIEF_NONE); gtk_widget_set_size_request(b,25,20); g_signal_connect_swapped(G_OBJECT(b),"clicked",G_CALLBACK(linphone_gtk_quit_chatroom),cr); - - const char *display=linphone_address_get_display_name(uri); - if (display==NULL || display[0]=='\0') { - display=linphone_address_get_username(uri); - } - l=gtk_label_new (display); + l=gtk_label_new (get_display_name(uri)); gtk_box_pack_start (GTK_BOX(w),i,FALSE,FALSE,0); gtk_box_pack_start (GTK_BOX(w),l,FALSE,FALSE,0); gtk_box_pack_end(GTK_BOX(w),b,TRUE,TRUE,0); @@ -75,81 +79,73 @@ void udpate_tab_chat_header(GtkWidget *chat_view,const LinphoneAddress *uri,Linp gtk_button_set_relief(GTK_BUTTON(b),GTK_RELIEF_NONE); gtk_widget_set_size_request(b,25,20); g_signal_connect_swapped(G_OBJECT(b),"clicked",G_CALLBACK(linphone_gtk_quit_chatroom),cr); - - const char *display=linphone_address_get_display_name(uri); - if (display==NULL || display[0]=='\0') { - display=linphone_address_get_username(uri); - } - l=gtk_label_new (display); + l=gtk_label_new (get_display_name(uri)); gtk_box_pack_start (GTK_BOX(w),i,FALSE,FALSE,0); gtk_box_pack_start (GTK_BOX(w),l,FALSE,FALSE,0); gtk_box_pack_end(GTK_BOX(w),b,TRUE,TRUE,0); - gtk_notebook_set_tab_label(notebook,chat_view,w); gtk_widget_show_all(w); - } void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, - const char *message, gboolean me,LinphoneChatRoom *cr, time_t t){ + gboolean me,LinphoneChatRoom *cr,LinphoneChatMessage *msg, gboolean hist){ GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview")); GtkTextBuffer *buffer=gtk_text_view_get_buffer(text); - GtkTextIter iter,begin,end; - gtk_text_buffer_get_start_iter(buffer,&begin); + GtkTextIter iter,begin; int off; + char *from_str=linphone_address_as_string_uri_only(from); + char *from_message=(char *)g_object_get_data(G_OBJECT(w),"from_message"); + GList *list=g_object_get_data(G_OBJECT(w),"list"); + time_t t; + + gtk_text_buffer_get_start_iter(buffer,&begin); gtk_text_buffer_get_end_iter(buffer,&iter); off=gtk_text_iter_get_offset(&iter); - GList *list=g_object_get_data(G_OBJECT(w),"list"); - - if(g_strcmp0((char *)g_object_get_data(G_OBJECT(w),"from_message"),linphone_address_as_string(from))!=0){ + if(g_strcmp0(from_message,from_str)!=0){ gtk_text_buffer_get_iter_at_offset(buffer,&iter,off); - const char *display=linphone_address_get_display_name(from); - if (display==NULL || display[0]=='\0') { - display=linphone_address_get_username(from); - } gtk_text_buffer_get_end_iter(buffer,&iter); - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,display,-1,"bold",me ? "bg":NULL,NULL); + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,get_display_name(from),-1,"bold",me ? "bg":NULL,NULL); gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert_with_tags_by_name(buffer,&iter," : ",-1,"bold",me ? "bg":NULL,NULL); gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); - g_object_set_data(G_OBJECT(w),"from_message",linphone_address_as_string(from)); + g_object_set_data(G_OBJECT(w),"from_message",from_str); } - gtk_text_buffer_get_end_iter(buffer,&iter); - gtk_text_buffer_get_iter_at_offset(buffer,&begin,off); - gtk_text_buffer_get_end_iter(buffer,&iter); - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,message,-1,"margin",me ? "bg":NULL,NULL); + gtk_text_buffer_get_end_iter(buffer,&iter); + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,linphone_chat_message_get_text(msg),-1,"margin",me ? "bg":NULL,NULL); gtk_text_buffer_get_end_iter(buffer,&iter); - gtk_text_buffer_insert(buffer,&iter,"\n",-1); - gtk_text_buffer_get_bounds (buffer, &begin, &end); - GHashTable *hash=(GHashTable *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"history"); - if(me){ - g_hash_table_insert(hash,linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)), - (gpointer)gtk_text_buffer_get_text(buffer,&begin,&end,FALSE)); - } else { - g_hash_table_insert(hash,linphone_address_as_string_uri_only(from), - (gpointer)gtk_text_buffer_get_text(buffer,&begin,&end,FALSE)); - } - g_object_set_data(G_OBJECT(linphone_gtk_get_main_window()),"history",hash); - - + gtk_text_buffer_insert(buffer,&iter,"\n",-1);; gtk_text_buffer_get_end_iter(buffer,&iter); - if(me){ - list=g_list_append(list,GINT_TO_POINTER(gtk_text_iter_get_line(&iter))); - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Sending .. ",-1, - "italic","right","small","font_grey","bg",NULL); - g_object_set_data(G_OBJECT(w),"list",list); - } else { - struct tm *tm=localtime(&t); - char buf[80]; - strftime(buf,80,"Send at %H:%M",tm); - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1, - "italic","right","small","font_grey",NULL); + t=linphone_chat_message_get_time(msg); + switch (linphone_chat_message_get_state (msg)){ + case LinphoneChatMessageStateInProgress: + { + list=g_list_append(list,GINT_TO_POINTER(gtk_text_iter_get_line(&iter))); + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Sending .. ",-1, + "right","small","italic","font_grey","bg",NULL); + g_object_set_data(G_OBJECT(w),"list",list); + break; + } + case LinphoneChatMessageStateDelivered: + { + struct tm *tm=localtime(&t); + char buf[80]; + strftime(buf,80,"%H:%M",tm); + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1, + "right","small","italic","font_grey",me ? "bg":NULL,NULL); + break; + } + case LinphoneChatMessageStateNotDelivered: + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Error",-1, + "right","small","italic","font_grey",me ? "bg":NULL,NULL); + break; + default : gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Sending ..",-1, + "right","small","italic","font_grey",me ? "bg":NULL,NULL); } gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); - gtk_text_view_scroll_mark_onscreen(text,mark); + gtk_text_view_scroll_mark_onscreen(text,mark); } const LinphoneAddress* linphone_gtk_get_used_identity(){ @@ -160,8 +156,6 @@ const LinphoneAddress* linphone_gtk_get_used_identity(){ else return linphone_core_get_primary_contact_parsed(lc); } - -/* function in dev for displaying ack*/ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessage *msg){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); @@ -181,7 +175,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag gtk_text_buffer_get_iter_at_line_offset(b,&start, GPOINTER_TO_INT(g_list_nth_data(list,0)), gtk_text_iter_get_chars_in_line(&iter)-1); - }else { + }else{ gtk_text_buffer_get_iter_at_line_offset(b,&start, GPOINTER_TO_INT(g_list_nth_data(list,0)),0); } @@ -209,7 +203,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag default : result="Sending .."; } gtk_text_buffer_insert_with_tags_by_name(b,&iter,result,-1, - "italic","right","small","font_grey","bg",NULL); + "right","small","italic","font_grey","bg",NULL); list=g_list_remove(list,g_list_nth_data(list,0)); g_object_set_data(G_OBJECT(page),"list",list); } @@ -231,59 +225,66 @@ void linphone_gtk_send_text(){ LinphoneChatMessage *msg; msg=linphone_chat_room_create_message(cr,entered); linphone_chat_room_send_message2(cr,msg,on_chat_state_changed,NULL); - linphone_gtk_push_text(w, - linphone_gtk_get_used_identity(), - entered,TRUE,cr,linphone_chat_message_get_time(msg)); + linphone_gtk_push_text(w,linphone_gtk_get_used_identity(), + TRUE,cr,msg,FALSE); gtk_entry_set_text(GTK_ENTRY(entry),""); } } +void display_history_message(GtkWidget *chat_view,MSList *messages,const LinphoneAddress *with){ + if(messages != NULL){ + MSList *it; + char *from_str; + char *with_str; + for(it=messages;it!=NULL;it=it->next){ + LinphoneChatMessage *msg=(LinphoneChatMessage *)it->data; + from_str=linphone_address_as_string_uri_only(linphone_chat_message_get_from(msg)); + with_str=linphone_address_as_string_uri_only(with); + linphone_gtk_push_text(chat_view,strcmp(from_str,with_str)==0? with : + linphone_chat_message_get_from(msg), + strcmp(from_str,with_str)==0? FALSE : TRUE, + linphone_chat_message_get_chat_room(msg),msg,TRUE); + } + g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); + ms_free(from_str); + ms_free(with_str); + } +} + GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with){ GtkWidget *chat_view=linphone_gtk_create_widget("main","chatroom_frame"); GtkWidget *main_window=linphone_gtk_get_main_window (); - GHashTable *hash=g_object_get_data(G_OBJECT(main_window),"history"); GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch"); GtkWidget *text=linphone_gtk_get_widget(chat_view,"textview"); GdkColor color; + GdkColor colorb; int idx; - + GtkWidget *button; + GtkWidget *entry; + GList *list=NULL; + MSList *messages; + char *with_str; + color.red = 32512; color.green = 32512; color.blue = 32512; - - GdkColor colorb; colorb.red = 56832; colorb.green = 60928; colorb.blue = 61952; - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(text),GTK_WRAP_WORD); - gtk_text_view_set_editable (GTK_TEXT_VIEW(text),FALSE); - gtk_notebook_append_page (notebook,chat_view,create_tab_chat_header(cr,with)); + with_str=linphone_address_as_string_uri_only(with); + linphone_core_set_messages_flag_read(cr,with_str,1); + gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); + gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); + gtk_notebook_append_page(notebook,chat_view,create_tab_chat_header(cr,with)); idx = gtk_notebook_page_num(notebook, chat_view); gtk_notebook_set_current_page(notebook, idx); gtk_widget_show(chat_view); - g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(chat_view),"idx",GINT_TO_POINTER(idx)); g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); - g_object_set_data(G_OBJECT(chat_view),"from_chatroom",(gpointer) with); - - GList *list=NULL; g_object_set_data(G_OBJECT(chat_view),"list",list); - - gchar *buf=g_hash_table_lookup(hash,linphone_address_as_string_uri_only(with)); - if(buf != NULL){ - GtkTextIter start; - GtkTextIter end; - - GtkTextBuffer *text_buffer; - text_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); - gtk_text_buffer_get_bounds(text_buffer, &start, &end); - gtk_text_buffer_delete (text_buffer, &start, &end); - gtk_text_buffer_insert(text_buffer,&start,buf,-1); - } - gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), "right","justification", GTK_JUSTIFY_RIGHT,NULL); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), @@ -300,13 +301,13 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres "margin","indent",10,NULL); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), "bg","paragraph-background-gdk",&colorb,NULL); - - GtkWidget *button = linphone_gtk_get_widget(chat_view,"send"); + messages = linphone_chat_room_get_history(with_str,cr,10); + display_history_message(chat_view,messages,with); + button = linphone_gtk_get_widget(chat_view,"send"); g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL); - - GtkWidget *entry = linphone_gtk_get_widget(chat_view,"text_entry"); + entry = linphone_gtk_get_widget(chat_view,"text_entry"); g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,NULL); - + ms_free(with_str); return chat_view; } @@ -318,31 +319,31 @@ LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){ GtkWidget *main_window=linphone_gtk_get_main_window (); - GHashTable *hash=g_object_get_data(G_OBJECT(main_window),"history"); - LinphoneAddress *from=(LinphoneAddress *)g_object_get_data(G_OBJECT(chat_view),"from_chatroom"); - if(g_strcmp0(linphone_address_as_string(from),linphone_address_as_string(uri))!=0) - { + LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr"); + char *from_str=linphone_address_as_string(linphone_chat_room_get_peer_address (cr2)); + char *uri_str=linphone_address_as_string(uri); + char *uri_only=linphone_address_as_string_uri_only(uri); + MSList *messages=NULL; + + linphone_core_set_messages_flag_read(cr,uri_only,1); + if(g_strcmp0(from_str,uri_str)!=0){ GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); GtkTextIter start; GtkTextIter end; - gchar *buf=g_hash_table_lookup(hash,linphone_address_as_string_uri_only(uri)); - GtkTextBuffer *text_buffer; + GtkTextBuffer *text_buffer; + text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); - g_object_set_data(G_OBJECT(chat_view),"cr",cr); gtk_text_buffer_delete (text_buffer, &start, &end); - if(buf!=NULL){ - gtk_text_buffer_insert_with_tags_by_name(text_buffer,&start,buf,-1,"font_grey",NULL); - GtkTextMark *mark=gtk_text_buffer_create_mark(text_buffer, NULL, &start, FALSE); - gtk_text_view_scroll_to_mark(text_view,mark, 0, FALSE, 0, 0); - } - udpate_tab_chat_header(chat_view,uri,cr); g_object_set_data(G_OBJECT(chat_view),"cr",cr); - g_object_set_data(G_OBJECT(chat_view),"from_chatroom",(gpointer) uri); - g_object_set_data(G_OBJECT(chat_view),"from_message",linphone_address_as_string_uri_only(uri)); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); + messages = linphone_chat_room_get_history(uri_only,cr,10); + g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str); + display_history_message(chat_view,messages,uri); } + ms_free(from_str); + ms_free(uri_str); } void linphone_gtk_chat_destroyed(GtkWidget *w){ @@ -360,8 +361,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); - GtkWidget *w; - + GtkWidget *w; w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); if(w!=NULL){ @@ -371,12 +371,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); g_object_set_data(G_OBJECT(friendlist),"from",(gpointer)linphone_chat_message_get_from(msg)); } - - const char *display=linphone_address_get_display_name(linphone_chat_message_get_from(msg)); - if (display==NULL || display[0]=='\0') { - display=linphone_address_get_username(linphone_chat_message_get_from(msg)); - } - + get_display_name(linphone_chat_message_get_from(msg)); #ifdef HAVE_GTK_OSXs /* Notified when a new message is sent */ linphone_gtk_status_icon_set_blinking(TRUE); @@ -391,7 +386,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } #endif linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), - linphone_chat_message_get_text(msg),FALSE,room,linphone_chat_message_get_time(msg)); + FALSE,room,msg,FALSE); linphone_gtk_update_chat_picture(); //gtk_window_present(GTK_WINDOW(w)); /*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/ diff --git a/gtk/main.c b/gtk/main.c index b31396b08..b1dab3d65 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1556,10 +1556,6 @@ static void linphone_gtk_configure_main_window(){ static gboolean buttons_have_borders; static gboolean show_abcd; GtkWidget *w=linphone_gtk_get_main_window(); - GHashTable *contacts_history; - - contacts_history=g_hash_table_new_full(g_str_hash, g_str_equal,g_free, NULL); - g_object_set_data(G_OBJECT(w),"history",(gpointer)contacts_history); if (!config_loaded){ title=linphone_gtk_get_ui_config("title","Linphone"); From 57e5d55ab7f0a0024a8118081206a849b075ac7b Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 7 Mar 2013 12:42:22 +0100 Subject: [PATCH 012/177] add serbian translation file update spanish file fix remove contact --- configure.ac | 2 +- gtk/chat.c | 4 +- gtk/friendlist.c | 6 +- po/README | 14 + po/cs.po | 771 ++++++++++--------- po/de.po | 762 ++++++++++--------- po/es.po | 1858 ++++++++++++++++++++++++--------------------- po/fr.po | 849 +++++++++++---------- po/he.po | 773 ++++++++++--------- po/hu.po | 767 ++++++++++--------- po/it.po | 759 ++++++++++--------- po/ja.po | 773 ++++++++++--------- po/nb_NO.po | 761 ++++++++++--------- po/nl.po | 768 ++++++++++--------- po/pl.po | 785 ++++++++++--------- po/pt_BR.po | 766 ++++++++++--------- po/ru.po | 772 ++++++++++--------- po/sr.po | 1877 ++++++++++++++++++++++++++++++++++++++++++++++ po/sv.po | 759 ++++++++++--------- po/zh_CN.po | 760 ++++++++++--------- po/zh_TW.po | 761 ++++++++++--------- 21 files changed, 9150 insertions(+), 6197 deletions(-) create mode 100644 po/README create mode 100644 po/sr.po diff --git a/configure.ac b/configure.ac index 890fcba2d..9cb828e82 100644 --- a/configure.ac +++ b/configure.ac @@ -113,7 +113,7 @@ AC_CONFIG_COMMANDS([libtool-hacking], dnl Add the languages which your application supports here. PKG_PROG_PKG_CONFIG -ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb_NO zh_TW he" +ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb_NO zh_TW he sr" AC_SUBST(ALL_LINGUAS) AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages]) diff --git a/gtk/chat.c b/gtk/chat.c index 159ddd8bc..c93d9828c 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -36,6 +36,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); g_object_set_data(G_OBJECT(w),"from_message",NULL); g_object_set_data(G_OBJECT(w),"cr",NULL); + g_object_set_data(G_OBJECT(friendlist),"from",NULL); gtk_widget_destroy(w); } @@ -369,7 +370,8 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } else { w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); - g_object_set_data(G_OBJECT(friendlist),"from",(gpointer)linphone_chat_message_get_from(msg)); + char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); + g_object_set_data(G_OBJECT(friendlist),"from",from); } get_display_name(linphone_chat_message_get_from(msg)); #ifdef HAVE_GTK_OSXs diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 5ce869b46..6ef326610 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -195,7 +195,7 @@ void linphone_gtk_update_chat_picture(){ GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); GtkWidget *chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); LinphoneFriend *lf=NULL; - LinphoneAddress *uri=(LinphoneAddress *)g_object_get_data(G_OBJECT(friendlist),"from"); + char *uri=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist))); if (gtk_tree_model_get_iter_first(model,&iter)) { do{ @@ -203,7 +203,7 @@ void linphone_gtk_update_chat_picture(){ if(chat_view!=NULL){ if(uri !=NULL) { if(g_strcmp0(linphone_address_as_string(linphone_friend_get_address(lf)), - linphone_address_as_string(uri))==0){ + uri)==0){ gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); } else { gtk_list_store_set(store,&iter,FRIEND_CHAT,create_chat_picture(),-1); @@ -241,7 +241,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){ cr=linphone_gtk_create_chatroom(uri); } page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); - g_object_set_data(G_OBJECT(friendlist),"from",(gpointer)uri); + g_object_set_data(G_OBJECT(friendlist),"from",linphone_address_as_string(uri)); if(page==NULL){ page=linphone_gtk_init_chatroom(cr,uri); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)page); diff --git a/po/README b/po/README new file mode 100644 index 000000000..adec33171 --- /dev/null +++ b/po/README @@ -0,0 +1,14 @@ +How to add a translation file +***************************** +To add a translation file in linphone project you should first : + - change the variable ALL_LINGUAS in configure.ac by adding the language (ex: fr) + - then add the file .po in the directory /po + - run ./autogen.sh + +Update the tranlation files +*************************** +To update all the translation files, in the directory /po run the following command + $ make update-po + + + diff --git a/po/cs.po b/po/cs.po index 4f499ac9b..726ba26a4 100644 --- a/po/cs.po +++ b/po/cs.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-3.4.99.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2011-11-04 22:30+0100\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" @@ -28,21 +28,25 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "–" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "přerušen" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "promeškán" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "Odmítnout" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" @@ -50,7 +54,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" @@ -58,29 +62,25 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "–" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "Konference" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "Já" @@ -89,31 +89,31 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "Za běhu vypisuje některé ladicí informace na standardní výstup." -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "Soubor, kam zapisovat protokol." -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "Spustí se pouze do systémové oblasti, nezobrazí hlavní okno." -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "Zavolá právě teď na tuto adresu" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "je-li nastaveno, automaticky zvedne příchozí hovor" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -121,12 +121,12 @@ msgstr "" "Zadejte pracovní adresář (měl by být základní instalační adresář, například " "c:\\Program Files\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Hovor s %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -139,7 +139,7 @@ msgstr "" "do svého adresáře?\n" "Odpovíte-li ne, tato osobo bude dočasně blokována." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -148,59 +148,59 @@ msgstr "" "Prosím, zadejte heslo pro uživatele %s\n" "v doméně %s:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "Odpovědět" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Odmítnout" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 msgid "Call paused" msgstr "Hovor odložen" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "kým: %s" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Porty" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Odkaz na webovou stránku" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Lipnhone – internetový videofon" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (Výchozí)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "Byly jsme přepojeni na %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -208,177 +208,177 @@ msgstr "" "Na tomto počítači nebyla objevena žádná zvuková karta.\n" "Nebudete moci vytáčet a přijímat a zvukové hovory." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Volný SIP videofon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "Zobrazit adresář" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Stav" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Jméno" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Volat komu: %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Diskuzní skupina" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Hledat v adresáři %s" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Neplatný sipový kontakt!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Volat komu: %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Poslat text komu: %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Upravit kontakt „%s“" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Odstranit kontakt „%s“" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Přidat nový kontakt z adresáře %s" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Kmitočet (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Stav" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min. rychlost (kb/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parametry" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Povoleno" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Zakázáno" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Účet" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "angličtina" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "francouzština" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "švédština" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "italština" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "španělština" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "brazilská portugalština" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "polština" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "němčina" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "ruština" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "japonština" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "dánština" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "maďarština" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "čeština" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "čínština" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "tradiční čínština" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "norština" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Aby se projevil výběr nového jazyka, je nutné znovu spustit linphone." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Žádná" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "ZRTP" @@ -423,7 +423,7 @@ msgstr[0] "Nalezen %i kontakt" msgstr[1] "Nalezeny %i kontakty" msgstr[2] "Nalezeno %i kontaktů" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -431,277 +431,321 @@ msgstr "" "Vítejte!\n" "Tento průvodce vám pomůže používat sipový účet při vašich hovorech." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "Vytvořit účet vybráním uživatelského jména" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "Účet již mám a chci jej použít" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "Účet již mám a chci jej použít" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Uživatelské jméno:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Heslo:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Uživatelské jméno" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Heslo" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Uživatelské jméno:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Heslo:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "Děkujeme vám. Váš účet je nyní nastaven a připraven k použití." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Vítejte v průvodci nastavení účtu" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Průvodce nastavením účtu" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Nastavit SIP účet" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 #, fuzzy msgid "Error" msgstr "Chyba." -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 #, fuzzy msgid "Terminating" msgstr "Ukončit hovor" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Hovor č. %i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "Přepojit hovor č. %i s %s" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Nenalezeno" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Filtr ICE" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Přesměrováno" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Hledá se adresa pomocí STUN…" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "nedostupná" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Filtr ICE" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Volá se…" -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "dobrá" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "průměrná" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "slabá" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "velmi slabá" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "příliš špatná" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "nedostupná" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "Probíhá konference" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "Probíhá hovor" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "Odložený hovor" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Hovor skončil." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 #, fuzzy msgid "Transfer done." msgstr "Přepojit" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Přepojit" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "Obnovit" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "Odložit" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Odložit" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -726,211 +770,151 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "Přepojit" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "Telefonuje se" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Délka" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "Hodnocení kvality hovoru" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "V_olby" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Zobrazovat sám sebe" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "Nápo_věda" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Zobrazit ladicí okno" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Domovská stránka" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Vyhledat akt_ualizace" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Průvodce nastavením účtu" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP adresa nebo telefonní číslo:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Zahájit nový hovor" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Kontakty" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Přidat" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Upravit" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Hledat" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Přidat kontakty z adresáře" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "Přidat kontakt" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "Klávesnice" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 msgid "Recent calls" msgstr "Nedávné hovory" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Moje současná totožnost:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Uživatelské jméno" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Heslo" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Připojení k Internetu:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Přihlašovat mě automaticky" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Informace o přihlášení" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Vítejte!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "všech uživatelích" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "připojených uživatelích" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "Fiber Channel" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "Výchozí" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1088,6 +1072,10 @@ msgstr "Kodeky zvuku" msgid "Video codecs" msgstr "Kodeky obrazu" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "SIP (UDP)" @@ -1125,179 +1113,189 @@ msgid "Media encryption type" msgstr "Druh šifrování médií" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "Obrazový RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "Zvukový RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Druh šifrování médií" + +#: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" msgstr "Síťové protokoly a porty" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Přímé připojení do Internetu" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Za NAT/firewallem (adresu brány zadejte níže)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Veřejná IP adresa:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Za NAT/firewallem (adresu určí STUN)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Za NAT/firewallem (adresu určí STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Za NAT/firewallem (adresu určí STUN)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "STUN server:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT a firewall" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Nastavení sítě" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Vyzvánění:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "Zvláštní ALSA zařízení (volitelné):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Zařízení pro nahrávání:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Zařízení pro vyzvánění:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Zařízení pro přehrávání:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Zapnout potlačení ozvěny" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Zvuk" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Vstupní zařízení obrazu:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Upřednostňované rozlišení obrazu:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Obraz" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Nastavení multimédií" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "Tento oddíl určuje vaši SIP adresu, když se nepoužívá žádný účet" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Vaše zobrazované jméno (např. Jan Novák):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Vaše uživatelské jméno:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Vaše výsledná SIP adresa:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Implicitní totožnost" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Odstranit" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Proxy účty" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Vymazat všechna hesla" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Soukromí" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Nastavení SIP účtů" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Povolit" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Zakázat" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Kodeky" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 znamená „neomezeno“" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Omezení odchozí rychlosti (kb/s):" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Omezení příchozí rychlosti (kb/s):" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "Zapnout přizpůsobující řízení rychlosti" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1305,31 +1303,31 @@ msgstr "" "Přizpůsobující se řízení rychlosti je technika dynamického odhadu " "dostupného pásma během hovoru." -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Využití šířky pásma" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Kodeky" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Jazyk" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Zobrazit podrobnější nastavení" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Úroveň" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Uživatelské rozhraní" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Hotovo" @@ -1397,7 +1395,7 @@ msgstr "" #: ../gtk/call_statistics.ui.h:5 #, fuzzy -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "Druh šifrování médií" #: ../gtk/call_statistics.ui.h:6 @@ -1406,6 +1404,16 @@ msgstr "" #: ../gtk/call_statistics.ui.h:7 #, fuzzy +msgid "Video Media connectivity" +msgstr "Druh šifrování médií" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Vlastnosti zvuku" + +#: ../gtk/call_statistics.ui.h:9 +#, fuzzy msgid "Call statistics and information" msgstr "Informace o kontaktu" @@ -1430,19 +1438,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "přerušen" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "dokončen" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "promeškán" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1457,70 +1525,70 @@ msgstr "" "Stav: %s\n" "Délka: %i min %i s\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Odchozí hovor" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Připraven." -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Vyhledává se umístění čísla…" -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Toto číslo nelze vyhledat." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" "Špatně zadaná SIP adresa. Adresa má mít tento formát " -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Kontaktuji" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Nelze volat" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů." -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "vás volá" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " a požaduje automatickou zvednutí." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Upravují se parametry hovoru…" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Připojeno." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" @@ -1620,116 +1688,116 @@ msgstr "" "SIP identita, kterou jste zadali, není platná.\n" "Měla by mít tvar sip:uživatel@proxydoména, například sip:alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Nelze se přihlásit jako %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Vyzvání na druhé straně." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "Vyzvání na druhé straně…" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Časná média." -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "Hovor s %s je odložen." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "Hovor přijat kým: %s – odložen." -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "Hovor obnoven." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "Hovor přijat kým: %s." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "Byli jsme obnoveni…" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 #, fuzzy msgid "Call is updated by remote." msgstr "Hovor byl aktualizován protistranou…" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Hovor ukončen." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Uživatel je zaneprázdněn." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Uživatel je dočasně nedostupný." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Uživatel si nepřeje být rušen." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Volání odmítnuto." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "Žádná odpověď." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "Chyba protokolu." -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "Přesměrováno" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "Volání se nezdařilo." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registrace na %s byla úspěšná." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Odregistrování z %s hotovo." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "odpověď nedorazila včas" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrace na %s selhala: %s" @@ -1739,7 +1807,7 @@ msgstr "Registrace na %s selhala: %s" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1747,6 +1815,12 @@ msgstr[0] "Máte %i zmeškaný hovor." msgstr[1] "Máte %i zmeškané hovory." msgstr[2] "Máte %i zmeškaných hovorů." +#~ msgid "by %s" +#~ msgstr "kým: %s" + +#~ msgid "Keypad" +#~ msgstr "Klávesnice" + #~ msgid "Chat with %s" #~ msgstr "Diskuze s %s" @@ -1783,9 +1857,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Now ready !" #~ msgstr "Připraveno!" -#~ msgid "Contacts" -#~ msgstr "Kontakty" - #~ msgid "Enable video" #~ msgstr "Zapnout video" @@ -1849,9 +1920,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "_Linphone" #~ msgstr "_Linphone" -#~ msgid "Ports" -#~ msgstr "Porty" - #~ msgid "Sorry, you have to pause or stop the current call first !" #~ msgstr "Je nám líto, ale nejprve musíte hovor odložit nebo ukončit!" @@ -2436,9 +2504,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Listen" #~ msgstr "Test" -#~ msgid "Sound properties" -#~ msgstr "Vlastnosti zvuku" - #~ msgid "Run sip user agent on port:" #~ msgstr "Spustit uživatelského agenta SIP na portu:" diff --git a/po/de.po b/po/de.po index bb68557f4..a4745d95f 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2012-11-07 19:27+0100\n" "Last-Translator: Gerhard Stengel \n" "Language-Team: German \n" @@ -18,32 +18,36 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "nicht verfügbar" + +#: ../gtk/calllogs.c:85 msgid "Aborted" msgstr "Abgebrochen" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 msgid "Missed" msgstr "Entgangen" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 msgid "Declined" msgstr "Abgewiesen" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "%i Minute" msgstr[1] "%i Minuten" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "%i Sekunde" msgstr[1] "%i Sekunden" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" @@ -52,22 +56,18 @@ msgstr "" "%s\t%s\tQualität: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "nicht verfügbar" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "Konferenz" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "Eigenes Telefon" @@ -76,33 +76,33 @@ msgstr "Eigenes Telefon" msgid "Couldn't find pixmap file: %s" msgstr "Pixmapdatei %s kann nicht gefunden werden." -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "Ausgabe von Debug-Informationen auf stdout während der Laufzeit" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "Pfad zu einer Datei, in die Protokolle geschrieben werden." -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "Linphone mit ausgeschaltetem Video starten." -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" "Nur im Systemabschnitt der Kontrollleiste starten, aber das Hauptfenster " "nicht zeigen." -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "Im Moment anzurufende Adresse" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "Falls aktiviert, werden eingehende Anrufe automatisch beantwortet" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -110,12 +110,12 @@ msgstr "" "Geben Sie einen Arbeitsordner an (sollte der Installationsordner sein, z. B. " "C:\\Programme\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Im Gespräch mit %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -128,7 +128,7 @@ msgstr "" "Ihrer Kontaktliste hinzufügen?\n" "Wenn Sie mit Nein antworten, wird diese Person vorläufig blockiert." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -137,59 +137,59 @@ msgstr "" "Geben Sie bitte Ihr Passwort für den Benutzernamen %s\n" " auf der Domäne %s ein:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 msgid "Call error" msgstr "Anruf fehlgeschlagen" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Anruf beendet" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "Annehmen" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Abweisen" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 msgid "Call paused" msgstr "Anruf wird gehalten" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, c-format msgid "by %s" msgstr "von %s" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s schlägt vor, eine Videoübertragung zu starten. Nehmen Sie an?" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Website-Verknüpfung" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - ein Internet-Video-Telefon" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (Vorgabe)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "Vermittlung nach %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -197,177 +197,177 @@ msgstr "" "Auf diesem Rechner können keine Soundkarten gefunden werden.\n" "Sie können keine Audio-Anrufe tätigen oder entgegennehmen." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Ein freies SIP-Video-Telefon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "Zum Adressbuch hinzufügen" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Anwesenheitsstatus" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Name" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 msgid "Call" msgstr "Anrufen" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Chat Raum" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Im %s-Verzeichnis suchen" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Ungültiger SIP-Kontakt!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "„%s“ anrufen" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Text zu „%s“ schicken" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Kontakt „%s“ bearbeiten" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Kontakt „%s“ löschen" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Einen neuen Kontakt aus dem %s-Verzeichnis hinzufügen" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Rate (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min. Bitrate (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parameter" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Freigegeben" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Gesperrt" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Englisch" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Französisch" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Schwedisch" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italienisch" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Spanisch" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "Brasilianisches Portugiesisch" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polnisch" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Deutsch" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Russisch" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "Japanisch" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Niederländisch" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Ungarisch" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Tschechisch" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "Chinesisch" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "Traditionelles Chinesisch" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "Norwegisch" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Linphone muss neu gestartet werden, damit die neue Spracheinstellung wirksam " "wird." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Keinen" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -411,7 +411,7 @@ msgid_plural "Found %i contacts" msgstr[0] "%i Kontakt gefunden" msgstr[1] "%i Kontakte gefunden" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -420,72 +420,72 @@ msgstr "" "Dieser Assistent wird Ihnen dabei helfen, ein SIP-Konto für Ihre Anrufe zu " "verwenden." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "Ein Konto bei linphone.org erstellen." -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" "Ich habe bereits ein Konto bei linphone.org und möchte es jetzt benutzen." -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "Ich habe bereits ein SIP-Konto und möchte es jetzt benutzen." -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "Geben Sie Ihren Benutzernamen bei linphone.org ein." -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Benutzername:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Passwort:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "Geben Sie Ihre Zugangsdaten ein." -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 msgid "Username*" msgstr "Benutzername*" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 msgid "Password*" msgstr "Passwort*" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "Domäne*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "Proxy" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "(*) erforderliche Felder" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 msgid "Username: (*)" msgstr "Benutzername: (*)" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 msgid "Password: (*)" msgstr "Passwort: (*)" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "E-Mail: (*)" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "Bestätigen Sie Ihr Passwort: (*)" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -494,12 +494,12 @@ msgstr "" "verwendet oder der Server ist unerreichbar.\n" "Bitte gehen Sie zurück und versuchen Sie es noch einmal." -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" "Danke. Ihr Konto ist nun fertig eingerichtet und kann verwendet werden." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -509,77 +509,105 @@ msgstr "" "wir Ihnen soeben per E-Mail geschickt haben.\n" "Danach gehen Sie hierher zurück und drücken auf „Vor“." -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Willkommen zum Konto-Einrichtungsassistenten" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Konto-Einrichtungsassistent" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "Konto einrichten (Schritt 1/1)" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "Geben Sie Ihren SIP-Benutzernamen ein (Schritt 1/1)" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "Geben Sie Ihre Zugangsdaten ein (Schritt 1/2)" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "Bestätigung (Schritt 2/2)" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "Fehler" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "Fertigstellen" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Anruf #%i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "Vermittlung zum Anruf #%i mit %s" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "Nicht verwendet" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "ICE nicht aktiviert" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 msgid "ICE failed" msgstr "ICE fehlgeschlagen" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "ICE läuft" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "Ein oder mehrere NATs werden durchquert" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 msgid "Direct" msgstr "Direkt" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "Über einen Relay-Server" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +#, fuzzy +msgid "uPnP not activated" +msgstr "ICE nicht aktiviert" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "ICE läuft" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "nicht verfügbar" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "ICE fehlgeschlagen" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" @@ -588,104 +616,121 @@ msgstr "" "Herunterladen: %f\n" "Hochladen: %f (kbit/s)" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, fuzzy, c-format +msgid "%.3f seconds" +msgstr "%i Sekunde" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Verbindungsaufbau..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "gut" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "durchschnittlich" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "schlecht" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "sehr schlecht" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "zu schlecht" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "nicht verfügbar" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "Gesichert durch SRTP" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Gesichert durch ZRTP - [Auth.-Token: %s]" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "Auf „Ungeprüft“ setzen" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "Auf „Geprüft“ setzen" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "In Konferenz" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "Im Gespräch" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "Gehaltener Anruf" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Anruf beendet." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "Vermittlung läuft" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "Vermittlung abgeschlossen." -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 msgid "Transfer failed." msgstr "Vermittlung fehlgeschlagen." -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "Fortsetzen" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "Halten" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Halten" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -709,210 +754,150 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "Vermittlung" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "Im Gespräch" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Dauer" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "Bewertung der Verbindungsqualität" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "_Optionen" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "Video immer starten" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Selbstansicht ein" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Hilfe" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Debug-Fenster anzeigen" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Auf _Aktualisierungen überprüfen" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Konto-Einrichtungsassistent" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP-Adresse oder Telefonnummer:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Einen neuen Anruf beginnen" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Kontakte" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Hinzufügen" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Bearbeiten" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Suchen" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Kontakte aus einem Verzeichnis hinzufügen" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "Kontakt hinzufügen" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "Wähltastatur" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 msgid "Recent calls" msgstr "Letzte Gespräche" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Aktuelle Identität:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Benutzername" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passwort" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Internetverbindung:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Automatisch anmelden" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Anmeldeinformationen" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Willkommen !" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "Alle Teilnehmer" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "Angemeldete Teilnehmer" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "Glasfaserkabel" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "Vorgabe" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1073,6 +1058,10 @@ msgstr "Audio-Codecs" msgid "Video codecs" msgstr "Video-Codecs" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1110,180 +1099,190 @@ msgid "Media encryption type" msgstr "Verschlüsselungstyp der Medien" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "Tunnel" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "DSCP-Felder" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "Fest" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "Tunnel" + #: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Verschlüsselungstyp der Medien" + +#: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" msgstr "Netzwerkprotokoll und Ports" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Direkte Verbindung ins Internet" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Hinter NAT / Firewall (IP-Gateway darunter angeben)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Öffentliche IP-Adresse:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Hinter NAT / Firewall (STUN verwenden)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "Hinter NAT / Firewall (ICE verwenden)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Hinter NAT / Firewall (ICE verwenden)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "STUN-Server:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT und Firewall" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Netzwerkeinstellungen" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Klingelton:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "Spezielles ALSA-Gerät (optional):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Aufnahmegerät:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Gerät für Klingelton:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Wiedergabegerät:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Echounterdrückung ein" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Video-Aufnahmegerät:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Bevorzugte Video-Auflösung:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Multimedia-Einstellungen" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "In diesem Bereich legen Sie Ihre SIP-Adresse fest, wenn Sie kein SIP-Konto " "verwenden." -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Ihr angezeigter Name (z. B. Heinz Müller):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Ihr Benutzername:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Sich ergebende SIP-Adresse:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Standard-Identität" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "Assistent" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Entfernen" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Proxy-Konten" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Alle Passwörter löschen" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Privatsphäre" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "SIP-Konten verwalten" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Freigeben" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Sperren" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 bedeutet „unbegrenzt“" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Upload-Bandbreite (kbit/sec):" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Download-Bandbreite (kbit/sec):" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "Adaptive Ratenregelung ein" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1291,31 +1290,31 @@ msgstr "" "Adaptive Ratenregelung ist eine Technik zur dynamischen Abschätzung der " "zur Verfügung stehenden Bandbreite während eines Anrufs." -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Bandbreiten-Einstellungen" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Sprache" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Fortgeschrittene Einstellungen anzeigen" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Detaillierung" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Benutzeroberfläche" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Fertig" @@ -1376,7 +1375,8 @@ msgid "Audio IP bandwidth usage" msgstr "Genutzte IP-Bandbreite Audio" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +#, fuzzy +msgid "Audio Media connectivity" msgstr "Medienanbindung" #: ../gtk/call_statistics.ui.h:6 @@ -1384,6 +1384,16 @@ msgid "Video IP bandwidth usage" msgstr "Genutzte IP-Bandbreite Video" #: ../gtk/call_statistics.ui.h:7 +#, fuzzy +msgid "Video Media connectivity" +msgstr "Medienanbindung" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Audio Eigenschaften" + +#: ../gtk/call_statistics.ui.h:9 msgid "Call statistics and information" msgstr "Anrufstatistik und -informationen" @@ -1407,19 +1417,79 @@ msgstr "Tunnel einrichten" msgid "Configure http proxy (optional)" msgstr "HTTP-Proxy einrichten (optional)" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "abgebrochen" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "beendet" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "entgangen" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1434,23 +1504,23 @@ msgstr "" "Status: %s\n" "Dauer: %i min %i sec\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Abgehender Anruf" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Bereit" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Telefonnummernziel wird gesucht..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Diese Nummer kann nicht aufgelöst werden." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1458,47 +1528,47 @@ msgstr "" "SIP-Adresse kann nicht eingelesen werden. Eine SIP-Adresse hat folgenden " "Aufbau " -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Verbindungsaufbau" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Anruf kann nicht getätigt werden." -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht." -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "ruft Sie an" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " und fragt nach automatischer Antwort." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Die Anrufparameter werden verändert..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Verbunden." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Anruf abgebrochen" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "Anruf kann nicht gehalten werden" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "Aktueller Anruf wird gehalten..." @@ -1599,114 +1669,115 @@ msgstr "" "Sie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:" "alice@beispiel.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Anmeldung als %s fehlgeschlagen" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Klingeln bei der Gegenseite." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "Klingeln bei der Gegenseite..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "Anruf mit %s wird gehalten." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "Der von %s entgegengenommene Anruf wird gehalten." -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "Anruf fortgesetzt." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "Anruf wird von %s entgegengenommen." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +#, fuzzy +msgid "Incompatible, check codecs or security settings..." msgstr "Inkompatibel, überprüfen Sie die Codecs..." -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "Anruf wird fortgesetzt." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "Anruf wird von der Gegenseite gehalten." -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "Anruf ist von der Gegenseite aktualisiert worden." -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Anruf beendet." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Teilnehmer ist besetzt." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Teilnehmer zur Zeit nicht verfügbar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Teilnehmer möchte nicht gestört werden." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Anruf abgewiesen" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "Keine Antwort." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "Protokollfehler" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "Umgeleitet" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "Inkompatible Medienparameter." -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "Anruf fehlgeschlagen." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registrierung auf %s erfolgreich." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Abmeldung von %s ist erfolgt." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "Zeitüberschreitung bei der Antwort" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrierung auf %s fehlgeschlagen: %s" @@ -1716,13 +1787,16 @@ msgstr "Registrierung auf %s fehlgeschlagen: %s" msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Sie haben %i Anruf in Abwesenheit." msgstr[1] "Sie haben %i Anrufe in Abwesenheit." +#~ msgid "Keypad" +#~ msgstr "Wähltastatur" + #~ msgid "Chat with %s" #~ msgstr "Chat mit %s" @@ -1735,9 +1809,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "in" #~ msgstr "in" -#~ msgid "Contacts" -#~ msgstr "Kontakte" - #~ msgid "" #~ "Register to FONICS\n" #~ "virtual network !" @@ -2317,9 +2388,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "Listen" #~ msgstr "Anhören" -#~ msgid "Sound properties" -#~ msgstr "Audio Eigenschaften" - #~ msgid "Run sip user agent on port:" #~ msgstr "Sip \"user agent\" an Port:" diff --git a/po/es.po b/po/es.po index 999a16446..9bdca11b7 100644 --- a/po/es.po +++ b/po/es.po @@ -1,15 +1,14 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" -"PO-Revision-Date: 2002-10-15 HO:MI+ZONE\n" -"Last-Translator: Nelson Benitez \n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"PO-Revision-Date: 2012-12-06 15:54+0100\n" +"Last-Translator: BERAUDO Guillaume \n" "Language-Team: es \n" "Language: \n" "MIME-Version: 1.0\n" @@ -17,100 +16,108 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 -#, fuzzy -msgid "Aborted" -msgstr "Llamada cancelada." +msgid "n/a" +msgstr "n/a" #: ../gtk/calllogs.c:85 -msgid "Missed" -msgstr "" +#, fuzzy +msgid "Aborted" +msgstr "abortada" #: ../gtk/calllogs.c:88 #, fuzzy -msgid "Declined" -msgstr "linea" +msgid "Missed" +msgstr "perdida" -#: ../gtk/calllogs.c:94 -#, c-format -msgid "%i minute" -msgid_plural "%i minutes" -msgstr[0] "" -msgstr[1] "" +#: ../gtk/calllogs.c:91 +#, fuzzy +msgid "Declined" +msgstr "Rechazar" #: ../gtk/calllogs.c:97 #, c-format -msgid "%i second" -msgid_plural "%i seconds" -msgstr[0] "" -msgstr[1] "" +msgid "%i minute" +msgid_plural "%i minutes" +msgstr[0] "%i minuto" +msgstr[1] "%i minutos" #: ../gtk/calllogs.c:100 #, c-format +msgid "%i second" +msgid_plural "%i seconds" +msgstr[0] "%i segundo" +msgstr[1] "%i segundos" + +#: ../gtk/calllogs.c:103 +#, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" +"%s\t%s\tCalidad: %s\n" +"%s\t%s %s\t" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 -#, c-format +#: ../gtk/calllogs.c:108 +#, fuzzy, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" +"%s\t%s\tCalidad: %s\n" +"%s\t%s %s\t" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" -msgstr "" +msgstr "Conferencia" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" -msgstr "" +msgstr "Yo" #: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "No se pudo encontrar el archivo pixmap: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" +"registra a stdout cierta información de depuración durante la ejecución." -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." -msgstr "" +msgstr "ruta a un fichero donde escribir logs." -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." -msgstr "" +msgstr "Iniciar sólo en la barra de tareas, no mostrar la interfaz principal." -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" -msgstr "" +msgstr "dirección a la que llamar inmediatamente" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" -msgstr "" +msgstr "si está activo, responder a llamadas entrantes automáticamente" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" +"Especifique un directorio de trabajo (debería ser la raíz de la instalación, " +"ej: c:\\Archivos de Programa\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" -msgstr "" +msgstr "Llamar con %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -118,824 +125,834 @@ msgid "" "list ?\n" "If you answer no, this person will be temporarily blacklisted." msgstr "" +"%s desea añadirle a su lista de contactos.\n" +"¿Desea permitirle ver su estado de presencia o añadirle a su lista de " +"contactos?\n" +"Si responde no, esta persona será bloqueada temporalmente." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" +"Por favor, introduzca la contraseña para el usuario %s\n" +" en el dominio %s:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" -msgstr "Llamada cancelada." +msgstr "Error en la llamada." -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" -msgstr "Llamada cancelada." +msgstr "Llamada terminada" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" -msgstr "" +msgstr "Llamada entrante" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" -msgstr "" +msgstr "Contestar" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" -msgstr "linea" +msgstr "Rechazar" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" -msgstr "Llamada cancelada." +msgstr "Llamada en pausa" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Puertos" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" -msgstr "" +msgstr "Enlace a la Web" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" -msgstr "" +msgstr "Linphone - un video-teléfono a través de Internet" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" -msgstr "" +msgstr "%s (Opción predeterminada)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" -msgstr "" +msgstr "Somos transferidos a %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" +"No se ha encontrado una tarjeta de sonido en este equipo.\n" +"No será posible realizar o recibir llamadas de audio." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" -msgstr "" +msgstr "Un video-teléfono SIP gratuito" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" -msgstr "Agenda" +msgstr "Añadir a la agenda" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 #, fuzzy msgid "Presence status" -msgstr "Estado" +msgstr "Estado de Presencia" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nombre" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" -msgstr "Llamada cancelada." +msgstr "Llamada" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" -msgstr "" +msgstr "Buscar en el directorio %s" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" -msgstr "" +msgstr "¡Contacto SIP no válido!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" -msgstr "" +msgstr "Llamar a %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" -msgstr "" +msgstr "Enviar mensaje a %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" -msgstr "(Ninguna informacion de contacto !)" +msgstr "Editar contacto '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" -msgstr "" +msgstr "Eliminar contacto '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" -msgstr "" +msgstr "Añadir nuevo contacto desde el directorio %s" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" -msgstr "" +msgstr "Frecuencia (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Estado" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" -msgstr "" +msgstr "Bitrate mínimo (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" -msgstr "Parametros" +msgstr "Parámetros" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Activado" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Desactivado" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" -msgstr "" - -#: ../gtk/propertybox.c:759 -msgid "English" -msgstr "" - -#: ../gtk/propertybox.c:760 -msgid "French" -msgstr "" - -#: ../gtk/propertybox.c:761 -msgid "Swedish" -msgstr "" - -#: ../gtk/propertybox.c:762 -msgid "Italian" -msgstr "" - -#: ../gtk/propertybox.c:763 -msgid "Spanish" -msgstr "" +msgstr "Cuenta" #: ../gtk/propertybox.c:764 -msgid "Brazilian Portugese" -msgstr "" +msgid "English" +msgstr "Inglés" #: ../gtk/propertybox.c:765 -msgid "Polish" -msgstr "" +msgid "French" +msgstr "Francés" #: ../gtk/propertybox.c:766 -msgid "German" -msgstr "" +msgid "Swedish" +msgstr "Sueco" #: ../gtk/propertybox.c:767 -msgid "Russian" -msgstr "" +msgid "Italian" +msgstr "Italiano" #: ../gtk/propertybox.c:768 -msgid "Japanese" -msgstr "" +msgid "Spanish" +msgstr "Español" #: ../gtk/propertybox.c:769 -msgid "Dutch" -msgstr "" +msgid "Brazilian Portugese" +msgstr "Portugués de Brasil" #: ../gtk/propertybox.c:770 -msgid "Hungarian" -msgstr "" +msgid "Polish" +msgstr "Polaco" #: ../gtk/propertybox.c:771 -msgid "Czech" -msgstr "" +msgid "German" +msgstr "Alemán" #: ../gtk/propertybox.c:772 -msgid "Chinese" -msgstr "" +msgid "Russian" +msgstr "Ruso" #: ../gtk/propertybox.c:773 -msgid "Traditional Chinese" -msgstr "" +msgid "Japanese" +msgstr "Japonés" #: ../gtk/propertybox.c:774 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Holandés" #: ../gtk/propertybox.c:775 +msgid "Hungarian" +msgstr "Húngaro" + +#: ../gtk/propertybox.c:776 +msgid "Czech" +msgstr "Checo" + +#: ../gtk/propertybox.c:777 +msgid "Chinese" +msgstr "Chino" + +#: ../gtk/propertybox.c:778 +msgid "Traditional Chinese" +msgstr "Chino Tradicional" + +#: ../gtk/propertybox.c:779 +msgid "Norwegian" +msgstr "Noruego" + +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." -msgstr "" +msgstr "Deberá reiniciar linphone para aplicar la nueva selección de lenguaje" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 #, fuzzy msgid "None" msgstr "Ninguno." -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" -msgstr "" +msgstr "SRTP" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" -msgstr "" +msgstr "ZRTP" #: ../gtk/update.c:80 -#, c-format +#, fuzzy, c-format msgid "" "A more recent version is availalble from %s.\n" "Would you like to open a browser to download it ?" msgstr "" +"Una nueva versión está disponible en %s.\n" +"¿Desea abrir el navegador para descargarla?" #: ../gtk/update.c:91 +#, fuzzy msgid "You are running the lastest version." -msgstr "" +msgstr "La versión instalada es la última." #: ../gtk/buddylookup.c:85 msgid "Firstname, Lastname" -msgstr "" +msgstr "Nombre, Apellidos" #: ../gtk/buddylookup.c:160 msgid "Error communicating with server." -msgstr "" +msgstr "Error al comunicar con el servidor." #: ../gtk/buddylookup.c:164 #, fuzzy msgid "Connecting..." -msgstr "Conexion" +msgstr "Conectando..." #: ../gtk/buddylookup.c:168 #, fuzzy msgid "Connected" -msgstr "Conectado." +msgstr "Conectado" #: ../gtk/buddylookup.c:172 msgid "Receiving data..." -msgstr "" +msgstr "Recibiendo datos..." #: ../gtk/buddylookup.c:180 #, c-format msgid "Found %i contact" msgid_plural "Found %i contacts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Se encontró %i contacto" +msgstr[1] "Se encontraron %i contactos" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" - -#: ../gtk/setupwizard.c:42 -msgid "Create an account on linphone.org" -msgstr "" +"¡Bienvenido/a !\n" +"Este asistente le ayudará a utilizar una cuenta SIP para sus llamadas." #: ../gtk/setupwizard.c:43 -msgid "I have already a linphone.org account and I just want to use it" -msgstr "" +#, fuzzy +msgid "Create an account on linphone.org" +msgstr "Crear una cuenta eligiendo un nombre de usuario" #: ../gtk/setupwizard.c:44 -msgid "I have already a sip account and I just want to use it" -msgstr "" +#, fuzzy +msgid "I have already a linphone.org account and I just want to use it" +msgstr "Ya tengo una cuenta y quiero utilizarla" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:45 +#, fuzzy +msgid "I have already a sip account and I just want to use it" +msgstr "Ya tengo una cuenta y quiero utilizarla" + +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" -msgstr "Manual de Usuario" +msgstr "Nombre de usuario:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" -msgstr "Tu Contraseña:" +msgstr "Contraseña:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 -#, fuzzy -msgid "Username*" -msgstr "Manual de Usuario" - #: ../gtk/setupwizard.c:121 #, fuzzy -msgid "Password*" -msgstr "Tu Contraseña:" +msgid "Username*" +msgstr "Nombre de usuario" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:122 +#, fuzzy +msgid "Password*" +msgstr "Contraseña:" + +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" -msgstr "Manual de Usuario" +msgstr "Nombre de usuario:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" -msgstr "Tu Contraseña:" +msgstr "Contraseña:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." -msgstr "" +msgstr "Gracias. Su cuenta está configurada y lista para su utilización." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" -msgstr "" +msgstr "Bienvenido al asistente de configuración de cuenta" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" -msgstr "" +msgstr "Asistente de configuración de cuenta" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 +#, fuzzy msgid "Configure your account (step 1/1)" -msgstr "" +msgstr "Configurar una cuenta SIP" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" -msgstr "Llamada cancelada." +msgstr "Llamar a #%i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" -msgstr "" +msgstr "Transferir a llamada #%i con %s" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 +#, fuzzy msgid "Not used" -msgstr "" +msgstr "No encontrado" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" -msgstr "Llamada cancelada." +msgstr "La llamada ha fallado." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 +#, fuzzy msgid "Direct" -msgstr "" +msgstr "Redigirida" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Búsqueda STUN en proceso…" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "no disponible" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "La llamada ha fallado." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, fuzzy, c-format +msgid "%.3f seconds" +msgstr "%i segundo" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." -msgstr "Contactando " +msgstr " Llamando..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" -msgstr "" +msgstr "00::00::00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" -msgstr "Contactando " +msgstr "Llamada entrante" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" -msgstr "" +msgstr "buena" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" -msgstr "" +msgstr "media" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" -msgstr "" +msgstr "mala" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" -msgstr "" +msgstr "muy mala" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" -msgstr "" +msgstr "demasiado mala" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" -msgstr "" +msgstr "no disponible" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" -msgstr "" +msgstr "Cifrada con SRTP" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" -msgstr "" +msgstr "Cifrada con ZRTP - [token de autenticación: %s]" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" -msgstr "" +msgstr "Set sin verificar" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" -msgstr "" +msgstr "Set verificado" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" -msgstr "" +msgstr "En conferencia" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" -msgstr "Contactando " +msgstr "En llamada " -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" -msgstr "Contactando " +msgstr "Llamada en pausa" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" -msgstr "" +msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." -msgstr "Llamada cancelada." +msgstr "Llamada finalizada." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 +#, fuzzy msgid "Transfer done." -msgstr "" +msgstr "Transferir" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." -msgstr "Llamada cancelada." +msgstr "Transferir" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" +msgstr "Reanudar" + +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +msgid "Pause" +msgstr "Pausar" + +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 -msgid "Pause" -msgstr "" +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Pausar" #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" -msgstr "" +msgstr "Por favor, introduzca los datos de inicio de sesión para %s" #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" -msgstr "Llamada cancelada." +msgstr "Nombre del destinatario" #: ../gtk/main.ui.h:2 #, fuzzy msgid "Send" -msgstr "Sonido" +msgstr "Enviar" #: ../gtk/main.ui.h:3 +#, fuzzy msgid "End conference" -msgstr "" +msgstr "En conferencia" #: ../gtk/main.ui.h:4 msgid "label" -msgstr "" +msgstr "etiqueta" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" -msgstr "" - -#: ../gtk/main.ui.h:14 -#, fuzzy -msgid "In call" -msgstr "Contactando " +msgstr "Transferir" #: ../gtk/main.ui.h:15 #, fuzzy -msgid "Duration" -msgstr "Informacion" +msgid "In call" +msgstr "En llamada " #: ../gtk/main.ui.h:16 -msgid "Call quality rating" -msgstr "" +#, fuzzy +msgid "Duration" +msgstr "Duración" #: ../gtk/main.ui.h:17 -msgid "_Options" -msgstr "" +msgid "Call quality rating" +msgstr "Calidad de la llamada" #: ../gtk/main.ui.h:18 +msgid "_Options" +msgstr "_Opciones" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" -msgstr "Activado" - -#: ../gtk/main.ui.h:20 -msgid "_Help" -msgstr "" +msgstr "Activar vista propia" #: ../gtk/main.ui.h:21 -#, fuzzy -msgid "Show debug window" -msgstr "Linphone esta terminando..." +msgid "_Help" +msgstr "_Ayuda" #: ../gtk/main.ui.h:22 -msgid "_Homepage" -msgstr "" +#, fuzzy +msgid "Show debug window" +msgstr "Mostrar ventana de depuración" #: ../gtk/main.ui.h:23 -msgid "Check _Updates" -msgstr "" +msgid "_Homepage" +msgstr "_Pagina_de_Inicio" #: ../gtk/main.ui.h:24 -msgid "Account assistant" -msgstr "" +msgid "Check _Updates" +msgstr "Buscar_Actualizaciones" #: ../gtk/main.ui.h:25 #, fuzzy -msgid "SIP address or phone number:" -msgstr "La direccion SIP del servidor de registro." +msgid "Account assistant" +msgstr "Asistente de configuración de cuenta" #: ../gtk/main.ui.h:26 -msgid "Initiate a new call" -msgstr "" +#, fuzzy +msgid "SIP address or phone number:" +msgstr "Dirección SIP o número de teléfono" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:27 +msgid "Initiate a new call" +msgstr "Iniciar nueva llamada" + +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Contactos" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Añadir" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" -msgstr "" - -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" +msgstr "Editar" #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" +msgid "Search" +msgstr "Buscar" #: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" +#, fuzzy +msgid "Add contacts from directory" +msgstr "Añadir contactos desde un directorio" -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" +#: ../gtk/main.ui.h:33 +#, fuzzy +msgid "Add contact" +msgstr "Añadir contacto" #: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" +#, fuzzy +msgid "Recent calls" +msgstr "Llamadas recientes " #: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" +#, fuzzy +msgid "My current identity:" +msgstr "Mi identidad actual:" -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#, fuzzy +msgid "Username" +msgstr "Nombre de usuario" -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#, fuzzy +msgid "Password" +msgstr "Contraseña:" #: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" +msgid "Internet connection:" +msgstr "Conexión a Internet" #: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" +msgid "Automatically log me in" +msgstr "Iniciar sesión automáticamente" #: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" +#, fuzzy +msgid "Login information" +msgstr "Datos de inicio de sesión" #: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" +#, fuzzy +msgid "Welcome !" +msgstr "¡Bienvenido/a!" #: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" +msgid "All users" +msgstr "Todos los usuarios" #: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" +#, fuzzy +msgid "Online users" +msgstr "Usuarios conectados" #: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" +msgid "ADSL" +msgstr "ADSL" #: ../gtk/main.ui.h:45 -msgid "Search" -msgstr "" +msgid "Fiber Channel" +msgstr "Canal de Fibra" #: ../gtk/main.ui.h:46 #, fuzzy -msgid "Add contacts from directory" -msgstr "Informacion de codec" +msgid "Default" +msgstr "Predeterminado" #: ../gtk/main.ui.h:47 -#, fuzzy -msgid "Add contact" -msgstr "(Ninguna informacion de contacto !)" - -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 -#, fuzzy -msgid "Recent calls" -msgstr "Contactando " - -#: ../gtk/main.ui.h:50 -#, fuzzy -msgid "My current identity:" -msgstr "Identidad" - -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 -#, fuzzy -msgid "Username" -msgstr "Manual de Usuario" - -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 -#, fuzzy -msgid "Password" -msgstr "Tu Contraseña:" - -#: ../gtk/main.ui.h:53 -msgid "Internet connection:" -msgstr "" - -#: ../gtk/main.ui.h:54 -msgid "Automatically log me in" -msgstr "" - -#: ../gtk/main.ui.h:55 -#, fuzzy -msgid "Login information" -msgstr "Informacion de codec" - -#: ../gtk/main.ui.h:56 -#, fuzzy -msgid "Welcome !" -msgstr "Contactando " - -#: ../gtk/main.ui.h:57 -msgid "All users" -msgstr "" - -#: ../gtk/main.ui.h:58 -#, fuzzy -msgid "Online users" -msgstr "linea" - -#: ../gtk/main.ui.h:59 -msgid "ADSL" -msgstr "" - -#: ../gtk/main.ui.h:60 -msgid "Fiber Channel" -msgstr "" - -#: ../gtk/main.ui.h:61 -#, fuzzy -msgid "Default" -msgstr "Identidad" - -#: ../gtk/main.ui.h:62 msgid "Delete" msgstr "" #: ../gtk/about.ui.h:1 #, fuzzy msgid "About linphone" -msgstr "linphone" +msgstr "Acerca de linphone" #: ../gtk/about.ui.h:2 +#, fuzzy msgid "(C) Belledonne Communications,2010\n" -msgstr "" +msgstr "(C) Belledonne Communications, 2010\n" #: ../gtk/about.ui.h:4 msgid "An internet video phone using the standard SIP (rfc3261) protocol." msgstr "" +"Un vídeo-teléfono a través de Internet que usa el protocolo estándar SIP " +"(rfc3261)" #: ../gtk/about.ui.h:5 msgid "" @@ -951,29 +968,40 @@ msgid "" "cs: Petr Pisar \n" "hu: anonymous\n" msgstr "" +"fr: Simon Morlat\n" +"en: Simon Morlat and Delphine Perreau\n" +"it: Alberto Zanoni \n" +"de: Jean-Jacques Sarton \n" +"sv: Daniel Nylander \n" +"es: Jesus Benitez \n" +"ja: YAMAGUCHI YOSHIYA \n" +"pt_BR: Rafael Caesar Lenzi \n" +"pl: Robert Nasiadek \n" +"cs: Petr Pisar \n" +"hu: anonymous\n" #: ../gtk/contact.ui.h:2 #, fuzzy msgid "SIP Address" -msgstr "Direccion" +msgstr "Dirección SIP" #: ../gtk/contact.ui.h:3 msgid "Show this contact presence status" -msgstr "" +msgstr "Mostrar el estado de presencia de este contacto" #: ../gtk/contact.ui.h:4 msgid "Allow this contact to see my presence status" -msgstr "" +msgstr "Permitir que este contacto vea mi estado de presencia" #: ../gtk/contact.ui.h:5 #, fuzzy msgid "Contact information" -msgstr "Informacion de codec" +msgstr "Información de contacto" #: ../gtk/log.ui.h:1 #, fuzzy msgid "Linphone debug window" -msgstr "Linphone esta terminando..." +msgstr "Ventana de depuración de linphone" #: ../gtk/log.ui.h:2 msgid "Scroll to end" @@ -982,406 +1010,425 @@ msgstr "" #: ../gtk/password.ui.h:1 #, fuzzy msgid "Linphone - Authentication required" -msgstr "Informacion de codec" +msgstr "Linphone - Autenticación necesaria" #: ../gtk/password.ui.h:2 msgid "Please enter the domain password" -msgstr "" +msgstr "Por favor introduzca la contraseña del dominio" #: ../gtk/password.ui.h:3 msgid "UserID" -msgstr "" +msgstr "UserID" #: ../gtk/call_logs.ui.h:1 msgid "Call history" -msgstr "" +msgstr "Registro de llamadas" #: ../gtk/call_logs.ui.h:2 msgid "Clear all" -msgstr "" +msgstr "Borrar todos" #: ../gtk/call_logs.ui.h:3 msgid "Call back" -msgstr "" +msgstr "Devolver llamada" #: ../gtk/sip_account.ui.h:1 msgid "Linphone - Configure a SIP account" -msgstr "" +msgstr "Linphone - Configurar una cuenta SIP" #: ../gtk/sip_account.ui.h:2 #, fuzzy msgid "Your SIP identity:" -msgstr "Identidad" +msgstr "Su identidad SIP" #: ../gtk/sip_account.ui.h:3 msgid "Looks like sip:@" -msgstr "" +msgstr "Del tipo sip:@" #: ../gtk/sip_account.ui.h:4 msgid "sip:" -msgstr "SIP:" +msgstr "sip:" #: ../gtk/sip_account.ui.h:5 #, fuzzy msgid "SIP Proxy address:" -msgstr "Direccion SIP" +msgstr "Dirección del SIP Proxy" #: ../gtk/sip_account.ui.h:6 msgid "Looks like sip:" -msgstr "" +msgstr "Del tipo sip:" #: ../gtk/sip_account.ui.h:7 msgid "Route (optional):" -msgstr "" +msgstr "Ruta (opcional):" #: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" -msgstr "Se ha registrado con exito." +msgstr "Duración del registro (seg):" #: ../gtk/sip_account.ui.h:9 msgid "Register" -msgstr "" +msgstr "Registrarse" #: ../gtk/sip_account.ui.h:10 #, fuzzy msgid "Publish presence information" -msgstr "Informacion de codec" +msgstr "Publicar información de presencia" #: ../gtk/sip_account.ui.h:11 msgid "Configure a SIP account" -msgstr "" +msgstr "Configurar una cuenta SIP" #: ../gtk/parameters.ui.h:1 msgid "default soundcard" -msgstr "" +msgstr "tarjeta de sonido predeterminada" #: ../gtk/parameters.ui.h:2 msgid "a sound card" -msgstr "" +msgstr "una tarjeta de sonido" #: ../gtk/parameters.ui.h:3 msgid "default camera" -msgstr "" +msgstr "cámara predeterminada" #: ../gtk/parameters.ui.h:4 msgid "CIF" -msgstr "" +msgstr "CIF" #: ../gtk/parameters.ui.h:5 #, fuzzy msgid "Audio codecs" -msgstr "Propiedades del codec de Audio" +msgstr "Códecs de Audio" #: ../gtk/parameters.ui.h:6 #, fuzzy msgid "Video codecs" -msgstr "Propiedades del codec de Audio" +msgstr "Códecs de Vídeo" + +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" -msgstr "" +msgstr "SIP (UDP)" #: ../gtk/parameters.ui.h:9 msgid "SIP (TCP)" -msgstr "" +msgstr "SIP (TCP)" #: ../gtk/parameters.ui.h:10 msgid "SIP (TLS)" -msgstr "" +msgstr "SIP (TLS)" #: ../gtk/parameters.ui.h:11 msgid "Settings" -msgstr "" +msgstr "Configuración" #: ../gtk/parameters.ui.h:12 msgid "Set Maximum Transmission Unit:" -msgstr "" +msgstr "Fijar Unidad de Transmisión Máxima:" #: ../gtk/parameters.ui.h:13 msgid "Send DTMFs as SIP info" -msgstr "" +msgstr "Enviar DTMFs como información SIP" #: ../gtk/parameters.ui.h:14 msgid "Use IPv6 instead of IPv4" -msgstr "" +msgstr "Utilizar IPv6 en lugar de IPv4" #: ../gtk/parameters.ui.h:15 #, fuzzy msgid "Transport" -msgstr "Contactando " +msgstr "Transporte " #: ../gtk/parameters.ui.h:16 msgid "Media encryption type" -msgstr "" +msgstr "Tipo de cifrado de medios" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" +msgid "Video RTP/UDP:" +msgstr "Vídeo RTP/UDP" #: ../gtk/parameters.ui.h:18 -msgid "Video RTP/UDP:" -msgstr "" +msgid "Audio RTP/UDP:" +msgstr "Audio RTP/UDP:" #: ../gtk/parameters.ui.h:19 -msgid "Audio RTP/UDP:" -msgstr "" - -#: ../gtk/parameters.ui.h:20 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" msgstr "" +#: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Tipo de cifrado de medios" + #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" -msgstr "" +msgid "Network protocol and ports" +msgstr "Protocolo de red y puertos" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" -msgstr "" +msgid "Direct connection to the Internet" +msgstr "Conexión directa a Internet" #: ../gtk/parameters.ui.h:25 -#, fuzzy -msgid "Public IP address:" -msgstr "Direccion SIP" +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "Tras un NAT/Firewall (especificar la IP de la puerta de enlace debajo)" #: ../gtk/parameters.ui.h:26 -msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +#, fuzzy +msgid "Public IP address:" +msgstr "Dirección IP pública:" #: ../gtk/parameters.ui.h:27 -msgid "Behind NAT / Firewall (use ICE)" -msgstr "" +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" #: ../gtk/parameters.ui.h:28 #, fuzzy -msgid "Stun server:" -msgstr "Servidor de Redireccionamiento" +msgid "Behind NAT / Firewall (use ICE)" +msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" #: ../gtk/parameters.ui.h:29 #, fuzzy -msgid "NAT and Firewall" -msgstr "Contactando " +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" #: ../gtk/parameters.ui.h:30 #, fuzzy -msgid "Network settings" -msgstr "Red" +msgid "Stun server:" +msgstr "Servidor STUN" #: ../gtk/parameters.ui.h:31 #, fuzzy -msgid "Ring sound:" -msgstr "Fuente de grabacion:" +msgid "NAT and Firewall" +msgstr "NAT y Firewall" #: ../gtk/parameters.ui.h:32 -msgid "ALSA special device (optional):" -msgstr "" +#, fuzzy +msgid "Network settings" +msgstr "Configuración de red" #: ../gtk/parameters.ui.h:33 #, fuzzy -msgid "Capture device:" -msgstr "Usar dispositivo de sonido:" +msgid "Ring sound:" +msgstr "Tono de llamada:" #: ../gtk/parameters.ui.h:34 -#, fuzzy -msgid "Ring device:" -msgstr "Usar dispositivo de sonido:" +msgid "ALSA special device (optional):" +msgstr "Dispositivo especial ALSA (opcional):" #: ../gtk/parameters.ui.h:35 #, fuzzy -msgid "Playback device:" -msgstr "Usar dispositivo de sonido:" +msgid "Capture device:" +msgstr "Dispositivo de captura:" #: ../gtk/parameters.ui.h:36 -msgid "Enable echo cancellation" -msgstr "" +#, fuzzy +msgid "Ring device:" +msgstr "Dispositivo de sonido:" #: ../gtk/parameters.ui.h:37 #, fuzzy -msgid "Audio" -msgstr "Contactando " +msgid "Playback device:" +msgstr "Dispositivo de reproducción:" #: ../gtk/parameters.ui.h:38 -#, fuzzy -msgid "Video input device:" -msgstr "Usar dispositivo de sonido:" +msgid "Enable echo cancellation" +msgstr "Activar cancelación de eco" #: ../gtk/parameters.ui.h:39 -msgid "Prefered video resolution:" -msgstr "" +#, fuzzy +msgid "Audio" +msgstr "Audio" #: ../gtk/parameters.ui.h:40 #, fuzzy -msgid "Video" -msgstr "Contactando " +msgid "Video input device:" +msgstr "Dispositivo de entrada de vídeo:" #: ../gtk/parameters.ui.h:41 -msgid "Multimedia settings" -msgstr "" +msgid "Prefered video resolution:" +msgstr "Resolución de vídeo preferida:" #: ../gtk/parameters.ui.h:42 -msgid "This section defines your SIP address when not using a SIP account" -msgstr "" +#, fuzzy +msgid "Video" +msgstr "Vídeo " #: ../gtk/parameters.ui.h:43 -msgid "Your display name (eg: John Doe):" -msgstr "" +msgid "Multimedia settings" +msgstr "Configuración multimedia" #: ../gtk/parameters.ui.h:44 -#, fuzzy -msgid "Your username:" -msgstr "Manual de Usuario" +msgid "This section defines your SIP address when not using a SIP account" +msgstr "Esta sección define su dirección SIP cuando no utiliza una cuenta SIP" #: ../gtk/parameters.ui.h:45 -#, fuzzy -msgid "Your resulting SIP address:" -msgstr "Tu direccion SIP:" +msgid "Your display name (eg: John Doe):" +msgstr "Su nombre a mostrar (x ej: Pepito Pérez):" #: ../gtk/parameters.ui.h:46 #, fuzzy -msgid "Default identity" -msgstr "Identidad" +msgid "Your username:" +msgstr "Su nombre de usuario:" #: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Your resulting SIP address:" +msgstr "Su dirección SIP resultante:" + +#: ../gtk/parameters.ui.h:48 +#, fuzzy +msgid "Default identity" +msgstr "Identidad predeterminada" + +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 -msgid "Remove" -msgstr "Borrar" - -#: ../gtk/parameters.ui.h:51 -#, fuzzy -msgid "Proxy accounts" -msgstr "Contactando " - #: ../gtk/parameters.ui.h:52 -msgid "Erase all passwords" -msgstr "" +msgid "Remove" +msgstr "Eliminar" #: ../gtk/parameters.ui.h:53 #, fuzzy -msgid "Privacy" -msgstr "Contactando " +msgid "Proxy accounts" +msgstr "Cuentas Proxy" #: ../gtk/parameters.ui.h:54 -msgid "Manage SIP Accounts" -msgstr "" +msgid "Erase all passwords" +msgstr "Borrar todas las contraseñas" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 -msgid "Enable" -msgstr "Activado" - -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 -msgid "Disable" -msgstr "Desactivado" - -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:55 #, fuzzy -msgid "Codecs" -msgstr "Contactando " +msgid "Privacy" +msgstr "Privacidad" -#: ../gtk/parameters.ui.h:58 -msgid "0 stands for \"unlimited\"" -msgstr "" +#: ../gtk/parameters.ui.h:56 +msgid "Manage SIP Accounts" +msgstr "Gestionar cuentas SIP" + +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +msgid "Enable" +msgstr "Activar" + +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +msgid "Disable" +msgstr "Desactivar" #: ../gtk/parameters.ui.h:59 -msgid "Upload speed limit in Kbit/sec:" -msgstr "" +#, fuzzy +msgid "Codecs" +msgstr "Códecs" #: ../gtk/parameters.ui.h:60 -msgid "Download speed limit in Kbit/sec:" -msgstr "" +msgid "0 stands for \"unlimited\"" +msgstr "0 significa \"ilimitado\"" #: ../gtk/parameters.ui.h:61 -msgid "Enable adaptive rate control" -msgstr "" +msgid "Upload speed limit in Kbit/sec:" +msgstr "Velocidad límite de subida en Kbit/seg" #: ../gtk/parameters.ui.h:62 +msgid "Download speed limit in Kbit/sec:" +msgstr "Velocidad límite de descarga en Kbit/seg:" + +#: ../gtk/parameters.ui.h:63 +msgid "Enable adaptive rate control" +msgstr "Activar control de frecuencia adaptativo" + +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" - -#: ../gtk/parameters.ui.h:63 -msgid "Bandwidth control" -msgstr "" - -#: ../gtk/parameters.ui.h:64 -#, fuzzy -msgid "Codecs" -msgstr "Codecs" +"Control de frecuencia adaptativo es una técnica que estima dinámicamente " +"el ancho de banda disponible durante la llamada." #: ../gtk/parameters.ui.h:65 -#, fuzzy -msgid "Language" -msgstr "Contactando " +msgid "Bandwidth control" +msgstr "Control de ancho de banda" #: ../gtk/parameters.ui.h:66 -msgid "Show advanced settings" -msgstr "" +#, fuzzy +msgid "Codecs" +msgstr "Códecs" #: ../gtk/parameters.ui.h:67 #, fuzzy -msgid "Level" -msgstr "Contactando " +msgid "Language" +msgstr "Idioma" #: ../gtk/parameters.ui.h:68 -#, fuzzy -msgid "User interface" -msgstr "Manual de Usuario" +msgid "Show advanced settings" +msgstr "Mostrar opciones avanzadas" #: ../gtk/parameters.ui.h:69 #, fuzzy +msgid "Level" +msgstr "Nivel" + +#: ../gtk/parameters.ui.h:70 +#, fuzzy +msgid "User interface" +msgstr "Interfaz de Usuario" + +#: ../gtk/parameters.ui.h:71 +#, fuzzy msgid "Done" -msgstr "Ninguno." +msgstr "Hecho" #: ../gtk/buddylookup.ui.h:1 #, fuzzy msgid "Search contacts in directory" -msgstr "Informacion de codec" +msgstr "Buscar contactos en directorio" #: ../gtk/buddylookup.ui.h:2 msgid "Add to my list" -msgstr "" +msgstr "Añadir a mi lista" #: ../gtk/buddylookup.ui.h:3 #, fuzzy msgid "Search somebody" -msgstr "Contactando " +msgstr "Buscar a alguien" #: ../gtk/waiting.ui.h:1 #, fuzzy msgid "Linphone" -msgstr "linphone" +msgstr "Linphone" #: ../gtk/waiting.ui.h:2 msgid "Please wait" -msgstr "" +msgstr "Espere por favor" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy msgid "Dscp settings" -msgstr "Red" +msgstr "Configuración" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" msgstr "SIP" #: ../gtk/dscp_settings.ui.h:3 +#, fuzzy msgid "Audio RTP stream" -msgstr "" +msgstr "Audio RTP/UDP:" #: ../gtk/dscp_settings.ui.h:4 +#, fuzzy msgid "Video RTP stream" -msgstr "" +msgstr "Vídeo RTP/UDP" #: ../gtk/dscp_settings.ui.h:5 msgid "Set DSCP values (in hexadecimal)" @@ -1394,19 +1441,19 @@ msgstr "" #: ../gtk/call_statistics.ui.h:2 #, fuzzy msgid "Audio codec" -msgstr "Propiedades del codec de Audio" +msgstr "Códecs de Audio" #: ../gtk/call_statistics.ui.h:3 #, fuzzy msgid "Video codec" -msgstr "Propiedades del codec de Audio" +msgstr "Códecs de Vídeo" #: ../gtk/call_statistics.ui.h:4 msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1414,13 +1461,23 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Propiedades de sonido" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" -msgstr "Informacion de codec" +msgstr "Información de contacto" #: ../gtk/tunnel_config.ui.h:1 +#, fuzzy msgid "Configure VoIP tunnel" -msgstr "" +msgstr "Configurar una cuenta SIP" #: ../gtk/tunnel_config.ui.h:2 msgid "Host" @@ -1438,19 +1495,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 -msgid "aborted" -msgstr "" +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" -#: ../coreapi/linphonecore.c:235 +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 +msgid "aborted" +msgstr "abortada" + +#: ../coreapi/linphonecore.c:230 msgid "completed" -msgstr "" +msgstr "completada" + +#: ../coreapi/linphonecore.c:233 +msgid "missed" +msgstr "perdida" #: ../coreapi/linphonecore.c:238 -msgid "missed" -msgstr "" - -#: ../coreapi/linphonecore.c:243 #, c-format msgid "" "%s at %s\n" @@ -1459,79 +1576,85 @@ msgid "" "Status: %s\n" "Duration: %i mn %i sec\n" msgstr "" +"%s en %s\n" +"De: %s\n" +"Para: %s\n" +"Estado: %s\n" +"Duración: %i min %i seg\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" -msgstr "" +msgstr "Llamada saliente" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 #, fuzzy msgid "Ready" -msgstr "Preparado." +msgstr "Preparado" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." -msgstr "" +msgstr "Buscando el número de teléfono del destinatario…" -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." -msgstr "" +msgstr "No se ha podido resolver este número." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" -"Direccion SIP mal escrita. Una direccion SIP es " +"Dirección SIP mal escrita. Una dirección SIP es del tipo " -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 #, fuzzy msgid "Contacting" -msgstr "Contactando " +msgstr "Contactando" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" -msgstr "No se pudo encontrar el archivo pixmap: %s" +msgstr "No se pudo llamar" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" -msgstr "" +msgstr "Disculpe, se ha alcanzado el máximo número de llamadas simultáneas" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" -msgstr "le esta llamando." +msgstr "le está llamando" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." -msgstr "" +msgstr "y ha solicitado auto respuesta." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." -msgstr "" +msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." -msgstr "" +msgstr "Modificando parámetros de llamada…" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" -msgstr "Llamada cancelada." +msgstr "Llamada abortada" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" -msgstr "" +msgstr "No se pudo pausar la llamada" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." -msgstr "" +msgstr "Pausando la llamada actual..." #: ../coreapi/misc.c:148 msgid "" @@ -1540,8 +1663,8 @@ msgid "" "is missing and linphone needs it. Please execute\n" "'modprobe snd-pcm-oss' as root to load it." msgstr "" -"Tu ordenador parece estar usando los controladores de ALSA.\n" -"Esa es la mejor eleccion. Sin embargo el modulo de emulacion pcm de OSS\n" +"Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" +"Ésta es la mejor elección. Sin embargo, el módulo de emulación pcm de OSS\n" "no se encuentra y linphone lo necesita. Por favor ejecute\n" "'modprobe snd-pcm-oss' como root para cargarlo." @@ -1552,14 +1675,14 @@ msgid "" "is missing and linphone needs it. Please execute\n" " 'modprobe snd-mixer-oss' as root to load it." msgstr "" -"Tu ordenador parece estar usando los controladores de ALSA.\n" -"Esa es la mejor eleccion. Sin embargo el modulo de emulacion mixer de OSS\n" +"Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" +"Ésta es la mejor elección. Sin embargo, el módulo de emulación mixer de OSS\n" "no se encuentra y linphone lo necesita. Por favor ejecute\n" " 'modprobe snd-mixer-oss' como root para cargarlo." #: ../coreapi/misc.c:496 msgid "Stun lookup in progress..." -msgstr "" +msgstr "Búsqueda STUN en proceso…" #: ../coreapi/misc.c:630 msgid "ICE local candidates gathering in progress..." @@ -1568,15 +1691,15 @@ msgstr "" #: ../coreapi/friend.c:33 #, fuzzy msgid "Online" -msgstr "linea" +msgstr "Conectado" #: ../coreapi/friend.c:36 msgid "Busy" -msgstr "" +msgstr "Ocupado" #: ../coreapi/friend.c:39 msgid "Be right back" -msgstr "" +msgstr "Vuelvo enseguida" #: ../coreapi/friend.c:42 msgid "Away" @@ -1585,11 +1708,11 @@ msgstr "Ausente" #: ../coreapi/friend.c:45 #, fuzzy msgid "On the phone" -msgstr "linphone" +msgstr "Al teléfono" #: ../coreapi/friend.c:48 msgid "Out to lunch" -msgstr "" +msgstr "A comer" #: ../coreapi/friend.c:51 msgid "Do not disturb" @@ -1598,309 +1721,371 @@ msgstr "No molestar" #: ../coreapi/friend.c:54 #, fuzzy msgid "Moved" -msgstr "Codecs" +msgstr "Fuera" #: ../coreapi/friend.c:57 msgid "Using another messaging service" -msgstr "" +msgstr "Utilizando otro servicio de mensajería" #: ../coreapi/friend.c:60 #, fuzzy msgid "Offline" -msgstr "linea" +msgstr "Desconectado" #: ../coreapi/friend.c:63 msgid "Pending" -msgstr "" +msgstr "Pendiente" #: ../coreapi/friend.c:66 msgid "Unknown-bug" -msgstr "" +msgstr "Bug-desconocido" #: ../coreapi/proxy.c:204 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" +"La dirección del Proxy SIP que ha introducido no es válida, debe empezar con " +"\"sip:\" seguido del hostname." #: ../coreapi/proxy.c:210 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" +"La identidad SIP que ha introducido no es válida.\n" +"Debe ser del tipo sip:username@proxydomain, como por ejemplo sip:" +"alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" -msgstr "No se pudo encontrar el archivo pixmap: %s" +msgstr "No se pudo iniciar sesión como %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." -msgstr "Registrando..." +msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." -msgstr "Registrando..." +msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." -msgstr "" - -#: ../coreapi/callbacks.c:352 -#, c-format -msgid "Call with %s is paused." -msgstr "" +msgstr "Medios iniciales." #: ../coreapi/callbacks.c:365 #, c-format -msgid "Call answered by %s - on hold." -msgstr "" +msgid "Call with %s is paused." +msgstr "La llamada con %s está puesta en pausa." -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:378 +#, c-format +msgid "Call answered by %s - on hold." +msgstr "Llamada respondida por %s - en espera." + +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." -msgstr "Llamada cancelada." +msgstr "Llamada reanudada." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." -msgstr "" -"Llamar o\n" -"Responder" +msgstr "Llamada respondida por %s." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 +#, fuzzy msgid "We have been resumed." -msgstr "" +msgstr "Nos han reanudado..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 +#, fuzzy msgid "Call is updated by remote." -msgstr "" +msgstr "La llamada ha sido actualizada por el destinatario..." -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 #, fuzzy msgid "Call terminated." -msgstr "Llamada cancelada." +msgstr "Llamada finalizada." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." -msgstr "El usuario esta ocupado." +msgstr "El usuario está ocupado." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." -msgstr "El usuario le dice que volvera enseguida." +msgstr "El usuario no está disponible temporalmente." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." -msgstr "El usuario no quiere que lo molesten." +msgstr "El usuario no quiere que le molesten." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." -msgstr "Llamada cancelada." +msgstr "Llamada rechazada." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." -msgstr "" +msgstr "No hay respuesta." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." -msgstr "" +msgstr "Error de protocolo." -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" -msgstr "" +msgstr "Redigirida" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." -msgstr "Llamada cancelada." +msgstr "La llamada ha fallado." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, fuzzy, c-format msgid "Registration on %s successful." -msgstr "Se ha registrado con exito." +msgstr "Se ha registrado con éxito en %s." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." -msgstr "Se ha registrado con exito." +msgstr "Cancelación de registro en %s completada." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" -msgstr "" +msgstr "timeout sin respuesta" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, fuzzy, c-format msgid "Registration on %s failed: %s" -msgstr "Se ha registrado con exito." +msgstr "El registro en %s ha fallado." #: ../coreapi/linphonecall.c:129 #, fuzzy, c-format msgid "Authentication token is %s" -msgstr "Informacion de codec" +msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tiene %i llamada perdida." +msgstr[1] "Tiene %i llamadas perdidas." + +#~ msgid "Chat with %s" +#~ msgstr "Conversación con %s" + +#~ msgid "by %s" +#~ msgstr "por %s" + +#~ msgid "Please choose a username:" +#~ msgstr "Por favor, elija un nombre de usuario" + +#~ msgid "Checking if '%s' is available..." +#~ msgstr "Comprobando si '%s' está disponible..." + +#~ msgid "Please wait..." +#~ msgstr "Espere por favor..." + +#~ msgid "Sorry this username already exists. Please try a new one." +#~ msgstr "" +#~ "El nombre de usuario elegido ya existe. Por favor, intente con uno nuevo." + +#~ msgid "Ok !" +#~ msgstr "¡Ok!" + +#~ msgid "Communication problem, please try again later." +#~ msgstr "" +#~ "Error en la comunicación, por favor inténtelo de nuevo más adelante." + +#~ msgid "Choosing a username" +#~ msgstr "Eligiendo un nombre de usuario" + +#~ msgid "Verifying" +#~ msgstr "Verificando" #, fuzzy #~ msgid "Confirmation" -#~ msgstr "Informacion" +#~ msgstr "Confirmación" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Contactando " +#~ msgid "Creating your account" +#~ msgstr "Creando su cuenta" + +#~ msgid "Now ready !" +#~ msgstr "¡Ya está listo!" #, fuzzy #~ msgid "Enable video" -#~ msgstr "Activado" +#~ msgstr "Activar vídeo" + +#~ msgid "Enter username, phone number, or full sip address" +#~ msgstr "Introducir nombre de usuario, teléfono o dirección SIP" + +#~ msgid "Keypad" +#~ msgstr "Teclado Numérico" + +#~ msgid "Lookup:" +#~ msgstr "Búsqueda:" + +#~ msgid "in" +#~ msgstr "en" + +#~ msgid "" +#~ "Register to FONICS\n" +#~ "virtual network !" +#~ msgstr "" +#~ "¡Registrar en la red\n" +#~ "virtual FONICS!" + +#~ msgid "We are being paused..." +#~ msgstr "Nos están poniendo en pausa..." + +#~ msgid "No common codecs" +#~ msgstr "No hay códecs comunes" #, fuzzy #~ msgid "Authentication failure" -#~ msgstr "Informacion de codec" +#~ msgstr "Error de autenticación" #, fuzzy #~ msgid "Contact list" -#~ msgstr "Contactando " +#~ msgstr "Lista de contactos " #, fuzzy #~ msgid "Audio & video" -#~ msgstr "Propiedades del codec de Audio" +#~ msgstr "Audio & Vídeo" #, fuzzy #~ msgid "Audio only" -#~ msgstr "Propiedades del codec de Audio" +#~ msgstr "Sólo audio" #, fuzzy #~ msgid "Duration:" -#~ msgstr "Informacion" +#~ msgstr "Duración:" #, fuzzy #~ msgid "_Linphone" -#~ msgstr "linphone" +#~ msgstr "_Linphone" #, fuzzy #~ msgid "gtk-cancel" -#~ msgstr "Conectado." +#~ msgstr "gtk-cancelar" #, fuzzy #~ msgid "gtk-ok" -#~ msgstr "Borrar" +#~ msgstr "gtk-ok" #, fuzzy #~ msgid "gtk-close" -#~ msgstr "Conectado." - -#, fuzzy -#~ msgid "Ports" -#~ msgstr "Contactando " +#~ msgstr "gtk-cerrar." #, fuzzy #~ msgid "_Modes" -#~ msgstr "Codecs" +#~ msgstr "_Modos" #, fuzzy #~ msgid "" #~ "Audio codecs\n" #~ "Video codecs" -#~ msgstr "Propiedades del codec de Audio" +#~ msgstr "" +#~ "Códecs de audio\n" +#~ "Códecs de vídeo" #, fuzzy #~ msgid "Request Cancelled." -#~ msgstr "Llamada cancelada." +#~ msgstr "Petición cancelada." #~ msgid "User cannot be found at given address." -#~ msgstr "No se encontro ningun usuario en la direccion indicada." +#~ msgstr "No se encontró ningún usuario en la dirección indicada." #~ msgid "Remote user cannot support any of proposed codecs." -#~ msgstr "El usuario remoto no soporta ninguno de los codecs propuestos." +#~ msgstr "El usuario remoto no soporta ninguno de los códecs propuestos." #~ msgid "Timeout." #~ msgstr "Tiempo agotado." #~ msgid "Remote host was found but refused connection." -#~ msgstr "Se encontro host remoto pero rechazo la conexion." +#~ msgstr "Se encontró el host remoto pero rechazó la conexión." #~ msgid "" #~ "User is not reachable at the moment but he invites you\n" #~ "to contact him using the following alternate resource:" #~ msgstr "" -#~ "Usuario no disponible en este momento pero le invita\n" +#~ "El usuario no está disponible en este momento pero le invita\n" #~ "a contactarle usando el siguiente recurso alternativo:" #, fuzzy #~ msgid "Gone" -#~ msgstr "Ninguno." +#~ msgstr "Ausente" #, fuzzy #~ msgid "SIP address" -#~ msgstr "Direccion" +#~ msgstr "Dirección SIP" #, fuzzy #~ msgid "Display filters" -#~ msgstr "Nombre a mostrar:" +#~ msgstr "Filtros a mostrar" #, fuzzy #~ msgid "_Properties" -#~ msgstr "Propiedades de RTP" +#~ msgstr "_Propiedades" #, fuzzy #~ msgid "Proxy in use" -#~ msgstr "Servidor Proxy" +#~ msgstr "Proxy en uso" #~ msgid "Sound" #~ msgstr "Sonido" #, fuzzy #~ msgid "Proxy accounts" -#~ msgstr "Servidor Proxy" +#~ msgstr "Cuentas Proxy" #~ msgid "Address book" #~ msgstr "Agenda" #, fuzzy #~ msgid "Shows the address book" -#~ msgstr "Muestra la Agenda" +#~ msgstr "Muestra la agenda" #~ msgid "Show more..." -#~ msgstr "Mostrar mas..." +#~ msgstr "Mostrar más..." #~ msgid "Playback level:" -#~ msgstr "Nivel de reproduccion:" +#~ msgstr "Nivel de reproducción:" #~ msgid "Recording level:" -#~ msgstr "Nivel de Grabacion:" +#~ msgstr "Nivel de Grabación:" #, fuzzy #~ msgid "Ring level:" -#~ msgstr "Nivel de Grabacion:" +#~ msgstr "Nivel de tono de llamada:" #~ msgid "Reachable" #~ msgstr "Disponible" #~ msgid "Busy, I'll be back in " -#~ msgstr "Ocupado, estare de vuelta en " +#~ msgstr "Ocupado, estaré de vuelta en " #~ msgid "The other party will be informed that you'll be back in X minutes" #~ msgstr "" -#~ "Se le comunicara a la otra persona que estaras de vuelta en X minutos" +#~ "Se le comunicará a la otra persona que estará de vuelta en X minutos" #~ msgid "mn" #~ msgstr "min" @@ -1915,10 +2100,10 @@ msgstr[1] "" #~ msgstr "URL:" #~ msgid "Presence" -#~ msgstr "Estado" +#~ msgstr "Presencia" #~ msgid "Press digits to send DTMFs." -#~ msgstr "Pulsa los digitos para mandar DTMFs." +#~ msgstr "Pulsa los dígitos para mandar DTMFs." #~ msgid "DTMF" #~ msgstr "DTMF" @@ -1927,20 +2112,20 @@ msgstr[1] "" #~ "Linphone is a web-phone.\n" #~ "It is compatible with SIP and RTP protocols." #~ msgstr "" -#~ "Linphone es un telefono para Internet.\n" +#~ "Linphone es un teléfono web.\n" #~ "Es compatible con los protocolos SIP y RTP." #, fuzzy #~ msgid "Use IPv6 network (if available)" -#~ msgstr "El usuario le dice que volvera enseguida." +#~ msgstr "Utilizar red IPv6 (si está disponible)" #, fuzzy #~ msgid "" #~ "These options is only for users in a private network, behind a gateway. " #~ "If you are not in this situation, then leave this empty." #~ msgstr "" -#~ "Esta opcion es solo para usuarios en una red privada, detras de un " -#~ "cortafuegos. Siese no es tu caso, deja esto vacio." +#~ "Esta opción es sólo para usuarios de una red privada, tras una puerta de " +#~ "enlace.Si no es su caso, deje esto vacío." #, fuzzy #~ msgid "NAT traversal options (experimental)" @@ -1948,22 +2133,19 @@ msgstr[1] "" #, fuzzy #~ msgid "Number of buffered miliseconds (jitter compensation):" -#~ msgstr "Numero de milisegundos en el buffer(compensacion jitter):" +#~ msgstr "Número de milisegundos en el buffer (compensación jitter):" #~ msgid "RTP port used for audio:" #~ msgstr "Puerto RTP usado para audio:" #~ msgid "micro" -#~ msgstr "microfono" +#~ msgstr "micrófono" #~ msgid "Recording source:" -#~ msgstr "Fuente de grabacion:" - -#~ msgid "Sound properties" -#~ msgstr "Propiedades de sonido" +#~ msgstr "Fuente de grabación:" #~ msgid "Run sip user agent on port:" -#~ msgstr "Ejecutar SIP user agent en el puerto:" +#~ msgstr "Ejecutar el agente de usuario SIP en el puerto:" #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Se recomienda encarecidamente usar el puerto 5060." @@ -1979,27 +2161,27 @@ msgstr[1] "" #, fuzzy #~ msgid "Add proxy/registrar" -#~ msgstr "Usar el registro SIP" +#~ msgstr "Añadir proxy/registrador" #~ msgid "Remote services" -#~ msgstr "Servicios Remotos:" +#~ msgstr "Servicios remotos" #~ msgid "List of audio codecs, in order of preference:" -#~ msgstr "Lista de codecs de audio, en orden de preferencia:" +#~ msgstr "Lista de códecs de audio, en orden de preferencia:" #~ msgid "" -#~ "Note: Codecs in red are not usable regarding to your connection type to " +#~ "Note: Codecs in red are not usable according to your connection type to " #~ "the internet." #~ msgstr "" -#~ "Nota: Los codecs en ROJO no son adecuados para tu conexion a internet." +#~ "Nota: Los códecs en ROJO no son adecuados para su conexión a Internet." #, fuzzy -#~ msgid "No information availlable" -#~ msgstr "Informacion no disponible" +#~ msgid "No information available" +#~ msgstr "Información no disponible" #, fuzzy #~ msgid "Codec information" -#~ msgstr "Informacion de codec" +#~ msgstr "Información de códec" #~ msgid "Address Book" #~ msgstr "Agenda" @@ -2009,45 +2191,46 @@ msgstr[1] "" #~ msgid "" #~ "User is not reachable at the moment but he invites you to contact him " -#~ "using the following alternate ressource:" +#~ "using the following alternate resource:" #~ msgstr "" -#~ "Usuario no disponible en este momento pero le invita a contactarle usando " -#~ "el siguiente recurso alternativo:" +#~ "El usuario no está disponible en este momento pero le invita a " +#~ "contactarle usando el siguiente recurso alternativo:" #~ msgid "None." #~ msgstr "Ninguno." #, fuzzy #~ msgid "Name:" -#~ msgstr "Nombre" +#~ msgstr "Nombre:" #, fuzzy #~ msgid "Bad sip address: a sip address looks like sip:user@domain" #~ msgstr "" -#~ "Direccion SIP mal escrita. Una direccion SIP es " +#~ "Dirección SIP mal escrita. Una dirección SIP es del tipo " #~ msgid "Communication ended." -#~ msgstr "Comunicacion finalizada." +#~ msgstr "Comunicación finalizada." #, fuzzy #~ msgid "Firewall 's external ip address (in dot notations):" -#~ msgstr "Direccion IP del cortafuegos (en notacion con puntos):" +#~ msgstr "Dirección IP del cortafuegos (en notación con puntos):" #~ msgid "Index" -#~ msgstr "Indice" +#~ msgstr "Índice" #, fuzzy #~ msgid "Server address" -#~ msgstr "Direccion del Servidor:" +#~ msgstr "Dirección del Servidor:" #~ msgid "28k modem" -#~ msgstr "modem 28k" +#~ msgstr "módem 28k" #~ msgid "56k modem" -#~ msgstr "modem 56k" +#~ msgstr "módem 56k" #~ msgid "64k modem (numeris)" -#~ msgstr "modem 64k (numeris)" +#~ msgstr "módem 64k (numeris)" #~ msgid "ADSL or Cable modem" #~ msgstr "ADSL o Cable" @@ -2056,18 +2239,18 @@ msgstr[1] "" #~ msgstr "Ethernet o equivalente" #~ msgid "Connection type:" -#~ msgstr "Tipo de conexion:" +#~ msgstr "Tipo de conexión:" #, fuzzy #~ msgid "" #~ "Linphone could not open audio device %s. Check if your sound card is " #~ "fully configured and working." #~ msgstr "" -#~ "Linphone no pudo abrir el dispositivo de audio. Asegurese que su tarjeta " -#~ "de sonido esta completamente configurada y operativa." +#~ "Linphone no pudo abrir el dispositivo de audio %s. Compruebe que su " +#~ "tarjeta de sonido está completamente configurada y operativa." #~ msgid "Type here the sip address of the person you want to call." -#~ msgstr "Escribe aqui la direccion SIP de la persona que quieres llamar." +#~ msgstr "Escriba aquí la dirección SIP del destinatario." #~ msgid "" #~ "Release or\n" @@ -2081,13 +2264,13 @@ msgstr[1] "" #, fuzzy #~ msgid "Timeout..." -#~ msgstr "Tiempo agotado." +#~ msgstr "Tiempo agotado..." #~ msgid "Toggle this if you want to be registered on a remote server." -#~ msgstr "Marcar opcion si desea registrarse en un servidor remoto." +#~ msgstr "Marque esta opción si desea registrarse en un servidor remoto." #~ msgid "Address of record:" -#~ msgstr "Nombre de registro:" +#~ msgstr "Dirección de registro:" #~ msgid "" #~ "The password used for registration. On some servers it is not necessary" @@ -2096,10 +2279,10 @@ msgstr[1] "" #~ "necesaria" #~ msgid "Use this registrar server as outbound proxy." -#~ msgstr "Usar el servidor de registro como outbound proxy." +#~ msgstr "Usar este servidor de registro como proxy de salida." #~ msgid "sip address:" -#~ msgstr "Direccion SIP:" +#~ msgstr "Dirección SIP:" #~ msgid "Modify" #~ msgstr "Modificar" @@ -2111,20 +2294,20 @@ msgstr[1] "" #~ "either with packages from your distribution, or by downloading\n" #~ "ALSA drivers at http://www.alsa-project.org." #~ msgstr "" -#~ "Estas usando actualmente el controlador i810_audio.\n" -#~ "Ese controlador tiene errores y por tanto no funciona con Linphone.\n" -#~ "Le recomendamos que lo sustituya por su controlador equivalente de ALSA,\n" -#~ "ya sea mediante paquetes de su distribucion, o descargando\n" +#~ "Está usando actualmente el controlador i810_audio.\n" +#~ "Este controlador tiene errores y por tanto no funciona con Linphone.\n" +#~ "Le recomendamos que lo sustituya por el controlador equivalente de ALSA,\n" +#~ "ya sea mediante paquetes de su distribución, o descargando\n" #~ "controladores ALSA de http://www.alsa-project.org." -#~ msgid "Unregistration successfull." -#~ msgstr "Cancelacion del registro completada." +#~ msgid "Unregistration successful." +#~ msgstr "Cancelación del registro completada." #~ msgid "C: 2001" #~ msgstr "Abril 2001" #~ msgid "Select network interface to use:" -#~ msgstr "Selecciona la interfaz de red para usar:" +#~ msgstr "Seleccione la interfaz de red para usar:" #~ msgid "Network interface properties" #~ msgstr "Propiedades de Interfaz de Red:" @@ -2136,7 +2319,7 @@ msgstr[1] "" #~ msgstr "Threads no soportados por glib. Actualize su glib.\n" #~ msgid "Run linphone as a gnome-applet." -#~ msgstr "Lanzar linphone como un gnome-applet." +#~ msgstr "Ejecutar linphone como un gnome-applet." #~ msgid "Run linphone as a daemon (for use without gnome)." #~ msgstr "Ejecutar linphone como demonio (para uso sin gnome)." @@ -2149,10 +2332,10 @@ msgstr[1] "" #~ "parameters 'box." #~ msgstr "" #~ "No se puede encontrar la interfaz de red usada previamente %s.\n" -#~ "Si tu ordenador esta conectado temporalmente a Internet, por favor " -#~ "conecta y entonces ejecuta linphone.\n" -#~ "Si quieres cambiar tu interfaz de red predeterminada, ve a la opcion " -#~ "Parametros." +#~ "Si su ordenador está conectado temporalmente a Internet, por favor " +#~ "conéctese y entonces ejecute linphone.\n" +#~ "Si quiere cambiar su interfaz de red predeterminada, vaya a la casilla " +#~ "Parámetros." #, fuzzy #~ msgid "" @@ -2161,21 +2344,21 @@ msgstr[1] "" #~ "Do you want linphone to kill these programs (esd or artsd) ?" #~ msgstr "" #~ "Linphone no puede abrir el dispositivo de audio.\n" -#~ " Puede deberse a que otros programas lo esten usando.\n" -#~ "¿ Quiere que Linphone cierre esos programas (esd o artsd) ?" +#~ "Puede deberse a que otros programas lo estén usando.\n" +#~ "¿Quiere que Linphone cierre esos programas (esd o artsd)?" #~ msgid "Use it as a:" #~ msgstr "Usarlo como un:" #~ msgid "Outbound proxy" -#~ msgstr "Outbound proxy" +#~ msgstr "Proxy de salida" #~ msgid "" #~ "Togle this button if the registrar must be used to proxy calls through a " #~ "firewall." #~ msgstr "" -#~ "Marcar esta opcion si el servidor de registro debe ser usado para " -#~ "llamadas a proxy a traves de un cortafuegos." +#~ "Marcar esta opción si el servidor de registro debe usarse en llamadas a " +#~ "proxy a través de un firewall." #~ msgid "OSS" #~ msgstr "OSS" @@ -2185,48 +2368,49 @@ msgstr[1] "" #~ msgid "Automatically kill applications using soundcard when needed" #~ msgstr "" -#~ "Cerrar aplicaciones que usen la tarjeta de sonido cuando se necesite." +#~ "Cerrar automáticamente aplicaciones que usen la tarjeta de sonido cuando " +#~ "se necesite." #~ msgid "" #~ "Your computer is connected to several networks. Check in the global " #~ "parameters if Linphone uses the one that you want." #~ msgstr "" -#~ "Tu ordenador esta conectado a varias redes. Revisa en los Parametros " -#~ "globales si Linphone usa la que necesitas." +#~ "Su equipo está conectado a varias redes. Revise en los parámetros " +#~ "globales si Linphone usa la que necesita." #~ msgid "" #~ "Linphone failed to open the sound device. See the README file included in " #~ "the distribution for details." #~ msgstr "" -#~ "Linphone fallo al abrir el dispositivo de sonido. Vea el archivo README " -#~ "incluido en la distribucion para mas detalles." +#~ "Linphone no pudo abrir el dispositivo de sonido. Vea el archivo README " +#~ "incluido en la distribución para más detalles." #~ msgid "Interface not found." #~ msgstr "Interfaz no encontrada." #~ msgid "Warning" -#~ msgstr "Atencion" +#~ msgstr "Advertencia" #~ msgid "" #~ "Linphone cannot open the sound device. It may be caused by other programs " #~ "using it. Do you want linphone to kill these programs (esd or artsd) ?" #~ msgstr "" #~ "Linphone no puede abrir el dispositivo de sonido. Puede deberse a que " -#~ "otros programaslo esten usando. ¿ Quiere que Linphone cierre esos " -#~ "programas (esd o artsd) ?" +#~ "otros programas lo estén usando. ¿Quiere que Linphone cierre esos " +#~ "programas (esd o artsd)?" #~ msgid "Linphone shutdowns..." -#~ msgstr "Linphone esta terminando..." +#~ msgstr "Linphone se está cerrando…" #~ msgid "" -#~ "Please, wait a few seconds untils linphone unregisters your sip addess " +#~ "Please, wait a few seconds until linphone unregisters your sip addess " #~ "from registrar server..." #~ msgstr "" #~ "Por favor, espere unos segundos hasta que Linphone cancele el registro de " -#~ "su direccion SIP en el servidor de registros..." +#~ "su dirección SIP en el servidor de registros..." -#~ msgid "Bad formuled sip address." -#~ msgstr "Direccion SIP mal escrita." +#~ msgid "Bad formulated sip address." +#~ msgstr "Dirección SIP mal escrita." #~ msgid "Couldn't create pixmap from file: %s" #~ msgstr "No se pudo crear pixmap desde el archivo: %s" @@ -2235,30 +2419,30 @@ msgstr[1] "" #~ "Linphone did not detect any valid network interface. If you use a " #~ "temporary internet connection, please connect and then run linphone again." #~ msgstr "" -#~ "Linphone no detecto ninguna interfaz de red valida. Si usas una conexion " -#~ "temporal a Internet, por favor conecta y vuelve a ejecutar Linphone." +#~ "Linphone no detectó ninguna interfaz de red válida. Si usa una conexión " +#~ "temporal a Internet, por favor conéctese y vuelva a ejecutar Linphone." #~ msgid "List of network interfaces on your system." -#~ msgstr "Lista de interfaces de red en tu sistema." +#~ msgstr "Lista de interfaces de red en su sistema." #~ msgid "" -#~ "RTP est le mode de transport de la voix. Modifier ces paramètres pour " -#~ "tenter d'améliorer la qualité de la communication si celle-ci est " -#~ "dégradée." +#~ "RTP est le mode de transport de la voix. Modifier ces paramËtres pour " +#~ "tenter d'amÈliorer la qualitÈ de la communication si celle-ci est " +#~ "dÈgradÈe." #~ msgstr "" -#~ "RTP es el modelo de transporte de la voz. Modifica estos parametros para " -#~ "intentar mejorar la calidad de la comunicacion, si es que.es mala." +#~ "RTP es el modelo de transporte de la voz. Modifique estos parámetros para " +#~ "intentar mejorar la calidad de la comunicación en caso de que sea mala." #~ msgid "Use rtp port:" -#~ msgstr "Puerto RTP:" +#~ msgstr "Usar puerto RTP:" #~ msgid "" -#~ "Les codecs ou vocodeurs sont les algorithmes utilisés pour compresser la " +#~ "Les codecs ou vocodeurs sont les algorithmes utilisÈs pour compresser la " #~ "voix." #~ msgstr "" -#~ "Los codecs o codificadores/decodificadores son los algoritmos usados para " +#~ "Los códecs o codificadores/decodificadores son los algoritmos usados para " #~ "comprimir la voz." #~ msgid "" -#~ "Vous pouvez ajuster avec cet onglet des paramètre liés à votre carte son." -#~ msgstr "Puede modificar estos parametros a su gusto." +#~ "Vous pouvez ajuster avec cet onglet des paramËtre liÈs ‡ votre carte son." +#~ msgstr "Puede modificar estos parámetros a su gusto." diff --git a/po/fr.po b/po/fr.po index 8c955f75c..322a2ff4c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-12-05 12:41+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2002-12-06 17:33+0100\n" "Last-Translator: Simon Morlat \n" "Language-Team: french \n" @@ -16,110 +16,114 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "inconnu" + +#: ../gtk/calllogs.c:85 msgid "Aborted" msgstr "Abandonné" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 msgid "Missed" msgstr "Manqué" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 msgid "Declined" msgstr "Refusé" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "inconnu" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 -#: ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "Conférence" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "Moi" -#: ../gtk/support.c:49 -#: ../gtk/support.c:73 -#: ../gtk/support.c:102 +#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "affiche des informations de debogage" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "Démarre iconifié, sans interface principale." -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "addresse à appeler maintenant" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "si positionné, répond automatiquement aux appels entrants" -#: ../gtk/main.c:131 -msgid "Specifiy a working directory (should be the base of the installation, eg: c:\\Program Files\\Linphone)" -msgstr "Spécifie un répertoire de travail (qui devrait être le répertoire d'installation, par exemple c:\\Program Files\\Linphone)" +#: ../gtk/main.c:130 +msgid "" +"Specifiy a working directory (should be the base of the installation, eg: c:" +"\\Program Files\\Linphone)" +msgstr "" +"Spécifie un répertoire de travail (qui devrait être le répertoire " +"d'installation, par exemple c:\\Program Files\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Appel avec %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" -"Would you allow him to see your presence status or add him to your contact list ?\n" +"Would you allow him to see your presence status or add him to your contact " +"list ?\n" "If you answer no, this person will be temporarily blacklisted." msgstr "" "%s souhaite vous ajouter à sa liste de contact.\n" -"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter à votre liste également ?\n" -"Si vous répondez non, cette personne sera mise temporairement sur liste noire." +"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter " +"à votre liste également ?\n" +"Si vous répondez non, cette personne sera mise temporairement sur liste " +"noire." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -128,65 +132,59 @@ msgstr "" "Entrez le mot de passe pour %s\n" " sur le domaine %s:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1054 -#: ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1057 -#: ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1059 -#: ../gtk/incall_view.c:451 -#: ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1061 -#: ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Refuser" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 msgid "Call paused" msgstr "Appel en pause" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Ports utilisés" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Lien site web" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - un téléphone video pour l'internet" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1714 -#: ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -194,177 +192,176 @@ msgstr "" "Aucune carte son n'a été détectée sur cet ordinateur.\n" "Vous ne pourrez pas effectuer d'appels audio." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Un visiophone libre" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "Ajouter au carnet d'adresse" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Info de présence" -#: ../gtk/friendlist.c:526 -#: ../gtk/propertybox.c:362 -#: ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nom" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 msgid "Call" msgstr "Appeler" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Rechercher dans l'annuaire de %s" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Contact sip invalide !" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Appeler %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Chatter avec %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Editer le contact '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Supprimer le contact '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Ajouter un contact depuis l'annuaire %s" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Fréquence (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Etat" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Débit min. (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Paramètres" -#: ../gtk/propertybox.c:430 -#: ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Activé" -#: ../gtk/propertybox.c:432 -#: ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Désactivé" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Compte" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Anglais" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Suédois" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italien" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Espagnol" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "Portugais brésilien" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polonais" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Allemand" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Russe" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Néérlandais" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Hongrois" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Tchèque" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "简体中文" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "Chinois traditionnel" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "Norvégien" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "Hébreu" -#: ../gtk/propertybox.c:842 -msgid "You need to restart linphone for the new language selection to take effect." -msgstr "La nouvelle selection de langue prendra effet au prochain démarrage de linphone." +#: ../gtk/propertybox.c:847 +msgid "" +"You need to restart linphone for the new language selection to take effect." +msgstr "" +"La nouvelle selection de langue prendra effet au prochain démarrage de " +"linphone." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -406,280 +403,316 @@ msgid_plural "Found %i contacts" msgstr[0] "%i contact trouvé." msgstr[1] "%i contacts trouvés." -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Nom d'utilisateur:" -#: ../gtk/setupwizard.c:93 -#: ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Mot de passe:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 msgid "Username*" msgstr "Nom d'utilisateur*" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 msgid "Password*" msgstr "Mot de passe*" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 msgid "Username: (*)" msgstr "Nom d'utilisateur: (*)" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 msgid "Password: (*)" msgstr "Mot de passe: (*)" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" -"Please validate your account by clicking on the link we just sent you by email.\n" +"Please validate your account by clicking on the link we just sent you by " +"email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Configuer un compte SIP" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "Erreur" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 -#: ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Appel #%i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "Transférer vers l'appel #%i avec %s" -#: ../gtk/incall_view.c:209 -#: ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Non trouvé" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "L'appel a échoué." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Redirection" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" #: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Découverte STUN en cours" + #: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "indisponible" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "L'appel a échoué." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 -#: ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Tentative d'appel..." -#: ../gtk/incall_view.c:433 -#: ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "bon" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "moyen" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "faible" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "très faible" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "nulle" -#: ../gtk/incall_view.c:490 -#: ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "indisponible" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "Sécurisé par SRTP" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Sécurisé par ZRTP- [jeton: %s]" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "Marquer comme non vérifié" -#: ../gtk/incall_view.c:617 -#: ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "Marquer comme vérifié" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "En conférence" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "Appel en cours" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "Appel en attente" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Appel terminé." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "Transfert terminé" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 msgid "Transfer failed." msgstr "Transfert échoué" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "Reprendre" -#: ../gtk/incall_view.c:788 -#: ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "Pause" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Pause" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -702,215 +735,150 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "Vidéo" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "Transfert" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "Appel en cours" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Durée" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "Qualité de l'appel" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Se voir" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Aide" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Fenêtre de débogage" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Site web" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Adresse SIP ou numéro" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Démarrer un nouvel appel" -#: ../gtk/main.ui.h:27 -#: ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Contacts" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Ajouter" -#: ../gtk/main.ui.h:28 -#: ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editer" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "" - -#: ../gtk/main.ui.h:33 -#: ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Rechercher" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Ajouter un contact depuis l'annuaire" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "Ajouter un contact." -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "Clavier" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 msgid "Recent calls" msgstr "Appels récents" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Mon identité sip:" -#: ../gtk/main.ui.h:51 -#: ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Nom d'utilisateur" -#: ../gtk/main.ui.h:52 -#: ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Mot de passe" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Me connecter automatiquement" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Information de login" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Bienvenue !" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "Tous" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "En ligne" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "Par défaut" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1057,6 +1025,10 @@ msgstr "Codecs audio" msgid "Video codecs" msgstr "Codecs video" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1094,209 +1066,224 @@ msgid "Media encryption type" msgstr "Type d'encryption media" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Type d'encryption media" + +#: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" msgstr "Protocoles réseaux et ports" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Connexion directe à l'Internet" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Derrière un pare-feu (spécifier la passerelle ci dessous)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Adresse IP publique:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Derrière un pare-feu (utiliser STUN)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Derrière un pare-feu (utiliser STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Derrière un pare-feu (utiliser STUN)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "Serveur STUN:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "Paramètres liés au pare-feu" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Paramètres réseau" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Sonnerie:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Périphérique de capture:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Périphérique de sonnerie:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Périphérique d'écoute:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Activer l'annulation d'écho" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Son" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Périphérique d'entrée video" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Résolution video préférée:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Paramètres multimedia" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" -msgstr "Cette rubrique permet de définir son addresse SIP lorsqu'on ne possède pas de compte SIP" +msgstr "" +"Cette rubrique permet de définir son addresse SIP lorsqu'on ne possède pas " +"de compte SIP" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Votre nom d'affichage (ex: John Doe)" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Votre nom d'utilisateur:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Votre addresse SIP:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Identité par défaut" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Enlever" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Comptes SIP via des proxy" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Effacer tous les mots de passe" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Sécurité" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Gérer mes comptes SIP" -#: ../gtk/parameters.ui.h:55 -#: ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Activer" -#: ../gtk/parameters.ui.h:56 -#: ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Désactiver" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "Indiquez 0 pour ne pas mettre de limite" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Limite de débit montant en kbits/sec:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Limite de débit descendant en kbits/sec:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "Activer le control de débit adaptatif." -#: ../gtk/parameters.ui.h:62 -msgid "Adaptive rate control is a technique to dynamically guess the available bandwidth during a call." -msgstr "Le control de débit adaptatif est une technique pour adapter la qualité de l'audio et de la video en fonction de la bande passante disponible, durant l'appel." +#: ../gtk/parameters.ui.h:64 +msgid "" +"Adaptive rate control is a technique to dynamically guess the available " +"bandwidth during a call." +msgstr "" +"Le control de débit adaptatif est une technique pour adapter la qualité " +"de l'audio et de la video en fonction de la bande passante disponible, " +"durant l'appel." -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Gestion de la bande passante" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Langue" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Montrer les réglages avancés" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Niveau" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Interface utilisateur" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Fermer" @@ -1360,7 +1347,7 @@ msgstr "" #: ../gtk/call_statistics.ui.h:5 #, fuzzy -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "Type d'encryption media" #: ../gtk/call_statistics.ui.h:6 @@ -1369,6 +1356,15 @@ msgstr "" #: ../gtk/call_statistics.ui.h:7 #, fuzzy +msgid "Video Media connectivity" +msgstr "Type d'encryption media" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 +#, fuzzy msgid "Call statistics and information" msgstr "Information sur le contact" @@ -1393,19 +1389,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "abandonné" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "terminé" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "manqué" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1420,67 +1476,70 @@ msgstr "" "Etat: %s\n" "Durée: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Appel sortant" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Prêt." -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Recherche de la destination du numéro de téléphone..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "La destination n'a pu être trouvée." -#: ../coreapi/linphonecore.c:2121 -msgid "Could not parse given sip address. A sip url usually looks like sip:user@domain" -msgstr "Adresse SIP mal formulée. Une address sip ressemble à " +#: ../coreapi/linphonecore.c:2231 +msgid "" +"Could not parse given sip address. A sip url usually looks like sip:" +"user@domain" +msgstr "" +"Adresse SIP mal formulée. Une address sip ressemble à " -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Appel de" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Echec de l'appel" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Désolé, le nombre maximum d'appels simultanés est atteint." -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "vous appelle" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "et sollicite un décrochage automatique." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Modifications des paramètres d'appels..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "En ligne." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Appel abandonné" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "La mise en attente a échoué" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "Mise en attente de l'appel..." @@ -1566,8 +1625,12 @@ msgid "Unknown-bug" msgstr "Bug inconnu" #: ../coreapi/proxy.c:204 -msgid "The sip proxy address you entered is invalid, it must start with \"sip:\" followed by a hostname." -msgstr "L'addresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine." +msgid "" +"The sip proxy address you entered is invalid, it must start with \"sip:\" " +"followed by a hostname." +msgstr "" +"L'addresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" " +"suivie par un nom de domaine." #: ../coreapi/proxy.c:210 msgid "" @@ -1575,118 +1638,119 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" "L'identité SIP que vous avez fourni est invalide.\n" -"Elle doit être de la forme sip:username@domain, comme par example sip:alice@example.net" +"Elle doit être de la forme sip:username@domain, comme par example sip:" +"alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Echec de la connexion en tant que %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Sonnerie distante." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "Sonnerie distante..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Prise d'appel anticipée" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "%s est maintenant en attente." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "Appel répondu par %s - en attente" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "Appel repris." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "Appel répondu par %s." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "Reprise..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 #, fuzzy msgid "Call is updated by remote." msgstr "L'appel a été repris par le correspondant." -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Appel terminé." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Occupé..." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "L'usager est temporairement indisponible." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "L'usager ne souhaite pas être dérangé" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Appel décliné." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "Pas de réponse." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "Erreur de protocole" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "Redirection" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "L'appel a échoué." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Enregistrement sur %s effectué." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Désenregistrement sur %s effectué." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "Pas de réponse" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Echec de l'enregistrement sur %s: %s" @@ -1696,13 +1760,16 @@ msgstr "Echec de l'enregistrement sur %s: %s" msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Vous avez manqué %i appel" msgstr[1] "Vous avez manqué %i appels" +#~ msgid "Keypad" +#~ msgstr "Clavier" + #~ msgid "Chat with %s" #~ msgstr "Chat avec %s" @@ -1713,9 +1780,6 @@ msgstr[1] "Vous avez manqué %i appels" #~ msgid "Confirmation" #~ msgstr "Information sur le contact" -#~ msgid "Contacts" -#~ msgstr "Contacts" - #~ msgid "Enable video" #~ msgstr "Activer la video" @@ -1767,9 +1831,6 @@ msgstr[1] "Vous avez manqué %i appels" #~ msgid "Register at startup" #~ msgstr "S'enregistrer au démarrage" -#~ msgid "Ports" -#~ msgstr "Ports utilisés" - #~ msgid "Sorry, you have to pause or stop the current call first !" #~ msgstr "Désolé, vous devez d'abord mettre en attente l'appel en cours." diff --git a/po/he.po b/po/he.po index bba94e8ca..7439d2651 100644 --- a/po/he.po +++ b/po/he.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.5.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2012-12-27 10:14+0200\n" "Last-Translator: Isratine Citizen \n" "Language-Team: Rahut \n" @@ -20,36 +20,40 @@ msgstr "" "X-Generator: Poedit 1.5.4\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "לא זמין (n/a)" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "ננטשה" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "הוחמצה" # דחיה -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "לדחות" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "דקה %i" msgstr[1] "%i דקות" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "שניה %i" msgstr[1] "%i שניות" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" @@ -58,11 +62,7 @@ msgstr "" "%s\t%s\tאיכות: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "לא זמין (n/a)" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, fuzzy, c-format msgid "" "%s\t%s\t\n" @@ -71,11 +71,11 @@ msgstr "" "%s\t%s\tאיכות: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "ועידה" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "אני" @@ -85,41 +85,41 @@ msgid "Couldn't find pixmap file: %s" msgstr "לא ניתן למצוא קובץ ‫pixmap: ‫%s" # cli -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 #, fuzzy msgid "log to stdout some debug information while running." msgstr "רשום אל stdout מידע ניפוי שגיאות מסוים בזמן ביצוע." # cli -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 #, fuzzy msgid "path to a file to write logs into." msgstr "נתיב אל קובץ שברצונך לרשום אליו את הרשומות." -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" # cli -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 #, fuzzy msgid "Start only in the system tray, do not show the main interface." msgstr "התחל במגש המערכת בלבד, אל תציג את הממשק הראשי." # cli -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 #, fuzzy msgid "address to call right now" msgstr "כתובת להתקשרות ברגע זה" # cli -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 #, fuzzy msgid "if set automatically answer incoming calls" msgstr "באם אפשרות זו נקבעת ענה אוטומטית לקריאות נכנסות" # cli -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 #, fuzzy msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" @@ -128,14 +128,14 @@ msgstr "" "ציין מדור העבודה (אמור להיות מבוסס על ההתקנה, למשל: c:\\Program Files" "\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "התקשרות באמצעות %s" # הקשר שלהם # אם התשובה -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -148,7 +148,7 @@ msgstr "" "שלך ?\n" "היה ותשובתך תהיה לא, אדם זה יהיה מסומן באופן זמני ברשימה השחורה." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -158,64 +158,64 @@ msgstr "" " בתחום %s:" # שיחה -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 msgid "Call error" msgstr "שגיאת קריאה" # Conversation ended -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "שיחה הסתיימה" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "לענות" # דחיה -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "לדחות" # Conversation paused -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 msgid "Call paused" msgstr "שיחה הושהתה" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "מאת %s" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Ports utilisés" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "קישור אתר רשת" # ‫Linphone - וידאופון במרשתת -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "‫Linphone - וידאופון אינטרנטי" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "‫%s (משתמטת)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "אנחנו מועברים אל %s" # קריאות שמע -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -223,182 +223,182 @@ msgstr "" "לא אותרו כרטיסי קול במחשב זה.\n" "לא תהיה ביכולתך לשלוח או לקבל שיחות שמע." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "וידאופון SIP חופשי" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "הוסף אל ספר כתובות" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "מצב נוכחות" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "שם" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 msgid "Call" msgstr "קריאה" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" # a name or a number -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "חיפוש במדור %s" # איש־קשר -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "כתובת sip לא תקפה !" # צור קשר עם -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "התקשר אל %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "שלח טקסט אל %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "ערוך איש קשר '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "מחק איש קשר '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "הוסף איש קשר חדש מן מדור %s" # קצב תדר תדירות מהירות -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "שיעור (הרץ)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "מצב" # שיעור סיביות מינימלי -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "קצב נתונים מינימלי (קי״ב/שנ׳)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "פרמטרים" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "מופעל" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "לא מופעל" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "חשבון" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "English" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Svenska" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italiano" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Español" # português do Brasil -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "português brasileiro" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polski" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Deutsch" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Русский" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Nederlands" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Magyar" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Česky" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "中文" # 繁体字 -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "繁體字" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "norsk" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" # selected הנבחרת -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "עליך לאתחל את לינפון כדי שהשפה החדשה תיכנס לתוקף." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "ללא" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -443,7 +443,7 @@ msgid_plural "Found %i contacts" msgstr[0] "נמצא איש קשר %i" msgstr[1] "נמצאו %i אנשי קשר" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -451,75 +451,75 @@ msgstr "" "ברוך בואך !\n" "אשף זה יסייע לך לעשות שימוש בחשבון SIP עבור שיחותייך." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "צור חשבון אצל linphone.org" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "כבר קיים חשבון linphone.org ברשותי וברצוני לעשות בו שימוש" # כבר קיים ברשותי חשבון sip -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "כבר קיים חשבון sip ברשותי וברצוני לעשות בו שימוש" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "הזן את שם משתמשך אצל linphone.org" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "שם משתמש:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "סיסמה:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "הזן את מידע חשבונך" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 msgid "Username*" msgstr "שם משתמש*" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 msgid "Password*" msgstr "סיסמה*" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "מתחם*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "פרוקסי" # נדרשים -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "(*) שדות חובה" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 msgid "Username: (*)" msgstr "שם משתמש: (*)" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 msgid "Password: (*)" msgstr "סיסמה: (*)" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "דוא״ל: (*)" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "אימות סיסמתך: (*)" # אינו בר־השגה # לשוב אחורה -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -528,12 +528,12 @@ msgstr "" "נא לחזור ולנסות שוב." # תודה רבה -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "תודה לך. חשבונך מוגדר ומוכן לשימוש כעת." # לאחר מכן -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -544,195 +544,240 @@ msgstr "" # Wizard אשף # סייע -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "ברוך בואך אל אשף הגדרת החשבון" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "אשף הגדרת חשבון" # שלב -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "הגדרת חשבונך (צעד 1/1)" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "הזנת שם משתמש sip (צעד 1/1)" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "הזנת מידע חשבון (צעד 1/2)" # תקפות -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "אימות (צעד 2/2)" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "שגיאה" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "מסיים כעת" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "שיחה מס׳ %i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "העברה אל שיחה מס׳ %i עם %s" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "לא נמצא" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "קריאה נכשלה." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "מכוון מחדש" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +# במהלך (או) באמצע חיפוש... +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "בדיקת STUN מצויה כעת בעיצומה..." + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "לא זמינה" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "קריאה נכשלה." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, fuzzy, c-format +msgid "%.3f seconds" +msgstr "שניה %i" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "מתקשר כעת..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "‭00::00::00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "טובה" # רגילה -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "ממוצעת" # weak חלשה חלושה רפויה רופפת -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "דלה" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "דלה מאוד" # רעה -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "גרועה מדי" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "לא זמינה" # באמצעות -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "מאובטחת על ידי SRTP" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "מאובטחת על ידי ZRTP - [אות אימות: %s]" # set or unset verification state of ZRTP SAS. -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "הגדר כלא מאומתת" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "הגדר כמאומתת" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "בשיחת ועידה" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "בשיחה כעת" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "שיחה מושהית" # שעות %02i דקות %02i שניות %02i # Force LTR time format (hours::minutes::seconds) with LRO chatacter (U+202D) -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "‭%02i::%02i::%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "שיחה הסתיימה." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 #, fuzzy msgid "Transfer done." msgstr "העברה" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "העברה" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "חזרה" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "השהיה" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "השהיה" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -758,214 +803,154 @@ msgid "label" msgstr "תוויות" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "העברה" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "בשיחה כעת" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "משך זמן" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "אומדן איכות שיחה" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "_אפשרויות" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "אפשר ראות-עצמית" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_עזרה" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "הצג חלון ניפוי שגיאות" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_עמוד הבית" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "בדיקת _עדכונים" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "אשף חשבון" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "כתובת SIP או מספר טלפון" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "התחלת שיחה חדשה" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "אנשי קשר" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "הוסף" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "ערוך" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9 (סעפ)" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8 (צק)" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7 (רשת)" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6 (זחט)" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5 (יכל)" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4 (מנ)" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3 (אבג)" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2 (דהו)" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "חיפוש" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "הוסף אנשי קשר מן מדור" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "הוספת איש קשר" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "לוח מקשים" - # קריאות אחרונות -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 msgid "Recent calls" msgstr "שיחות אחרונות" # הזהות הנוכחית שלי -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "זהותי הנוכחית:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "שם משתמש" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "סיסמה" # מרשתת -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "חיבור אינטרנט:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "חבר אותי אוטומטית" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "מידע התחברות" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "ברוך בואך !" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "כל המשתמשים" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "משתמשים מקוונים" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "‫ADSL" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "ערוץ סיב" # משתמט -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "ברירת מחדל" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1117,6 +1102,10 @@ msgstr "קודקים של שמע" msgid "Video codecs" msgstr "קודקים של וידאו" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1155,192 +1144,204 @@ msgstr "טרנספורט" msgid "Media encryption type" msgstr "סוג הצפנת מדיה" -# מנהרה #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "וידאו RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "שמע RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +# מנהרה +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "סוג הצפנת מדיה" + +#: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" msgstr "פרוטוקולי רשת עבודה ופורטים" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "חיבור ישיר אל האינטרנט" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "מאחורי NAT \\ חומת־אש (ציון כתובת שער (Gateway IP) למטה)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "כתובת IP פומבית:" # שימוש ב־STUN # utilize -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" # שימוש ב־STUN # utilize -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" -#: ../gtk/parameters.ui.h:28 +# שימוש ב־STUN +# utilize +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "שרת STUN:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "‫NAT וחומת אש" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "הגדרות רשת עבודה" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "צליל צלצול:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "התקן ALSA מיוחד (רשות):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "התקן לכידה:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "התקן צלצול:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "התקן פס קול:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "אפשר ביטול הד" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "שמע" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "התקן קלט וידאו:" # רצויה -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "רזולוציית וידאו מועדפת:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "וידאו" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "הגדרות מולטימדיה" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "חלק זה מגדיר את כתובת ה־SIP כאשר אינך עושה שימוש בחשבון SIP" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "שם התצוגה שלך (למשל: יורם יהודה):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "שם המשתמש שלך:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "כתובת SIP נובעת:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "זהות משתמטת" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "אשף" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "הסר" # חשבונות מתווכים -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "חשבונות Proxy" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "מחק סיסמאות" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "פרטיות" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "ניהול חשבונות ‫SIP" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "אפשר" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "נטרל" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "קודקים" # ללא הגבלה -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 מסמל \"בלי הגבלה\"" # האם KiB means kibibyte? -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "מגבלת מהירות העלאה בקי״ב/שנ׳:" # האם KiB means kibibyte? # קי״ב (1024) אל מול ק״ב (1000) -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "מגבלת מהירות הורדה בקי״ב/שנ׳:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "אפשר בקרת קצב מסתגלת" # שיטה ניחוש -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1350,31 +1351,31 @@ msgstr "" # פס רוחב # טווח תדרים -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "בקרת רוחב פס" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "קודקים" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "שפה" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "הצג הגדרות מתקדמות" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "רמה" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "ממשק משתמש" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "סיום" @@ -1442,7 +1443,7 @@ msgstr "" #: ../gtk/call_statistics.ui.h:5 #, fuzzy -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "סוג הצפנת מדיה" #: ../gtk/call_statistics.ui.h:6 @@ -1451,6 +1452,15 @@ msgstr "" #: ../gtk/call_statistics.ui.h:7 #, fuzzy +msgid "Video Media connectivity" +msgstr "סוג הצפנת מדיה" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 +#, fuzzy msgid "Call statistics and information" msgstr "מידע איש קשר" @@ -1475,20 +1485,80 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9 (סעפ)" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8 (צק)" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7 (רשת)" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6 (זחט)" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5 (יכל)" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4 (מנ)" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3 (אבג)" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2 (דהו)" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "ננטשה" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "הסתיימה" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "הוחמצה" # needs to be tested -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1503,24 +1573,24 @@ msgstr "" "מצב: %s\n" "משך: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "קריאה יוצאת" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "מוכן" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "מחפש כעת עבור יעד מספר טלפון..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "לא ניתן לפתור את מספר זה." # לרוב -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1528,49 +1598,49 @@ msgstr "" "לא ניתן היה לפענח את הכתובת שניתנה. כתובת sip בדרך כלל נראית כך: sip:" "user@domain" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "מתקשר כעת" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "לא ניתן להתקשר" # מספר השיחות המקבילות המרבי -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "הגענו אל המספר המרבי של שיחות מקבילות, עמך הסליחה" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "מתקשר/ת אליך" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " ומבקש/ת מענה אוטומטי." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" # פרמטרי קריאה -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "מתאים כעת פרמטרים של שיחה..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "מקושר." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "קריאה בוטלה" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "לא ניתן להשהות את השיחה" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "משהה כעת שיחה נוכחית..." @@ -1677,40 +1747,40 @@ msgstr "" "זו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net" # בשם כ־ -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "לא ניתן להתחבר בזהות %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "צלצול מרוחק." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "צלצול מרוחק..." # A SIP state -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "מדיה מוקדמת." -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "שיחה עם %s מושהית." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "קריאה נענתה על ידי %s - בהמתנה." # renewed -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "קריאה חודשה." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "קריאה נענתה על ידי %s." @@ -1718,88 +1788,89 @@ msgstr "קריאה נענתה על ידי %s." # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +#, fuzzy +msgid "Incompatible, check codecs or security settings..." msgstr "חוסר תאימות, נא לבדוק קודקים..." -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "חזרנו..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" # באופן מרוחק -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 #, fuzzy msgid "Call is updated by remote." msgstr "שיחה עודכנה מרחוק..." -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "קריאה הסתיימה." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "משתמש עסוק כעת." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "משתמש לא זמין זמנית." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "משתמש לא מעוניין שיפריעו לו." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "קריאה סורבה." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "אין תגובה." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "שגיאת פרוטוקול." -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "מכוון מחדש" # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 #, fuzzy msgid "Incompatible media parameters." msgstr "חוסר תאימות, נא לבדוק קודקים..." -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "קריאה נכשלה." # הרשמה אצל %s הושלמה בהצלחה. -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "רישום אצל %s הושלם בהצלחה." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "אי רישום אצל %s סוים." # Pas de réponse # no response in defined time -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "אין היענות תוך זמן מוגדר" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "רישום אצל %s נכשל: %s" @@ -1810,20 +1881,23 @@ msgid "Authentication token is %s" msgstr "אות האימות הינה %s" # האם כדאי לחקות את הטלפונים הניידים? שיחות של נענו -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "החמצת שיחה %i." msgstr[1] "החמצת %i שיחות." +#~ msgid "by %s" +#~ msgstr "מאת %s" + +#~ msgid "Keypad" +#~ msgstr "לוח מקשים" + # שוחחו #~ msgid "Chat with %s" #~ msgstr "שיחה עם %s" -#~ msgid "Contacts" -#~ msgstr "אנשי קשר" - #~ msgid "Enable video" #~ msgstr "הפעל וידאו" @@ -1924,9 +1998,6 @@ msgstr[1] "החמצת %i שיחות." #~ msgid "Register at startup" #~ msgstr "S'enregistrer au démarrage" -#~ msgid "Ports" -#~ msgstr "Ports utilisés" - #~ msgid "Sorry, you have to pause or stop the current call first !" #~ msgstr "Désolé, vous devez d'abord mettre en attente l'appel en cours." diff --git a/po/hu.po b/po/hu.po index 0367b7d16..819bb2210 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2007-12-14 11:12+0100\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" @@ -17,57 +17,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "megszakítva" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "elhibázva" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "line" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "" @@ -76,42 +76,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat-elés %s -el" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -120,245 +120,245 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Linphone - Híváselőzmények" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Hívás vége" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" msgstr "line" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "megszakítva" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Kapcsolatilista" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Egy ingyenes SIP video-telefon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "Címjegyzék" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Jelenlét státusz" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Név" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Hivás előzmények" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Chat szoba" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, fuzzy, c-format msgid "Call %s" msgstr "Hivás előzmények" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Kapcsolatinformációk szerkesztése" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Érték (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Állapot" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min bitrate (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Paraméterek" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Engedélyezve" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Tiltva" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Hozzáférés" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Nincs" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -402,282 +402,325 @@ msgid_plural "Found %i contacts" msgstr[0] "" msgstr[1] "" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" msgstr "felhasználónév:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" msgstr "jelszó:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "felhasználónév:" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "jelszó:" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "felhasználónév:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "jelszó:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Hivás előzmények" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Hívás elutasítva" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Átirányítva idw %s..." -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Stun keresés folyamatban..." + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "Nem érhető el információ" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Hívás elutasítva" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "Kapcsolatilista" -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "Kapcsolatilista" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Kapcsolatilista" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." msgstr "Hívás vége" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Hívás elutasítva" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -702,226 +745,167 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "In call" msgstr "Beérkező hívás" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 #, fuzzy msgid "Duration" msgstr "Információk" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Video engedélyezés" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "_Help" msgstr "Help" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Gépeld ide a sip címet vagy a telefonszámot" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Kapcsolódás" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Szerkesztés" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "Kapcsolatiinformáció" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "Kapcsolatinformációk szerkesztése" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "Beérkező hívás" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 #, fuzzy msgid "My current identity:" msgstr "SIP azonosító:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "felhasználónév:" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "jelszó:" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Automatically log me in" msgstr "Automatikus valós hostnév megállapítása" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Login information" msgstr "Kapcsolatiinformáció" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 #, fuzzy msgid "Welcome !" msgstr "Kapcsolatilista" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "Elérhető" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "SIP azonosító:" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1080,6 +1064,10 @@ msgstr "Audio kodekek" msgid "Video codecs" msgstr "Audio kodekek" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1118,231 +1106,239 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "" + +#: ../gtk/parameters.ui.h:26 #, fuzzy msgid "Public IP address:" msgstr "Sip cím:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:30 #, fuzzy msgid "Stun server:" msgstr "Hang eszköz" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 #, fuzzy msgid "NAT and Firewall" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Network settings" msgstr "Hálózat" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Ring sound:" msgstr "Csengőhang:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Capture device:" msgstr "Felvevő hang eszköz:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "Ring device:" msgstr "Csengőhang forrás:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Playback device:" msgstr "Lejátszó hang eszköz:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 #, fuzzy msgid "Audio" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Video input device:" msgstr "Hang eszköz" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Video" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 #, fuzzy msgid "Your username:" msgstr "felhasználónév:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 #, fuzzy msgid "Your resulting SIP address:" msgstr "Saját sip cím:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Default identity" msgstr "SIP azonosító:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Eltávolítás" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Proxy accounts" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 #, fuzzy msgid "Privacy" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Engedélyezés" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Tiltás" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Codecs" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Upload speed limit in Kbit/sec:" msgstr "Feltöltési sávszélesség (kbit/sec):" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 #, fuzzy msgid "Download speed limit in Kbit/sec:" msgstr "Letöltési sávszélesség (kbit/sec):" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 #, fuzzy msgid "Codecs" msgstr "Kodekek" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 #, fuzzy msgid "Language" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "Kapcsolatilista" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 #, fuzzy msgid "User interface" msgstr "felhasználónév:" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 #, fuzzy msgid "Done" msgstr "Elveszítve" @@ -1410,7 +1406,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1418,6 +1414,15 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Hang beállítások" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Kapcsolatiinformáció" @@ -1442,19 +1447,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "megszakítva" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "befejezve" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "elhibázva" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1469,74 +1534,74 @@ msgstr "" "Állapot: %s\n" "Időtartam: %i perc %i másodperc\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Kimenő hívás" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Kész" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Telefonszám-cél keresése..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Nem sikkerült értelmezni a számot." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" "Az adott szám nem értelmezhető. Egy sip cím általában így néz ki: user@domain" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Kapcsolódás" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "nem sikerült hívni" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "kapcsolatba lép veled." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Kapcsolódva." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "megszakítva" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 #, fuzzy msgid "Could not pause the call" msgstr "nem sikerült hívni" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 #, fuzzy msgid "Pausing the current call..." msgstr "nem sikerült hívni" @@ -1638,122 +1703,122 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." msgstr "Távoli szolgáltatások" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Távoli szolgáltatások" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Korai médiák." -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat-elés %s -el" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Hívás vége" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Hívás vagy\n" "Válasz" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "A hívás befejezve." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "A felhasználó foglalt." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "A felhasználó ideiglenesen nem elérhető" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "A felhasználó nem akarja, hogy zavarják." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Hívás elutasítva" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 #, fuzzy msgid "No response." msgstr "időtúllépés után nincs válasz" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 #, fuzzy msgid "Redirected" msgstr "Átirányítva idw %s..." -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Hívás elutasítva" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "A regisztáció a %s -n sikerült." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "A regisztáció a %s -n sikerült." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "időtúllépés után nincs válasz" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "A regisztáció a %s -n nem sikerült: %s" @@ -1763,7 +1828,7 @@ msgstr "A regisztáció a %s -n nem sikerült: %s" msgid "Authentication token is %s" msgstr "Hitelesítési információ" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1781,10 +1846,6 @@ msgstr[1] "Van %i elhibázott hivás." #~ msgid "Confirmation" #~ msgstr "Információk" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Kapcsolódás" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Engedélyezve" @@ -1833,10 +1894,6 @@ msgstr[1] "Van %i elhibázott hivás." #~ msgid "gtk-close" #~ msgstr "Kapcsolódva." -#, fuzzy -#~ msgid "Ports" -#~ msgstr "Kapcsolatilista" - #~ msgid "" #~ "Your machine appears to be connected to an IPv6 network. By default " #~ "linphone always uses IPv4. Please update your configuration if you want " @@ -2164,9 +2221,6 @@ msgstr[1] "Van %i elhibázott hivás." #~ msgid "Listen" #~ msgstr "Hallgatás" -#~ msgid "Sound properties" -#~ msgstr "Hang beállítások" - #~ msgid "Run sip user agent on port:" #~ msgstr "SIP felhasználó ügynök által használt port:" @@ -2200,9 +2254,6 @@ msgstr[1] "Van %i elhibázott hivás." #~ "Figyelem: A pirosban lévő kodekek nem használhatók a jelenlegi " #~ "internetkapcsolattal." -#~ msgid "No information availlable" -#~ msgstr "Nem érhető el információ" - #~ msgid "Codec information" #~ msgstr "Kodekinformáció" diff --git a/po/it.po b/po/it.po index 135faa6cc..9e9a1183d 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2002-10-15 HO:MI+ZONE\n" "Last-Translator: Matteo Piazza \n" "Language-Team: it \n" @@ -16,57 +16,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "annullato" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "mancante" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "Rifiuta" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 #, fuzzy msgid "Me" msgstr "" @@ -78,42 +78,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat con %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -125,242 +125,242 @@ msgstr "" "veda il tuo stato o aggiungerlo alla tua lista dei contatti Se rispondi no " "questo utente sarà momentaneamente bloccato." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "Prego inserire la password per username %s e dominio %s" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Cronologia" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Chiamata terminata" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Rifiuta" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "annullato" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Porte" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Presenza" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Chiamata %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Cerca contatti nella directory %s" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Contatto SIP non valido" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Chiamata %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Invia testo a %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Modifica contatto %s" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Elimina contatto %s" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Aggiungi nuovo contatto dalla directory %s" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Stato" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Bitrate Min (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parametri" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Attivato" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Disattivato" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Account" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Inglese" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Francese" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Svedese" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italiano" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Spagnolo" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polacco" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Tedesco" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Russo" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "Giapponese" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Olandese" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Ungherese" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Ceco" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Riavviare il software per utilizzare la nuova lingua selezionata" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -404,7 +404,7 @@ msgid_plural "Found %i contacts" msgstr[0] "Trovato %i contatto" msgstr[1] "Trovato %i contatti" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -412,278 +412,320 @@ msgstr "" "Benvenuti !\n" "La procedura vi aiutera a configurare un account SIP." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "Creare un account scegliendo l'username" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "Ho gia un account e voglio usarlo" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "Ho gia un account e voglio usarlo" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Manuale utente" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Password:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Username" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Password" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Manuale utente" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Password:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "Grazie. Il tuo account è configurato e pronto all'uso" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Benvenuto nel configuratore di account" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Configuratore di account" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Configurazione SIP account" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 #, fuzzy msgid "Terminating" msgstr "Termina chiamata" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Chiamata %s" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Filtro ICE" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Rediretto verso %s..." -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Ricerca Stun in progresso ..." + +#: ../gtk/incall_view.c:242 +msgid "uPnp not available" +msgstr "" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Filtro ICE" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "Linguaggio" -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "In chiamata con" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Termina chiamata" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Chiamata terminata." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Chiamata rifiutata" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -707,221 +749,162 @@ msgid "label" msgstr "etichetta" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "In chiamata" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Durata" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Self-view abilitato" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone debug window" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Configuratore di account" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Indirizzo sip o numero." -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "In connessione" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Aggiungi" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Edita" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "Aggiungi nuovo contatto dalla directory %s" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "Trovato %i contatto" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "In chiamata" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Identità corrente" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Username" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Password" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Connessione Internet:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Login Automatico" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Credenziali di accesso" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Benvenuto !" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "" "Tutti gli utenti\n" "Utenti Online" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "Fibra Ottica" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "Default" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1078,6 +1061,10 @@ msgstr "" "Audio codecs\n" "Video codecs" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 #, fuzzy msgid "SIP (UDP)" @@ -1118,211 +1105,220 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "Video RTP/UDP" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "Audio RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "" + +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Connessione diretta a internet" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Dietro NAT / Firewall (IP del gateway)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Indirizzo ip pubblico:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Dietro NAT / Firewall (utilizza STUN)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Dietro NAT / Firewall (utilizza STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Dietro NAT / Firewall (utilizza STUN)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "Stun server:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT and Firewall" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Impostazioni di rete" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Suoneria:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "Dispositivo ALSA (optional):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Dispositivo microfono:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Dispositivo squillo:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Dispositivo uscita audio:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Attiva cancellazione eco" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Dispositivo Video:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Risoluzione video preferita" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Impostazioni multimediali" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "questa sezione definisce il tuo indirizzo SIP se non hai account attivi" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Nome visualizzato (es: Mario Rossi):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Username" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Il tuo indirizzo sip:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Identità di default" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Rimuovi" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Account proxy" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Cancella tutte le password" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Privacy" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Gestici SIP Account" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Attivato" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Disattivato" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 sta per illimitato" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Velocità massima in upload Kbit/sec:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Velocita massima in Dowload Kbit/sec" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Gestione banda" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Codec" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Linguaggio" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "Linguaggio" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Interfaccia utente" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Fatto" @@ -1393,7 +1389,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1401,6 +1397,14 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Contact informazioni" @@ -1426,19 +1430,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "comletato" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "mancante" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1453,23 +1517,23 @@ msgstr "" "Stato: %s\n" "Durata: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Chiamata in uscita" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Pronto" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Ricerca numero destinazione..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Impossibile risolvere il numero." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1477,51 +1541,51 @@ msgstr "" "Errore nel formato del contatto sip. Usualmente un indirizzo appare sip:" "user@domain" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "In connessione" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "ti sta conttatando." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Connessione" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 #, fuzzy msgid "Could not pause the call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 #, fuzzy msgid "Pausing the current call..." msgstr "Mostra chiamata corrente" @@ -1622,118 +1686,118 @@ msgstr "" "L'identità sip utilizza è invalida.\n" "Dovrebbre essere sip:username@proxydomain, esempio: sip:alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "impossibile login come %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat con %s" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Chiamata terminata" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Chiamata terminata." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Utente occupato" -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Utente non disponibile" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "L'utente non vuole essere disturbato" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 #, fuzzy msgid "No response." msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 #, fuzzy msgid "Redirected" msgstr "Rediretto verso %s..." -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registrazione su %s attiva" -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Unregistrazione su %s" -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrazione su %s fallita: %s" @@ -1743,7 +1807,7 @@ msgstr "Registrazione su %s fallita: %s" msgid "Authentication token is %s" msgstr "Linphone - Autenticazione richiesta" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1786,10 +1850,6 @@ msgstr[1] "" #~ msgid "Now ready !" #~ msgstr "Pronto !" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "In connessione" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Attivato" @@ -1839,9 +1899,6 @@ msgstr[1] "" #~ msgid "Register at startup" #~ msgstr "Registra all'avvio" -#~ msgid "Ports" -#~ msgstr "Porte" - #~ msgid "ITU-G.711 alaw encoder" #~ msgstr "ITU-G.711 alaw encoder" diff --git a/po/ja.po b/po/ja.po index c2ed8c87d..e95879bb8 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2003-01-21 00:05+9000\n" "Last-Translator: YAMAGUCHI YOSHIYA \n" "Language-Team: \n" @@ -18,56 +18,56 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "通話はキャンセルされました。" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 msgid "Missed" msgstr "" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "ライン入力" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "" @@ -76,42 +76,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "pixmapファイルが見つかりません %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -120,247 +120,247 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "通話は拒否されました。" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" msgstr "ライン入力" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "接続中" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "電話帳" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 #, fuzzy msgid "Presence status" msgstr "状態" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名前" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "通話はキャンセルされました。" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(接続するための情報がありません!)" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "状態" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "最低限のビットレート (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "パラメーター" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "使用する" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "使用しない" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Magyar" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "čeština" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "简体中文" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 #, fuzzy msgid "None" msgstr "ありません。" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -404,281 +404,323 @@ msgid_plural "Found %i contacts" msgstr[0] "" msgstr[1] "" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" msgstr "パスワード" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "パスワード" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "パスワード" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "通話はキャンセルされました。" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "通話はキャンセルされました。" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 msgid "Direct" msgstr "" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +msgid "uPnP in progress" +msgstr "" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "特に情報はありません" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "通話はキャンセルされました。" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "接続中" -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "接続中" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "接続中" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "接続中" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." msgstr "通話は拒否されました。" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "通話はキャンセルされました。" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -703,224 +745,165 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "In call" msgstr "接続中" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 #, fuzzy msgid "Duration" msgstr "情報" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "使用する" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "レジストラサーバーのSIPアドレス" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "接続中" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "追加する" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "コーデックの情報" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "(接続するための情報がありません!)" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "接続中" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 #, fuzzy msgid "My current identity:" msgstr "個人情報" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "ユーザーマニュアル" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "パスワード" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Login information" msgstr "コーデックの情報" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 #, fuzzy msgid "Welcome !" msgstr "接続中" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "ライン入力" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "個人情報" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1077,6 +1060,10 @@ msgstr "オーディオコーデックのプロパティー" msgid "Video codecs" msgstr "オーディオコーデックのプロパティー" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1115,229 +1102,237 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "" + +#: ../gtk/parameters.ui.h:26 #, fuzzy msgid "Public IP address:" msgstr "Sipアドレス:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:30 #, fuzzy msgid "Stun server:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 #, fuzzy msgid "NAT and Firewall" msgstr "接続中" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Network settings" msgstr "ネットワーク" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Ring sound:" msgstr "録音する音源" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Capture device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "Ring device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Playback device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 #, fuzzy msgid "Audio" msgstr "接続中" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Video input device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Video" msgstr "接続中" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 #, fuzzy msgid "Your username:" msgstr "ユーザーマニュアル" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 #, fuzzy msgid "Your resulting SIP address:" msgstr "あなたのSIPアドレス" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Default identity" msgstr "個人情報" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "削除する" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Proxy accounts" msgstr "接続中" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 #, fuzzy msgid "Privacy" msgstr "接続中" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "使用する" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "使用しない" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Codecs" msgstr "接続中" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 #, fuzzy msgid "Codecs" msgstr "コーデック" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 #, fuzzy msgid "Language" msgstr "接続中" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "接続中" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 #, fuzzy msgid "User interface" msgstr "ユーザーマニュアル" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 #, fuzzy msgid "Done" msgstr "ありません。" @@ -1405,7 +1400,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1413,6 +1408,15 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "サウンドのプロパティー" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "コーデックの情報" @@ -1437,19 +1441,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1459,24 +1523,24 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 #, fuzzy msgid "Ready" msgstr "準備完了。" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" @@ -1485,51 +1549,51 @@ msgstr "" "SIPアドレスの形式エラーです。SIPアドレスは、のような" "形式です。" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 #, fuzzy msgid "Contacting" msgstr "接続中" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "から電話です。" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "接続しました。" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "通話はキャンセルされました。" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "" @@ -1629,121 +1693,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." msgstr "登録中……" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "登録中……" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 -#, c-format -msgid "Call with %s is paused." -msgstr "" - #: ../coreapi/callbacks.c:365 #, c-format +msgid "Call with %s is paused." +msgstr "" + +#: ../coreapi/callbacks.c:378 +#, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "電話をかける\n" "電話に出る" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 #, fuzzy msgid "Call terminated." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "ユーザーはビジーです" -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "ユーザーは、今出られません。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "ユーザーは手が離せないようです。" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "通話はキャンセルされました。" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "登録しました。" -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "登録しました。" -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "登録しました。" @@ -1753,7 +1817,7 @@ msgstr "登録しました。" msgid "Authentication token is %s" msgstr "コーデックの情報" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1764,10 +1828,6 @@ msgstr[1] "" #~ msgid "Confirmation" #~ msgstr "情報" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "接続中" - #, fuzzy #~ msgid "Enable video" #~ msgstr "使用する" @@ -1808,10 +1868,6 @@ msgstr[1] "" #~ msgid "gtk-close" #~ msgstr "接続しました。" -#, fuzzy -#~ msgid "Ports" -#~ msgstr "接続中" - #, fuzzy #~ msgid "_Modes" #~ msgstr "コーデック" @@ -1941,9 +1997,6 @@ msgstr[1] "" #~ msgid "Recording source:" #~ msgstr "録音する音源" -#~ msgid "Sound properties" -#~ msgstr "サウンドのプロパティー" - #~ msgid "Run sip user agent on port:" #~ msgstr "SIPユーザーエージェントが起動するポート" @@ -1975,10 +2028,6 @@ msgstr[1] "" #~ msgstr "" #~ "注意:赤い色のコーデックは、現在のネットワーク接続方法では使えません。" -#, fuzzy -#~ msgid "No information availlable" -#~ msgstr "特に情報はありません" - #~ msgid "Codec information" #~ msgstr "コーデックの情報" diff --git a/po/nb_NO.po b/po/nb_NO.po index 7ae0827eb..c1500d304 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2011-04-05 01:56+0200\n" "Last-Translator: Øyvind Sæther \n" "Language-Team: Norwegian Bokmål \n" @@ -18,57 +18,57 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "avbrutt" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "ubesvart" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "Avvis" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 #, fuzzy msgid "Me" msgstr "Skru mikrofonen av" @@ -78,31 +78,31 @@ msgstr "Skru mikrofonen av" msgid "Couldn't find pixmap file: %s" msgstr "Fant ikke pixmap fli: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "skriv logg-informasjon under kjøring" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "Start skjult i systemkurven, ikke vis programbildet." -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "address som skal ringes nå" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "besvarer innkommende samtaler automatisk om valgt" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -110,12 +110,12 @@ msgstr "" "Spesifiser arbeidsmappe (bør være base for installasjonen, f.eks: c:" "\\Programfiler\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Ring med %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -128,7 +128,7 @@ msgstr "" "din kontaktliste?\n" "Hvis du svarer nei vil personen bli svartelyst midlertidig." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -137,61 +137,61 @@ msgstr "" "Skriv inn ditt passord for brukernavn %s\n" " på domene %s:i>:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Samtalehistorikk" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Samtale avsluttet" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "Svarer" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Avvis" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "Samtale avbrutt" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Porter" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Peker til nettsted" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (Standard)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "Vi er overført til %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -199,175 +199,175 @@ msgstr "" "Klarte ikke å finne noe lydkort på denne datamaskinen.\n" "Du vil ikke kunne sende eller motta lydsamtaler." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Tilstedestatus" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Navn" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Ring %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Søk i %s katalogen" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Ugyldig SIP kontakt !" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Ring %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Send tekst til %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Rediger kontakt '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Slett kontakt '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Legg til kontakt fra %s katalogen" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Frekvens (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min. datahastighet (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parametere" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "På" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Av" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Engelsk" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Fransk" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Svensk" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italisensk" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Spansk" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "Portugisisk" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polsk" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Tysk" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Russisk" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "Japansk" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Nederlandsk" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Ungarsk" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Tjekkisk" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "Kinesisk" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du må restarte linphone for at det nye språkvalget skal iverksettes." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -411,7 +411,7 @@ msgid_plural "Found %i contacts" msgstr[0] "Fant kontakt %i" msgstr[1] "Hittat kontakt %i" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -419,276 +419,319 @@ msgstr "" "Velkommen\n" "Denne veiviseren vil hjelpe deg sette opp en SIP-konto for dine samtaler." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "Lag en konto ved å velge ett brukernavn" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "Jeg har allerede en brukerkonto og vil bruke den." -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "Jeg har allerede en brukerkonto og vil bruke den." -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Brukernavn:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Passord:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Brukernavn" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Passord" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Brukernavn:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Passord:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "Takk. Ditt konto er nå satt opp og klart til bruk." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Velkommen til brukerkontoveiviseren" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Brukerkontoveiviser" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Konfigurer en SIP konto" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 #, fuzzy msgid "Terminating" msgstr "Lägg på" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Ring %s" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Ikke funnet" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "ICE filter" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Omdirigert" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "STUN oppslag pågår..." + +#: ../gtk/incall_view.c:242 +msgid "uPnp not available" +msgstr "" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "ICE filter" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "I samtale med" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "Pauset samtale" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Samtale avsluttet." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 #, fuzzy msgid "Transfer done." msgstr "Overfører" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Overfører" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "Fortsett" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "Pause" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Pause" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -712,212 +755,152 @@ msgid "label" msgstr "etikett" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "Overfører" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "I samtale" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Varighet" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "_Alternativer" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Vis video av deg selv" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Hjelp" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Vis avlusningsvindu" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "H_jemmeside" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Sjekk _Oppdateringer" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Brukerkontoveiviser" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Sip adresse eller telefonnummer:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Start en ny samtale" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Kontakter" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Legg til" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Rediger" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Søk" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Legg til kontakter fra katalogen" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "Legg til kontakt" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "Tastatur" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "I samtale" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Min nåværende identitet:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Brukernavn" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passord" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Internet forbindelse:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Logg meg på automatisk" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Innlogginsinformasjon" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Velkommen!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "Alle brukere" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "Tilkoblede brukere" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "Fiber Kanal" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "Standard" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1077,6 +1060,10 @@ msgstr "Lyd kodek" msgid "Video codecs" msgstr "Video kodek" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 #, fuzzy msgid "SIP (UDP)" @@ -1117,209 +1104,218 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "Video RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "Lyd RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "" + +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Tilkoblet Internett direkte" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Bak NAT / Brannmur (spesifiser gateway IP under)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Offentlig IP-addresse:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "STUN tjener:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT og Brannvegg" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Nettverksinnstillinger" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Ringelyd:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "Spesiell ALSA enhet (valgfritt):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Mikrofonenhet:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Ringe-enhet:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Avspillingsenhet:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Bruk ekko-kansellering" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Lyd" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Videoenhet:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Foretrukke video-oppløsning:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Multimediainnstillinger" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "Denne seksjonen velger SIP-addresse når du ikke bruker en SIP-konto" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Vist navn (eks: Ola Nordmann):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Ditt brukernavn:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Din resulterende SIP addresse:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Standard identitet" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Fjern" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Proxy kontoer" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Slett alle passord" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Personvern" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Behandle SIP-kontoer" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Aktiver" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Deaktiver" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Kodeker" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 betyr \"ubegrenset\"" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Maks opplastningshastighet i Kbit/sek:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Nedlastningsbegrensning i Kbit/sek:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Båndbreddekontrol" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Kodek" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Språk" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Vis avanserte innstillinger" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Nivå" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Brukergrensesnitt" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Ferdig" @@ -1386,7 +1382,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1394,6 +1390,14 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Kontaktinformasjon" @@ -1419,19 +1423,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "avbrutt" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "Fullført" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "ubesvart" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1446,23 +1510,23 @@ msgstr "" "Status: %s\n" "Lengde: %i min %i sek\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Utgående samtale" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Klar" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Ser etter telefonnummer for destinasjonen..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Kan ikke tilkoble dette nummeret." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1470,47 +1534,47 @@ msgstr "" "Klarer ikke å tolke angitt SIP-adresse. En SIP-adresse er vanligvis ut som " "sip: brukernavn@domenenavn" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Tilknytter" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Kunne ikke ringe" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Beklager, du har nådd maksimalt antall samtidige samtaler" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "Kontakter deg." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " og ba om autosvar." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Endrer ringeparametre..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Tilkoblet" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Samtale avbrutt" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "Kunne ikke pause samtalen" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "Pauser nåværende samtale" @@ -1612,116 +1676,116 @@ msgstr "" "SIP adressen du har angitt er feil. Adressen bør se ut som sip: " "brukernavn@domenenavn, f.eks sip:ola@eksempel.no" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Ikke ikke logge inn som %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Tidlig media" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "Samtalen med %s er pauset." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "Samtale besvart av %s - på vent." -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "Samtale gjenopptatt." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "Samtale besvart av %s." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "Vi har blitt gjenopptatt..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Samtale avsluttet." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Brukeren er opptatt." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Brukeren er midlertidig ikke tilgjengelig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Brukeren vil ikke bli forstyrret." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Samtale avvist." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "Ikke noe svar." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "Protokollfeil." -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "Omdirigert" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "Samtale feilet." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lykkes." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lykkes." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "ingen svar innen angitt tid" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislykkes: %s" @@ -1731,13 +1795,16 @@ msgstr "Registrering hos %s mislykkes: %s" msgid "Authentication token is %s" msgstr "Autorisering kreves" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Du har %i ubesvarte anrop." msgstr[1] "Du har %i missade samtal" +#~ msgid "Keypad" +#~ msgstr "Tastatur" + #~ msgid "Chat with %s" #~ msgstr "Chat med %s" @@ -1774,9 +1841,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Now ready !" #~ msgstr "Klar nå!" -#~ msgid "Contacts" -#~ msgstr "Kontakter" - #, fuzzy #~ msgid "Enable video" #~ msgstr "På" @@ -1850,9 +1914,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "gtk-close" #~ msgstr "gtk-lukk" -#~ msgid "Ports" -#~ msgstr "Porter" - #~ msgid "Sorry, you have to pause or stop the current call first !" #~ msgstr "Beklager, du må pause eller avslutte den nåværende samtalen først !" diff --git a/po/nl.po b/po/nl.po index 84f297c20..926bd7bb6 100644 --- a/po/nl.po +++ b/po/nl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: nl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2007-09-05 10:40+0200\n" "Last-Translator: Hendrik-Jan Heins \n" "Language-Team: Nederlands \n" @@ -20,57 +20,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "afgebroken" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "gemist" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "lijn" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "" @@ -79,42 +79,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat met %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -123,245 +123,245 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Linphone - Oproepgeschiedenis" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Oproep beeindigd" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" msgstr "lijn" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "afgebroken" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Contactlijst" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Een Vrije SIP video-telefoon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "Adresboek" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Aanwezigheidsstatus" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Naam" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Oproepgeschiedenis" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Chat box" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, fuzzy, c-format msgid "Call %s" msgstr "Oproepgeschiedenis" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Bewerk contactgegevens" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Frequentie (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Minimale bitrate (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parameters" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Aan" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Uit" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Account" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Geen" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -405,282 +405,325 @@ msgid_plural "Found %i contacts" msgstr[0] "" msgstr[1] "" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Oproepgeschiedenis" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Oproep geannuleerd." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Doorgeschakeld naar %s..." -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "STUN adres wordt opgezocht..." + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "Geen informatie beschikbaar" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Oproep geannuleerd." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "Contactlijst" -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." msgstr "Oproep beeindigd" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Oproep geannuleerd." -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -705,227 +748,168 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "In call" msgstr "Inkomende oproep" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 #, fuzzy msgid "Duration" msgstr "Informatie" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Video aan" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "_Help" msgstr "Help" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Geef het SIP adres of telefoonnummer in" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Verbinden" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Adres" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Bewerken" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "Contact informatie" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "Bewerk contactgegevens" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "Inkomende oproep" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 #, fuzzy msgid "My current identity:" msgstr "SIP-identiteit:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "gebruikersnaam:" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "wachtwoord:" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Automatically log me in" msgstr "Automatisch een geldige hostnaam raden" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Login information" msgstr "Contact informatie" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 #, fuzzy msgid "Welcome !" msgstr "Contactlijst" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "Aanwezig" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "SIP-identiteit:" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1084,6 +1068,10 @@ msgstr "Video codecs" msgid "Video codecs" msgstr "Video codecs" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1122,231 +1110,239 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "" + +#: ../gtk/parameters.ui.h:26 #, fuzzy msgid "Public IP address:" msgstr "SIP-adres:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:30 #, fuzzy msgid "Stun server:" msgstr "Geluidsapparaat" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 #, fuzzy msgid "NAT and Firewall" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Network settings" msgstr "Netwerk" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Ring sound:" msgstr "Belgeluid:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Capture device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "Ring device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Playback device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 #, fuzzy msgid "Audio" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Video input device:" msgstr "Geluidsapparaat" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Video" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 #, fuzzy msgid "Your username:" msgstr "gebruikersnaam:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 #, fuzzy msgid "Your resulting SIP address:" msgstr "Uw SIP-adres:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Default identity" msgstr "SIP-identiteit:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Verwijderen" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Proxy accounts" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 #, fuzzy msgid "Privacy" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Aan" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Uit" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Codecs" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Upload speed limit in Kbit/sec:" msgstr "Upload bandbreedte (kbit/sec):" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 #, fuzzy msgid "Download speed limit in Kbit/sec:" msgstr "Download bandbreedte (kbit/sec):" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 #, fuzzy msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 #, fuzzy msgid "Language" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 #, fuzzy msgid "User interface" msgstr "gebruikersnaam:" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 #, fuzzy msgid "Done" msgstr "Weg" @@ -1415,7 +1411,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1423,6 +1419,15 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Geluidseigenschappen" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Contact informatie" @@ -1447,19 +1452,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "voltooid" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "gemist" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1474,23 +1539,23 @@ msgstr "" "Status: %s\n" "Tijdsduur: %i mins %i secs\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Uitgaande oproep" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Gereed." -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Zoekt de lokatie van het telefoonnummer..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Kon dit nummer niet vinden." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1498,51 +1563,51 @@ msgstr "" "Slecht geformuleerd SIP-adres. Een SIP-adres ziet er uit als sip:" "gebruikersnaam@domeinnaam" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Verbinden" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "belt u." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Verbonden." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 #, fuzzy msgid "Could not pause the call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 #, fuzzy msgid "Pausing the current call..." msgstr "Kon niet oproepen" @@ -1644,121 +1709,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat met %s" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Oproep beeindigd" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Oproepen of\n" "beantwoorden" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Oproep beeindigd." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Gebruiker is bezet." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Gebruiker is tijdelijk niet beschikbaar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "De gebruiker wenst niet gestoord te worden." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Oproep geweigerd." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 #, fuzzy msgid "Redirected" msgstr "Doorgeschakeld naar %s..." -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Oproep geannuleerd." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registratie op %s mislukt (time-out)." @@ -1768,7 +1833,7 @@ msgstr "Registratie op %s mislukt (time-out)." msgid "Authentication token is %s" msgstr "Authorisatie gegevens" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1786,10 +1851,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "Confirmation" #~ msgstr "Informatie" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Verbinden" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Aan" @@ -1838,10 +1899,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "gtk-close" #~ msgstr "Verbonden." -#, fuzzy -#~ msgid "Ports" -#~ msgstr "Contactlijst" - #~ msgid "" #~ "Your machine appears to be connected to an IPv6 network. By default " #~ "linphone always uses IPv4. Please update your configuration if you want " @@ -2172,9 +2229,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "Listen" #~ msgstr "Luisteren" -#~ msgid "Sound properties" -#~ msgstr "Geluidseigenschappen" - #~ msgid "Run sip user agent on port:" #~ msgstr "Start SIP gebruikerssysteem op poort:" @@ -2208,10 +2262,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ "Opmerking: Met rood weergegeven codecs zijn niet bruikbaar vanwege het " #~ "soort internetverbinding dat u heeft" -#, fuzzy -#~ msgid "No information availlable" -#~ msgstr "Geen informatie beschikbaar" - #~ msgid "Codec information" #~ msgstr "Codec informatie" diff --git a/po/pl.po b/po/pl.po index 419af8a98..7999a657d 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2003-08-22 12:50+0200\n" "Last-Translator: Robert Nasiadek \n" "Language-Team: Polski \n" @@ -16,56 +16,56 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "Połączenie odwołane." -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 msgid "Missed" msgstr "" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "linia" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "" @@ -74,42 +74,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -118,247 +118,247 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "Rozmowa odrzucona." -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" msgstr "linia" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Dzwonie do " -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "Książka adresowa" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 #, fuzzy msgid "Presence status" msgstr "Obecność" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nazwa" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Połączenie odwołane." -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Jakość (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min przepustowość (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parametr" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Włączone" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Wyłączone" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 #, fuzzy msgid "None" msgstr "Brak." -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -402,281 +402,323 @@ msgid_plural "Found %i contacts" msgstr[0] "" msgstr[1] "" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Połączenie odwołane." -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Połączenie odwołane." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 msgid "Direct" msgstr "" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +msgid "uPnP in progress" +msgstr "" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "Brak informacji" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Połączenie odwołane." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "Dzwonie do " -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." msgstr "Rozmowa odrzucona." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Połączenie odwołane." -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -701,225 +743,166 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "In call" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 #, fuzzy msgid "Duration" msgstr "Informacja" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Włączone" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Adres serwera rejestracji sip" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Dzwonie do " + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Adres" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "Informacje o kodeku" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 #, fuzzy msgid "My current identity:" msgstr "Tożsamość" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Podręcznik" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Twoje hasło:" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Login information" msgstr "Informacje o kodeku" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 #, fuzzy msgid "Welcome !" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "linia" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "Tożsamość" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1076,6 +1059,10 @@ msgstr "Kodeki audio" msgid "Video codecs" msgstr "Kodeki audio" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1114,229 +1101,237 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "" + +#: ../gtk/parameters.ui.h:26 #, fuzzy msgid "Public IP address:" msgstr "Adres sip:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:30 #, fuzzy msgid "Stun server:" msgstr "Dźwięk" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 #, fuzzy msgid "NAT and Firewall" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Network settings" msgstr "Sieć" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Ring sound:" msgstr "Źródło nagrywania:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Capture device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "Ring device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Playback device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 #, fuzzy msgid "Audio" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Video input device:" msgstr "Dźwięk" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Video" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 #, fuzzy msgid "Your username:" msgstr "Podręcznik" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 #, fuzzy msgid "Your resulting SIP address:" msgstr "Twój adres sip:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Default identity" msgstr "Tożsamość" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 -msgid "Remove" -msgstr "" - -#: ../gtk/parameters.ui.h:51 -#, fuzzy -msgid "Proxy accounts" -msgstr "Dzwonie do " - #: ../gtk/parameters.ui.h:52 -msgid "Erase all passwords" +msgid "Remove" msgstr "" #: ../gtk/parameters.ui.h:53 #, fuzzy -msgid "Privacy" +msgid "Proxy accounts" msgstr "Dzwonie do " #: ../gtk/parameters.ui.h:54 +msgid "Erase all passwords" +msgstr "" + +#: ../gtk/parameters.ui.h:55 +#, fuzzy +msgid "Privacy" +msgstr "Dzwonie do " + +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Włączony" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Wyłącz" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Codecs" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 #, fuzzy msgid "Codecs" msgstr "Kodeki" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 #, fuzzy msgid "Language" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 #, fuzzy msgid "User interface" msgstr "Podręcznik" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 #, fuzzy msgid "Done" msgstr "Brak." @@ -1404,7 +1399,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1412,6 +1407,15 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Właściwości dźwięku" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Informacje o kodeku" @@ -1436,19 +1440,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1458,75 +1522,75 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 #, fuzzy msgid "Ready" msgstr "Gotowy." -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "Nie poprawny adres sip. Adres sip wygląda tak " -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 #, fuzzy msgid "Contacting" msgstr "Dzwonie do " -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "dzwoni do Ciebie." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Połączony" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "Połączenie odwołane." -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "" @@ -1626,121 +1690,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 -#, c-format -msgid "Call with %s is paused." -msgstr "" - #: ../coreapi/callbacks.c:365 #, c-format +msgid "Call with %s is paused." +msgstr "" + +#: ../coreapi/callbacks.c:378 +#, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Zadzwoń lub\n" "Odpowiedz" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 #, fuzzy msgid "Call terminated." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Osoba jest zajęta." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Osoba jest tymczasowo niedostępna." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Osoba nie chce, aby jej przeszkadzać." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Połączenie odwołane." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Rejestracja powiodła się." @@ -1750,7 +1814,7 @@ msgstr "Rejestracja powiodła się." msgid "Authentication token is %s" msgstr "Informacje o kodeku" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1761,10 +1825,6 @@ msgstr[1] "" #~ msgid "Confirmation" #~ msgstr "Informacja" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Dzwonie do " - #, fuzzy #~ msgid "Enable video" #~ msgstr "Włączone" @@ -1801,10 +1861,6 @@ msgstr[1] "" #~ msgid "gtk-close" #~ msgstr "Połączony" -#, fuzzy -#~ msgid "Ports" -#~ msgstr "Dzwonie do " - #, fuzzy #~ msgid "_Modes" #~ msgstr "Kodeki" @@ -1944,9 +2000,6 @@ msgstr[1] "" #~ msgid "Recording source:" #~ msgstr "Źródło nagrywania:" -#~ msgid "Sound properties" -#~ msgstr "Właściwości dźwięku" - #~ msgid "Run sip user agent on port:" #~ msgstr "Uruchom agenta sip na porcie:" @@ -1979,10 +2032,6 @@ msgstr[1] "" #~ "Uwaga: Czerwone kodeki nie mogą być użyte, ze względu na typTwojego " #~ "połącznia z internetem." -#, fuzzy -#~ msgid "No information availlable" -#~ msgstr "Brak informacji" - #~ msgid "Codec information" #~ msgstr "Informacje o kodeku" diff --git a/po/pt_BR.po b/po/pt_BR.po index 59cde92ef..9cd72ea90 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-1.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2006-07-11 23:30+0200\n" "Last-Translator: Rafael Caesar Lenzi \n" "Language-Team: pt_BR \n" @@ -18,57 +18,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "Abortado" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "Perdido" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "linha" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "" @@ -77,42 +77,42 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, fuzzy, c-format msgid "Call with %s" msgstr "Bate-papo com %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -121,247 +121,247 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Linphone - Histórico de chamadas" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "Chamada cancelada." -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 #, fuzzy msgid "Decline" msgstr "linha" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "Abortado" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Contatando " -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 #, fuzzy msgid "Add to addressbook" msgstr "Catálogo de endereços" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Status de presença" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Histórico de chamadas" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Sala de bate-papo" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, fuzzy, c-format msgid "Call %s" msgstr "Histórico de chamadas" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Edicar informação de contato" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Taxa (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Bitrate mínimo (kbits/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parâmetros" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Ativado" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Desativado" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 #, fuzzy msgid "Account" msgstr "Aceitar" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Nenhum" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -405,282 +405,324 @@ msgid_plural "Found %i contacts" msgstr[0] "" msgstr[1] "" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 #, fuzzy msgid "Username:" msgstr "Usuário" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 #, fuzzy msgid "Password:" msgstr "Senha:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Usuário" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Senha:" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Usuário" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Senha:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Histórico de chamadas" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Histórico de chamadas" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Redirecionado para %s..." -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +msgid "uPnP in progress" +msgstr "" + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "Informações não disponíveis" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Histórico de chamadas" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 #, fuzzy msgid "Calling..." msgstr "Contatando " -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "Contatando " -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Contatando " -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 #, fuzzy msgid "Call ended." msgstr "Chamada cancelada." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Histórico de chamadas" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -705,225 +747,166 @@ msgid "label" msgstr "" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "In call" msgstr "Camadas recebidas" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 #, fuzzy msgid "Duration" msgstr "Informações" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Ativado" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Contatando " + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Endereço" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editar" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contacts from directory" msgstr "Informação de contato" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "Edicar informação de contato" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "Camadas recebidas" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 #, fuzzy msgid "My current identity:" msgstr "Identificação SIP:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Usuário" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Senha:" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Automatically log me in" msgstr "Adquirir automaticamente um nome de servidor válido." -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Login information" msgstr "Informação de contato" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 #, fuzzy msgid "Welcome !" msgstr "Contatando " -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "linha" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "Identificação SIP:" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1081,6 +1064,10 @@ msgstr "Codec's de áudio" msgid "Video codecs" msgstr "Codec's de áudio" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1119,229 +1106,237 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 -msgid "Direct connection to the Internet" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:24 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "" + +#: ../gtk/parameters.ui.h:26 #, fuzzy msgid "Public IP address:" msgstr "Endereço sip:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" msgstr "" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:30 #, fuzzy msgid "Stun server:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 #, fuzzy msgid "NAT and Firewall" msgstr "Contatando " -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Network settings" msgstr "Rede" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Ring sound:" msgstr "Som do toque:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Capture device:" msgstr "Dispositivo de captura de som:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "Ring device:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Playback device:" msgstr "Dispositivo de som:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 #, fuzzy msgid "Audio" msgstr "Contatando " -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Video input device:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Video" msgstr "Contatando " -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 #, fuzzy msgid "Your username:" msgstr "Usuário" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 #, fuzzy msgid "Your resulting SIP address:" msgstr "Seu endereço SIP:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Default identity" msgstr "Identificação SIP:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Remover" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Proxy accounts" msgstr "Contatando " -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 #, fuzzy msgid "Privacy" msgstr "Contatando " -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Ativado" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Desativar" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Codecs" msgstr "Contatando " -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 #, fuzzy msgid "Codecs" msgstr "Codec's de áudio" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 #, fuzzy msgid "Language" msgstr "Contatando " -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 #, fuzzy msgid "Level" msgstr "Contatando " -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 #, fuzzy msgid "User interface" msgstr "Usuário" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 #, fuzzy msgid "Done" msgstr "Nenhum" @@ -1409,7 +1404,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1417,6 +1412,15 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Propriedades de som" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Informação de contato" @@ -1441,19 +1445,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "Competado" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "Perdido" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, fuzzy, c-format msgid "" "%s at %s\n" @@ -1467,74 +1531,74 @@ msgstr "" "Status: %s\n" "Duração: %i min %i seg\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Chamadas efetuadas" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 #, fuzzy msgid "Ready" msgstr "Pronto." -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Procurando por telefone de destino..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Não foi possível encontrar este número." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 #, fuzzy msgid "Contacting" msgstr "Contatando " -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "está chamado você." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "" @@ -1624,121 +1688,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 #, fuzzy msgid "Remote ringing." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Bate-papo com %s" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Chamada cancelada." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Ligar ou\n" "atender" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "" -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Usuário está ocupado." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Usuário está temporáriamente indisponível." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 #, fuzzy msgid "Redirected" msgstr "Redirecionado para %s..." -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Histórico de chamadas" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registro falhou (tempo esgotado)." @@ -1748,7 +1812,7 @@ msgstr "Registro falhou (tempo esgotado)." msgid "Authentication token is %s" msgstr "Informações de autenticação" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1766,10 +1830,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "Confirmation" #~ msgstr "Informações" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Contatando " - #, fuzzy #~ msgid "Enable video" #~ msgstr "Ativado" @@ -1810,10 +1870,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "gtk-close" #~ msgstr "Conectado." -#, fuzzy -#~ msgid "Ports" -#~ msgstr "Contatando " - #~ msgid "" #~ "Your machine appears to be connected to an IPv6 network. By default " #~ "linphone always uses IPv4. Please update your configuration if you want " @@ -1987,9 +2043,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "Listen" #~ msgstr "Escutar" -#~ msgid "Sound properties" -#~ msgstr "Propriedades de som" - #~ msgid "Run sip user agent on port:" #~ msgstr "Executar agente sip na porta:" @@ -2012,9 +2065,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "List of audio codecs, in order of preference:" #~ msgstr "Lista de codecs de audio, em ordem de preferência:" -#~ msgid "No information availlable" -#~ msgstr "Informações não disponíveis" - #~ msgid "Codec information" #~ msgstr "Informações sobre o codec" diff --git a/po/ru.po b/po/ru.po index 84e09cb04..a7fd4a832 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2010-01-22 18:43+0300\n" "Last-Translator: Maxim Prokopyev \n" "Language-Team: Russian \n" @@ -18,21 +18,25 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "н/д" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "отмененный" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "пропущенный" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "Отклонить" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" @@ -40,7 +44,7 @@ msgstr[0] "%i минута" msgstr[1] "%i минуты" msgstr[2] "%i минут" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" @@ -48,7 +52,7 @@ msgstr[0] "%i секунда" msgstr[1] "%i секунды" msgstr[2] "%i секунд" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" @@ -57,11 +61,7 @@ msgstr "" "%s\t%s\tКачество: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "н/д" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, fuzzy, c-format msgid "" "%s\t%s\t\n" @@ -70,11 +70,11 @@ msgstr "" "%s\t%s\tКачество: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "Конференция" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 msgid "Me" msgstr "Я" @@ -83,33 +83,33 @@ msgstr "Я" msgid "Couldn't find pixmap file: %s" msgstr "Невозможно найти графический файл: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "" "Вывод некоторой отладочной информации на устройство стандартного вывода во " "время работы" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "путь к файлу для записи журнала работы." -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "Запускать только в системном лотке, не показывая главное окно" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "адрес для звонка" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "автоматически принимать входящие вызовы, если включено" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -117,12 +117,12 @@ msgstr "" "Укажите рабочий каталог (должен содержать установленные файлы приложения, " "например: c:\\Program Files\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Чат с %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -135,7 +135,7 @@ msgstr "" "его(её) в свой контактный лист?\n" "Если вы ответите Нет, этот человек будет временно заблокирован." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -144,59 +144,59 @@ msgstr "" "Пожалуйста, введите пароль для пользователя %s\n" " в домене %s:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 msgid "Call error" msgstr "Ошибка вызова" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Разговор окончен" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "Ответить" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Отклонить" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 msgid "Call paused" msgstr "Вызов приостановлен" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "со стороны: %s" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Порты" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Ссылка на сайт" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - видео-телефон для интернета" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (По умолчанию)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "Мы переведены на %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -204,177 +204,177 @@ msgstr "" "На этом компьютере не обнаружено ни одной звуковой карты.\n" "Вы не сможете совершать или принимать аудио-вызовы." -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Свободный SIP видео-телефон" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "Добавить в адресную книгу" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Статус присутствия" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Имя" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 msgid "Call" msgstr "Вызов" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 #, fuzzy msgid "Chat" msgstr "Комната чата" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Поиск в директории %s" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "Неверный sip-контакт!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Набрать %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Послать текст к %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Редактировать контакт '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Удалить контакт '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Добавить новый контакт из директории '%s'" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Частота (Гц)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Статус" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Минимальный битрейт (кбит/с)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Параметры" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Включен" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Отключен" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Учетная запись" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Английский" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Французский" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Шведский" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Итальянский" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Испанский" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "Бразильский португальский" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Польский" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Немецкий" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Русский" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "Японский" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Нидерландский" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Венгерский" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Чешский" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "Китайский" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "Традиционный китайский" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "Норвежский" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Вы должны перезапустить Linphone для того, чтобы языковые настройки вступили " "в силу." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "Нет" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "ZRTP" @@ -419,7 +419,7 @@ msgstr[0] "Найден %i контакт" msgstr[1] "Найдено %i контакта" msgstr[2] "Найдено %i контактов" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -427,72 +427,72 @@ msgstr "" "Добро пожаловать!\n" "Этот помощник поможет вам использовать учётную запись SIP для ваших звонков." -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" msgstr "Создать учётную запись на linphone.org" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" msgstr "" "У меня уже есть учётная запись на linphone.org и я хочу использовать её" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" msgstr "У меня уже есть учётная запись SIP и я хочу использовать её" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "Введите ваше имя пользователя на linphone.org" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Имя пользователя:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Пароль:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "Введите информацию о вашей учётной записи" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 msgid "Username*" msgstr "Имя пользователя*" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 msgid "Password*" msgstr "Пароль*" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "Домен*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "Прокси" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "(*) Обязательные поля" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 msgid "Username: (*)" msgstr "Имя пользователя: (*)" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 msgid "Password: (*)" msgstr "Пароль: (*)" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "Email: (*)" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "Подтвердите ваш пароль: (*)" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -501,11 +501,11 @@ msgstr "" "сервер недоступен.\n" "Вернитесь и попробуйте ещё раз." -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "Спасибо! Учетная запись успешно настроена и готова к использованию." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -515,186 +515,230 @@ msgstr "" "только что выслали вам на электронную почту.\n" "Затем вернитесь и нажмите на кнопку Далее." -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Добро пожаловать в помощник настройки учётной записи" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Помощник настройки учётной записи" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" msgstr "Настройте свою учётную запись (шаг 1/1)" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "Введите ваше имя пользователя SIP (шаг 1/1)" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "Введи информация об учётной записи (шаг 1/2)" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "Проверка (шаг 2/2)" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "Ошибка" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "Завершение" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Вызов #%i" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "Перевести на #%i с %s" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Не найден" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "ICE фильтр" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Переадресован" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "Идет поиск Stun..." + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "недоступно" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "ICE фильтр" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, fuzzy, c-format +msgid "%.3f seconds" +msgstr "%i секунда" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Вызов..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "хорошее" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "среднее" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "плохое" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "очень плохое" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "слишком плохое" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "недоступно" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "Защищено SRTP" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Защищено ZRTP - [токен: %s]" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "Не проверен" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "Проверен" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "В конференции" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "Соединен с" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "Приостановленный вызов" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Звонок закончен." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 #, fuzzy msgid "Transfer done." msgstr "Перевести" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Перевести" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "Продолжить" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "Пауза" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Пауза" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -718,210 +762,150 @@ msgid "label" msgstr "метка" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "Перевести" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "Вызов" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Продолжительность" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "Уровень качества звонка" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "_Настройки" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Включить своё видео" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Помощь" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Показать окно отладки" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Домашняя страница" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Проверить _Обновления" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Помощник настройки учётной записи" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP-адрес или номер телефона:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Совершить новый вызов" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Контакты" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Добавить" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Редактировать" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Поиск" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Добавить контакты из директории" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "Добавить контакт" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "Номеронабиратель" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 msgid "Recent calls" msgstr "Недавние вызовы" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Мой текущий идентификатор:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Имя пользователя" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Пароль" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Интернет-соединение:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Входить автоматически" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Информация для входа" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Добро пожаловать!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "Все пользователи" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "Пользователи в сети" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "Оптоволокно" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "По умолчанию" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1080,6 +1064,10 @@ msgstr "Аудио кодеки" msgid "Video codecs" msgstr "Видео кодеки" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "SIP (UDP)" @@ -1117,180 +1105,190 @@ msgid "Media encryption type" msgstr "Тип шифрования потока" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "Туннель" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "Видео RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "Аудио RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "Туннель" + #: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Тип шифрования потока" + +#: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" msgstr "Протокол и порты" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Прямое подключение к Интернету" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "За NAT / брандмауэром (укажите IP-адрес шлюза ниже)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Внешний IP-адрес:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "За NAT / брандмауэром (использовать STUN)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "За NAT / брандмауэром (использовать STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "За NAT / брандмауэром (использовать STUN)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "Сервер STUN:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT и брандмауэр" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Настройки сети" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Звук звонка:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "Специальное устройство ALSA (необязательно):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Устройство захвата:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Устройство звонка:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Устройство воспроизведения:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Включить подавление эхо" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Звук" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Устройство захвата видео:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Предпочтительное разрешение видео:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Видео" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Настройки мультимедиа" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "Эта секция устанавливает ваш SIP-адрес, когда вы не используете SIP-аккаунт" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Отображаемое имя (напр.: Иван Сидоров):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Имя пользователя:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Результирующий SIP-адрес:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Идентификатор по умолчанию" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "Мастер" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Удалить" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Учетные записи прокси" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Стереть все пароли" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Конфеденциальность" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Управление учётными записями SIP" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Включить" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Выключить" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Кодеки" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 означает \"безлимитный\"" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Ограничение исходящего потока в кбит/сек:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Ограничение скорости входящего потока в кбит/сек" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "Включить адаптивный контроль скорости" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1298,31 +1296,31 @@ msgstr "" "Адаптивное управление скоростью - это техника, позволяющая динамически " "определять доступную пропускную способность сети во время звонка." -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Управление скоростью сети" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Кодеки" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Язык" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Показывать расширенные настройки" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Уровень" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Интерфейс пользователя" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Готово" @@ -1390,7 +1388,7 @@ msgstr "" #: ../gtk/call_statistics.ui.h:5 #, fuzzy -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "Тип шифрования потока" #: ../gtk/call_statistics.ui.h:6 @@ -1399,6 +1397,16 @@ msgstr "" #: ../gtk/call_statistics.ui.h:7 #, fuzzy +msgid "Video Media connectivity" +msgstr "Тип шифрования потока" + +#: ../gtk/call_statistics.ui.h:8 +#, fuzzy +msgid "Round trip time" +msgstr "Настройки звука" + +#: ../gtk/call_statistics.ui.h:9 +#, fuzzy msgid "Call statistics and information" msgstr "Контактная информация" @@ -1423,19 +1431,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "отмененный" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "завершённый" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "пропущенный" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1450,23 +1518,23 @@ msgstr "" "Статус: %s\n" "Длительность: %i мин %i сек\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Исходящий звонок" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Готов" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Поиск адреса для телефонного номера..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Не могу найти этот номер." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1474,47 +1542,47 @@ msgstr "" "Не могу опознать sip адрес. SIP-URL обычно выглядит как sip:" "username@domainname" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Соединение" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Не удалось позвонить" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, мы превысили максимальное количество одновременных вызовов" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "пытается связаться с вами" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " и ответил автоответчик." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Изменение параметров вызова..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Соединён." -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Вызов отменён" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "Не удалось приостановить вызов" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "Приостановление текущего вызова..." @@ -1617,117 +1685,118 @@ msgstr "" "Они должны выглядеть как sip:username@proxydomain, например such as sip:" "alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Невозможно зайти как %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Абонент вызывается." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "Абонент вызывается..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Гудки." -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "Вызов %s приостановлен." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "Вызов отвечен %s - в ожидании." -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "Разговор продолжен." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "Вызов отвечен %s." -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +#, fuzzy +msgid "Incompatible, check codecs or security settings..." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "Наш вызов продолжен..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 #, fuzzy msgid "Call is updated by remote." msgstr "Вызов обновлён вызываемым абонентом..." -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Звонок прерван." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Пользователь занят." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Пользователь временно недоступен." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Абонент не хочет отвечать." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Звонок отклонён." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "Нет ответа." -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "Ошибка протокола." -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "Переадресован" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 #, fuzzy msgid "Incompatible media parameters." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "Не удалось совершить вызов." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Регистрация на %s прошла успешно." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Отмена регистрации на %s завершена." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "время ожидания истекло" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Регистрация на %s не удалась: %s" @@ -1737,7 +1806,7 @@ msgstr "Регистрация на %s не удалась: %s" msgid "Authentication token is %s" msgstr "Аутентификационный токен: %s" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1745,6 +1814,12 @@ msgstr[0] "У вас пропущен %i звонок." msgstr[1] "У вас пропущено %i звонка." msgstr[2] "У вас пропущено %i звонков." +#~ msgid "by %s" +#~ msgstr "со стороны: %s" + +#~ msgid "Keypad" +#~ msgstr "Номеронабиратель" + #~ msgid "Chat with %s" #~ msgstr "Чат с %s" @@ -1760,9 +1835,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "in" #~ msgstr "в" -#~ msgid "Contacts" -#~ msgstr "Контакты" - #~ msgid "edit" #~ msgstr "редактировать" @@ -1851,9 +1923,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "gtk-close" #~ msgstr "Закрыть" -#~ msgid "Ports" -#~ msgstr "Порты" - #~ msgid "ITU-G.711 alaw encoder" #~ msgstr "ITU-G.711 alaw кодировщик" @@ -2318,9 +2387,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "Listen" #~ msgstr "Слушать" -#~ msgid "Sound properties" -#~ msgstr "Настройки звука" - #~ msgid "Sound device" #~ msgstr "Устройство звука" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 000000000..4a465ec8e --- /dev/null +++ b/po/sr.po @@ -0,0 +1,1877 @@ +# SIP Telephony Application. +# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Мирослав Николић , 2013. +msgid "" +msgstr "" +"Project-Id-Version: linphone 0.7.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"PO-Revision-Date: 2013-02-11 19:03+0200\n" +"Last-Translator: Мирослав Николић \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "н/д" + +#: ../gtk/calllogs.c:85 +#, fuzzy +msgid "Aborted" +msgstr "прекинути" + +#: ../gtk/calllogs.c:88 +#, fuzzy +msgid "Missed" +msgstr "пропуштени" + +#: ../gtk/calllogs.c:91 +#, fuzzy +msgid "Declined" +msgstr "Одбиј" + +#: ../gtk/calllogs.c:97 +#, c-format +msgid "%i minute" +msgid_plural "%i minutes" +msgstr[0] "%i минут" +msgstr[1] "%i минута" +msgstr[2] "%i минута" +msgstr[3] "Један минут" + +#: ../gtk/calllogs.c:100 +#, c-format +msgid "%i second" +msgid_plural "%i seconds" +msgstr[0] "%i секунда" +msgstr[1] "%i секунде" +msgstr[2] "%i секунде" +msgstr[3] "Једна секунда" + +#: ../gtk/calllogs.c:103 +#, c-format +msgid "" +"%s\t%s\tQuality: %s\n" +"%s\t%s %s\t" +msgstr "" +"%s\t%s\tКвалитет: %s\n" +"%s\t%s %s\t" + +#: ../gtk/calllogs.c:108 +#, fuzzy, c-format +msgid "" +"%s\t%s\t\n" +"%s\t%s" +msgstr "" +"%s\t%s\tКвалитет: %s\n" +"%s\t%s %s\t" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +msgid "Conference" +msgstr "Конференција" + +#: ../gtk/conference.c:46 +msgid "Me" +msgstr "Ја" + +#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "Не могу да пронађем датотеку сличице: %s" + +#: ../gtk/main.c:88 +msgid "log to stdout some debug information while running." +msgstr "бележи у стандардни излаз неке податке за уклањање грешака док ради." + +#: ../gtk/main.c:95 +msgid "path to a file to write logs into." +msgstr "путања до датотеке за уписивање бележака." + +#: ../gtk/main.c:102 +msgid "Start linphone with video disabled." +msgstr "" + +#: ../gtk/main.c:109 +msgid "Start only in the system tray, do not show the main interface." +msgstr "Покреће се само у системској фиоци, не приказује главно сучеље." + +#: ../gtk/main.c:116 +msgid "address to call right now" +msgstr "адреса за позивање управо сада" + +#: ../gtk/main.c:123 +msgid "if set automatically answer incoming calls" +msgstr "ако је подешено сам ће се јављати на долазне позиве" + +#: ../gtk/main.c:130 +msgid "" +"Specifiy a working directory (should be the base of the installation, eg: c:" +"\\Program Files\\Linphone)" +msgstr "" +"Наводи радни директоријум (треба да буде основа инсталације, нпр: c:" +"\\Program Files\\Linphone)" + +#: ../gtk/main.c:510 +#, c-format +msgid "Call with %s" +msgstr "Позив са корисником %s" + +#: ../gtk/main.c:941 +#, c-format +msgid "" +"%s would like to add you to his contact list.\n" +"Would you allow him to see your presence status or add him to your contact " +"list ?\n" +"If you answer no, this person will be temporarily blacklisted." +msgstr "" +"%s жели да вас дода на списак пријатеља.\n" +"Да ли желите да му допустите да види ваше стање присуства или да га додате " +"на ваш списак пријатеља ?\n" +"Ако одговорите са не, ова особа ће привремено бити стављена на црни списак." + +#: ../gtk/main.c:1018 +#, c-format +msgid "" +"Please enter your password for username %s\n" +" at domain %s:" +msgstr "" +"Унесите вашу лозинку за корисничко име %s\n" +" на домену %s:" + +#: ../gtk/main.c:1121 +msgid "Call error" +msgstr "Грешка позива" + +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +msgid "Call ended" +msgstr "Позив је завршен" + +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +msgid "Incoming call" +msgstr "Долазни позив" + +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +msgid "Answer" +msgstr "Јави се" + +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +msgid "Decline" +msgstr "Одбиј" + +#: ../gtk/main.c:1137 +msgid "Call paused" +msgstr "Позив је заустављен" + +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Кодеци" + +#: ../gtk/main.c:1186 +#, c-format +msgid "%s proposed to start video. Do you accept ?" +msgstr "" + +#: ../gtk/main.c:1348 +msgid "Website link" +msgstr "Веза веб сајта" + +#: ../gtk/main.c:1388 +msgid "Linphone - a video internet phone" +msgstr "Линфон — интернет телефон са снимком" + +#: ../gtk/main.c:1480 +#, c-format +msgid "%s (Default)" +msgstr "%s (основно)" + +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#, c-format +msgid "We are transferred to %s" +msgstr "Преселили смо се на %s" + +#: ../gtk/main.c:1792 +msgid "" +"No sound cards have been detected on this computer.\n" +"You won't be able to send or receive audio calls." +msgstr "" +"Ниједна звучна картица није откривен ана овом рачунару.\n" +"Нећете бити у могућности да шаљете или да примате звучне позиве." + +#: ../gtk/main.c:1896 +msgid "A free SIP video-phone" +msgstr "Слободан СИП телефон са снимком" + +#: ../gtk/friendlist.c:366 +msgid "Add to addressbook" +msgstr "Додајте у адресар" + +#: ../gtk/friendlist.c:540 +msgid "Presence status" +msgstr "Стање присуства" + +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +msgid "Name" +msgstr "Име" + +#: ../gtk/friendlist.c:569 +msgid "Call" +msgstr "Позови" + +#: ../gtk/friendlist.c:574 +msgid "Chat" +msgstr "" + +#: ../gtk/friendlist.c:604 +#, c-format +msgid "Search in %s directory" +msgstr "Тражи у директоријуму „%s“" + +#: ../gtk/friendlist.c:762 +msgid "Invalid sip contact !" +msgstr "Неисправан сип контакт !" + +#: ../gtk/friendlist.c:807 +#, c-format +msgid "Call %s" +msgstr "Позови „%s“" + +#: ../gtk/friendlist.c:808 +#, c-format +msgid "Send text to %s" +msgstr "Пошаљи текст за %s" + +#: ../gtk/friendlist.c:809 +#, c-format +msgid "Edit contact '%s'" +msgstr "Уредите контакт „%s“" + +#: ../gtk/friendlist.c:810 +#, c-format +msgid "Delete contact '%s'" +msgstr "Обришите контакт „%s“" + +#: ../gtk/friendlist.c:852 +#, c-format +msgid "Add new contact from %s directory" +msgstr "Додајте нови контакт из директоријума „%s“" + +#: ../gtk/propertybox.c:373 +msgid "Rate (Hz)" +msgstr "Проток (Hz)" + +#: ../gtk/propertybox.c:379 +msgid "Status" +msgstr "Стање" + +#: ../gtk/propertybox.c:385 +msgid "Min bitrate (kbit/s)" +msgstr "Најмањи проток бита (kbit/s)" + +#: ../gtk/propertybox.c:392 +msgid "Parameters" +msgstr "Параметри" + +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +msgid "Enabled" +msgstr "Укључено" + +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +msgid "Disabled" +msgstr "Искључено" + +#: ../gtk/propertybox.c:624 +msgid "Account" +msgstr "Налог" + +#: ../gtk/propertybox.c:764 +msgid "English" +msgstr "Енглески" + +#: ../gtk/propertybox.c:765 +msgid "French" +msgstr "Француски" + +#: ../gtk/propertybox.c:766 +msgid "Swedish" +msgstr "Шведски" + +#: ../gtk/propertybox.c:767 +msgid "Italian" +msgstr "Италијански" + +#: ../gtk/propertybox.c:768 +msgid "Spanish" +msgstr "Шпански" + +#: ../gtk/propertybox.c:769 +msgid "Brazilian Portugese" +msgstr "Бразилски португалски" + +#: ../gtk/propertybox.c:770 +msgid "Polish" +msgstr "Пољски" + +#: ../gtk/propertybox.c:771 +msgid "German" +msgstr "Немачки" + +#: ../gtk/propertybox.c:772 +msgid "Russian" +msgstr "Руски" + +#: ../gtk/propertybox.c:773 +msgid "Japanese" +msgstr "Јапански" + +#: ../gtk/propertybox.c:774 +msgid "Dutch" +msgstr "Холандски" + +#: ../gtk/propertybox.c:775 +msgid "Hungarian" +msgstr "Мађарски" + +#: ../gtk/propertybox.c:776 +msgid "Czech" +msgstr "Чешки" + +#: ../gtk/propertybox.c:777 +msgid "Chinese" +msgstr "Кинески" + +#: ../gtk/propertybox.c:778 +msgid "Traditional Chinese" +msgstr "Традиционални кинески" + +#: ../gtk/propertybox.c:779 +msgid "Norwegian" +msgstr "Норвешки" + +#: ../gtk/propertybox.c:780 +msgid "Hebrew" +msgstr "" + +#: ../gtk/propertybox.c:847 +msgid "" +"You need to restart linphone for the new language selection to take effect." +msgstr "" +"Трба поново да покренете линфон да би нови изабрани језик ступио на снагу." + +#: ../gtk/propertybox.c:933 +msgid "None" +msgstr "Ништа" + +#: ../gtk/propertybox.c:937 +msgid "SRTP" +msgstr "СРТП" + +#: ../gtk/propertybox.c:943 +msgid "ZRTP" +msgstr "ЗРТП" + +#: ../gtk/update.c:80 +#, c-format +msgid "" +"A more recent version is availalble from %s.\n" +"Would you like to open a browser to download it ?" +msgstr "" +"Новије издање је доступно са „%s“.\n" +"Да ли желите да отворите прегледник да га преузмете ?" + +#: ../gtk/update.c:91 +msgid "You are running the lastest version." +msgstr "Радите на најновијем издању." + +#: ../gtk/buddylookup.c:85 +msgid "Firstname, Lastname" +msgstr "Име и презиме" + +#: ../gtk/buddylookup.c:160 +msgid "Error communicating with server." +msgstr "Грешка у коминикацији са сервером." + +#: ../gtk/buddylookup.c:164 +msgid "Connecting..." +msgstr "Повезујем се..." + +#: ../gtk/buddylookup.c:168 +msgid "Connected" +msgstr "Повезан сам" + +#: ../gtk/buddylookup.c:172 +msgid "Receiving data..." +msgstr "Примам податке..." + +#: ../gtk/buddylookup.c:180 +#, c-format +msgid "Found %i contact" +msgid_plural "Found %i contacts" +msgstr[0] "Нашао сам %i пријатеља" +msgstr[1] "Нашао сам %i пријатеља" +msgstr[2] "Нашао сам %i пријатеља" +msgstr[3] "Нашао сам једног пријатеља" + +#: ../gtk/setupwizard.c:34 +msgid "" +"Welcome !\n" +"This assistant will help you to use a SIP account for your calls." +msgstr "" +"Добродошли !\n" +"Овај помоћник ће вам помоћи да користите СИП налог за ваше позиве." + +#: ../gtk/setupwizard.c:43 +#, fuzzy +msgid "Create an account on linphone.org" +msgstr "Направите налог тако што ћете изабрати корисничко име" + +#: ../gtk/setupwizard.c:44 +#, fuzzy +msgid "I have already a linphone.org account and I just want to use it" +msgstr "Већ имам један налог и желим да га користим" + +#: ../gtk/setupwizard.c:45 +#, fuzzy +msgid "I have already a sip account and I just want to use it" +msgstr "Већ имам један налог и желим да га користим" + +#: ../gtk/setupwizard.c:85 +msgid "Enter your linphone.org username" +msgstr "" + +#: ../gtk/setupwizard.c:92 +msgid "Username:" +msgstr "Корисничко име:" + +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +msgid "Password:" +msgstr "Лозинка:" + +#: ../gtk/setupwizard.c:114 +msgid "Enter your account informations" +msgstr "" + +#: ../gtk/setupwizard.c:121 +#, fuzzy +msgid "Username*" +msgstr "Корисничко име" + +#: ../gtk/setupwizard.c:122 +#, fuzzy +msgid "Password*" +msgstr "Лозинка" + +#: ../gtk/setupwizard.c:125 +msgid "Domain*" +msgstr "" + +#: ../gtk/setupwizard.c:126 +msgid "Proxy" +msgstr "" + +#: ../gtk/setupwizard.c:298 +msgid "(*) Required fields" +msgstr "" + +#: ../gtk/setupwizard.c:299 +#, fuzzy +msgid "Username: (*)" +msgstr "Корисничко име:" + +#: ../gtk/setupwizard.c:301 +#, fuzzy +msgid "Password: (*)" +msgstr "Лозинка:" + +#: ../gtk/setupwizard.c:303 +msgid "Email: (*)" +msgstr "" + +#: ../gtk/setupwizard.c:305 +msgid "Confirm your password: (*)" +msgstr "" + +#: ../gtk/setupwizard.c:369 +msgid "" +"Error, account not validated, username already used or server unreachable.\n" +"Please go back and try again." +msgstr "" + +#: ../gtk/setupwizard.c:380 +msgid "Thank you. Your account is now configured and ready for use." +msgstr "Хвала вам. Ваш налог је сада подешен и спреман за употребу." + +#: ../gtk/setupwizard.c:388 +msgid "" +"Please validate your account by clicking on the link we just sent you by " +"email.\n" +"Then come back here and press Next button." +msgstr "" + +#: ../gtk/setupwizard.c:564 +msgid "Welcome to the account setup assistant" +msgstr "Добродошли у помоћника подешавања налога" + +#: ../gtk/setupwizard.c:569 +msgid "Account setup assistant" +msgstr "Помоћник подешавања налога" + +#: ../gtk/setupwizard.c:575 +#, fuzzy +msgid "Configure your account (step 1/1)" +msgstr "Подесите СИП налог" + +#: ../gtk/setupwizard.c:580 +msgid "Enter your sip username (step 1/1)" +msgstr "" + +#: ../gtk/setupwizard.c:584 +msgid "Enter account information (step 1/2)" +msgstr "" + +#: ../gtk/setupwizard.c:593 +msgid "Validation (step 2/2)" +msgstr "" + +#: ../gtk/setupwizard.c:598 +msgid "Error" +msgstr "" + +#: ../gtk/setupwizard.c:602 +msgid "Terminating" +msgstr "" + +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 +#, c-format +msgid "Call #%i" +msgstr "Позови #%i" + +#: ../gtk/incall_view.c:154 +#, c-format +msgid "Transfer to call #%i with %s" +msgstr "Пребаци позив #%i са %s" + +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 +#, fuzzy +msgid "Not used" +msgstr "Нисам нашао" + +#: ../gtk/incall_view.c:220 +msgid "ICE not activated" +msgstr "" + +#: ../gtk/incall_view.c:222 +#, fuzzy +msgid "ICE failed" +msgstr "Позив није успео." + +#: ../gtk/incall_view.c:224 +msgid "ICE in progress" +msgstr "" + +#: ../gtk/incall_view.c:226 +msgid "Going through one or more NATs" +msgstr "" + +#: ../gtk/incall_view.c:228 +#, fuzzy +msgid "Direct" +msgstr "Преусмерен" + +#: ../gtk/incall_view.c:230 +msgid "Through a relay server" +msgstr "" + +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "У току је тражење стуна..." + +#: ../gtk/incall_view.c:242 +#, fuzzy +msgid "uPnp not available" +msgstr "недоступно" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Позив није успео." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#, c-format +msgid "" +"download: %f\n" +"upload: %f (kbit/s)" +msgstr "" + +#: ../gtk/incall_view.c:286 +#, fuzzy, c-format +msgid "%.3f seconds" +msgstr "%i секунда" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +msgid "Hang up" +msgstr "" + +#: ../gtk/incall_view.c:477 +msgid "Calling..." +msgstr "Позивам..." + +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +msgid "00::00::00" +msgstr "00::00::00" + +#: ../gtk/incall_view.c:491 +msgid "Incoming call" +msgstr "Долазни позив" + +#: ../gtk/incall_view.c:528 +msgid "good" +msgstr "добро" + +#: ../gtk/incall_view.c:530 +msgid "average" +msgstr "просечно" + +#: ../gtk/incall_view.c:532 +msgid "poor" +msgstr "оскудно" + +#: ../gtk/incall_view.c:534 +msgid "very poor" +msgstr "јадно" + +#: ../gtk/incall_view.c:536 +msgid "too bad" +msgstr "много лоше" + +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +msgid "unavailable" +msgstr "недоступно" + +#: ../gtk/incall_view.c:652 +msgid "Secured by SRTP" +msgstr "Осигурано СРТП-ом" + +#: ../gtk/incall_view.c:658 +#, c-format +msgid "Secured by ZRTP - [auth token: %s]" +msgstr "Осигурано ЗРТП-ом [потврђивање идентитета: %s]" + +#: ../gtk/incall_view.c:664 +msgid "Set unverified" +msgstr "Непроверено подешавање" + +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +msgid "Set verified" +msgstr "Проверено подешавање" + +#: ../gtk/incall_view.c:685 +msgid "In conference" +msgstr "На конференцији" + +#: ../gtk/incall_view.c:685 +msgid "In call" +msgstr "У позиву" + +#: ../gtk/incall_view.c:719 +msgid "Paused call" +msgstr "Заустављен позив" + +#: ../gtk/incall_view.c:732 +#, c-format +msgid "%02i::%02i::%02i" +msgstr "%02i::%02i::%02i" + +#: ../gtk/incall_view.c:749 +msgid "Call ended." +msgstr "Позив је завршен." + +#: ../gtk/incall_view.c:779 +msgid "Transfer in progress" +msgstr "" + +#: ../gtk/incall_view.c:782 +#, fuzzy +msgid "Transfer done." +msgstr "Пребаци" + +#: ../gtk/incall_view.c:785 +#, fuzzy +msgid "Transfer failed." +msgstr "Пребаци" + +#: ../gtk/incall_view.c:829 +msgid "Resume" +msgstr "Настави" + +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +msgid "Pause" +msgstr "Застани" + +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "Застани" + +#: ../gtk/loginframe.c:93 +#, c-format +msgid "Please enter login information for %s" +msgstr "Унесите податке пријављивања за %s" + +#: ../gtk/main.ui.h:1 +msgid "Callee name" +msgstr "Име позивника" + +#: ../gtk/main.ui.h:2 +msgid "Send" +msgstr "Пошаљи" + +#: ../gtk/main.ui.h:3 +#, fuzzy +msgid "End conference" +msgstr "На конференцији" + +#: ../gtk/main.ui.h:4 +msgid "label" +msgstr "натпис" + +#: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 +msgid "Video" +msgstr "" + +#: ../gtk/main.ui.h:11 +msgid "Mute" +msgstr "" + +#: ../gtk/main.ui.h:12 +msgid "Transfer" +msgstr "Пребаци" + +#: ../gtk/main.ui.h:15 +msgid "In call" +msgstr "Долазни позив" + +#: ../gtk/main.ui.h:16 +msgid "Duration" +msgstr "Трајање" + +#: ../gtk/main.ui.h:17 +msgid "Call quality rating" +msgstr "Оцена квалитета позива" + +#: ../gtk/main.ui.h:18 +msgid "_Options" +msgstr "_Могућности" + +#: ../gtk/main.ui.h:19 +msgid "Always start video" +msgstr "" + +#: ../gtk/main.ui.h:20 +msgid "Enable self-view" +msgstr "Укључи самовиђење" + +#: ../gtk/main.ui.h:21 +msgid "_Help" +msgstr "По_моћ" + +#: ../gtk/main.ui.h:22 +msgid "Show debug window" +msgstr "Прикажи прозорче прочишћавања" + +#: ../gtk/main.ui.h:23 +msgid "_Homepage" +msgstr "_Матична страница" + +#: ../gtk/main.ui.h:24 +msgid "Check _Updates" +msgstr "Провери _ажурирања" + +#: ../gtk/main.ui.h:25 +#, fuzzy +msgid "Account assistant" +msgstr "Помоћник подешавања налога" + +#: ../gtk/main.ui.h:26 +msgid "SIP address or phone number:" +msgstr "СИП адреса или број телефона:" + +#: ../gtk/main.ui.h:27 +msgid "Initiate a new call" +msgstr "Започните нови позив" + +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "Пријатељи" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +msgid "Add" +msgstr "Додај" + +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +msgid "Edit" +msgstr "Уреди" + +#: ../gtk/main.ui.h:31 +msgid "Search" +msgstr "Тражи" + +#: ../gtk/main.ui.h:32 +msgid "Add contacts from directory" +msgstr "Додај пријатеље из директоријума" + +#: ../gtk/main.ui.h:33 +msgid "Add contact" +msgstr "Додај пријатеља" + +#: ../gtk/main.ui.h:34 +msgid "Recent calls" +msgstr "Скорашњи позиви" + +#: ../gtk/main.ui.h:35 +msgid "My current identity:" +msgstr "Мој тренутни идентитет:" + +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +msgid "Username" +msgstr "Корисничко име" + +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +msgid "Password" +msgstr "Лозинка" + +#: ../gtk/main.ui.h:38 +msgid "Internet connection:" +msgstr "Интернет веза:" + +#: ../gtk/main.ui.h:39 +msgid "Automatically log me in" +msgstr "Сам ме пријави" + +#: ../gtk/main.ui.h:40 +msgid "Login information" +msgstr "Подаци пријављивања" + +#: ../gtk/main.ui.h:41 +msgid "Welcome !" +msgstr "Добродошли !" + +#: ../gtk/main.ui.h:42 +msgid "All users" +msgstr "Сви корисници" + +#: ../gtk/main.ui.h:43 +msgid "Online users" +msgstr "Корисницима на мрежи" + +#: ../gtk/main.ui.h:44 +msgid "ADSL" +msgstr "АДСЛ" + +#: ../gtk/main.ui.h:45 +msgid "Fiber Channel" +msgstr "Оптички канал" + +#: ../gtk/main.ui.h:46 +msgid "Default" +msgstr "Основно" + +#: ../gtk/main.ui.h:47 +msgid "Delete" +msgstr "" + +#: ../gtk/about.ui.h:1 +msgid "About linphone" +msgstr "О линфону" + +#: ../gtk/about.ui.h:2 +msgid "(C) Belledonne Communications,2010\n" +msgstr "(C) Беледон комуникације,2010\n" + +#: ../gtk/about.ui.h:4 +msgid "An internet video phone using the standard SIP (rfc3261) protocol." +msgstr "" +"Интернет телефон са снимком који користи уобичајени СИП (rfc3261) протокол." + +#: ../gtk/about.ui.h:5 +msgid "" +"fr: Simon Morlat\n" +"en: Simon Morlat and Delphine Perreau\n" +"it: Alberto Zanoni \n" +"de: Jean-Jacques Sarton \n" +"sv: Daniel Nylander \n" +"es: Jesus Benitez \n" +"ja: YAMAGUCHI YOSHIYA \n" +"pt_BR: Rafael Caesar Lenzi \n" +"pl: Robert Nasiadek \n" +"cs: Petr Pisar \n" +"hu: anonymous\n" +msgstr "" +"fr: Simon Morlat\n" +"en: Simon Morlat and Delphine Perreau\n" +"it: Alberto Zanoni \n" +"de: Jean-Jacques Sarton \n" +"sv: Daniel Nylander \n" +"es: Jesus Benitez \n" +"ja: YAMAGUCHI YOSHIYA \n" +"pt_BR: Rafael Caesar Lenzi \n" +"pl: Robert Nasiadek \n" +"cs: Petr Pisar \n" +"hu: anonymous\n" + +#: ../gtk/contact.ui.h:2 +msgid "SIP Address" +msgstr "СИП адреса" + +#: ../gtk/contact.ui.h:3 +msgid "Show this contact presence status" +msgstr "Прикажи стање присуства овог пријатеља" + +#: ../gtk/contact.ui.h:4 +msgid "Allow this contact to see my presence status" +msgstr "Дозволи овом пријатељу да види стање мог присуства" + +#: ../gtk/contact.ui.h:5 +msgid "Contact information" +msgstr "Подаци о пријатељу" + +#: ../gtk/log.ui.h:1 +msgid "Linphone debug window" +msgstr "Линфоново прозорче прочишћавања" + +#: ../gtk/log.ui.h:2 +msgid "Scroll to end" +msgstr "" + +#: ../gtk/password.ui.h:1 +msgid "Linphone - Authentication required" +msgstr "Линфон — Потребно је потврђивање идентитета" + +#: ../gtk/password.ui.h:2 +msgid "Please enter the domain password" +msgstr "Унесите лозинку домена" + +#: ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "ИБ корисника" + +#: ../gtk/call_logs.ui.h:1 +msgid "Call history" +msgstr "Историјат позива" + +#: ../gtk/call_logs.ui.h:2 +msgid "Clear all" +msgstr "Очистите све" + +#: ../gtk/call_logs.ui.h:3 +msgid "Call back" +msgstr "Повратни позив" + +#: ../gtk/sip_account.ui.h:1 +msgid "Linphone - Configure a SIP account" +msgstr "Линфон — Подесите СИП налог" + +#: ../gtk/sip_account.ui.h:2 +msgid "Your SIP identity:" +msgstr "Ваш СИП идентитет:" + +#: ../gtk/sip_account.ui.h:3 +msgid "Looks like sip:@" +msgstr "Изгледа као „sip:<корисничко-име>@<домен>" + +#: ../gtk/sip_account.ui.h:4 +msgid "sip:" +msgstr "сип:" + +#: ../gtk/sip_account.ui.h:5 +msgid "SIP Proxy address:" +msgstr "Адреса СИП посредника:" + +#: ../gtk/sip_account.ui.h:6 +msgid "Looks like sip:" +msgstr "Изгледа као „sip:<назив посредника>" + +#: ../gtk/sip_account.ui.h:7 +msgid "Route (optional):" +msgstr "Рута (изборно):" + +#: ../gtk/sip_account.ui.h:8 +msgid "Registration duration (sec):" +msgstr "Трајање уписа (сек):" + +#: ../gtk/sip_account.ui.h:9 +msgid "Register" +msgstr "Упиши се" + +#: ../gtk/sip_account.ui.h:10 +msgid "Publish presence information" +msgstr "Објави податке о присуству" + +#: ../gtk/sip_account.ui.h:11 +msgid "Configure a SIP account" +msgstr "Подесите СИП налог" + +#: ../gtk/parameters.ui.h:1 +msgid "default soundcard" +msgstr "основна звучна картица" + +#: ../gtk/parameters.ui.h:2 +msgid "a sound card" +msgstr "звучна картица" + +#: ../gtk/parameters.ui.h:3 +msgid "default camera" +msgstr "основна камера" + +#: ../gtk/parameters.ui.h:4 +msgid "CIF" +msgstr "ЦИФ" + +#: ../gtk/parameters.ui.h:5 +msgid "Audio codecs" +msgstr "Звучни кодеци" + +#: ../gtk/parameters.ui.h:6 +msgid "Video codecs" +msgstr "Кодеци снимка" + +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "В" + +#: ../gtk/parameters.ui.h:8 +msgid "SIP (UDP)" +msgstr "СИП (УДП)" + +#: ../gtk/parameters.ui.h:9 +msgid "SIP (TCP)" +msgstr "СИП (ТЦП)" + +#: ../gtk/parameters.ui.h:10 +msgid "SIP (TLS)" +msgstr "СИП (ТЛС)" + +#: ../gtk/parameters.ui.h:11 +msgid "Settings" +msgstr "Подешавања" + +#: ../gtk/parameters.ui.h:12 +msgid "Set Maximum Transmission Unit:" +msgstr "Подеси јединицу највећег преноса:" + +#: ../gtk/parameters.ui.h:13 +msgid "Send DTMFs as SIP info" +msgstr "Пошаљи ДТМФ као СИП податке" + +#: ../gtk/parameters.ui.h:14 +msgid "Use IPv6 instead of IPv4" +msgstr "Користи ИПв6 уместо ИПв4" + +#: ../gtk/parameters.ui.h:15 +msgid "Transport" +msgstr "Пренос" + +#: ../gtk/parameters.ui.h:16 +msgid "Media encryption type" +msgstr "Врста шифровања медија" + +#: ../gtk/parameters.ui.h:17 +msgid "Video RTP/UDP:" +msgstr "РТП/УДП снимка:" + +#: ../gtk/parameters.ui.h:18 +msgid "Audio RTP/UDP:" +msgstr "РТП/УДП звука:" + +#: ../gtk/parameters.ui.h:19 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:20 +msgid "Fixed" +msgstr "" + +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:22 +#, fuzzy +msgid "Media encryption is mandatory" +msgstr "Врста шифровања медија" + +#: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "Мрежни протокол и прикључници" + +#: ../gtk/parameters.ui.h:24 +msgid "Direct connection to the Internet" +msgstr "Непосредна веза на Интернет" + +#: ../gtk/parameters.ui.h:25 +msgid "Behind NAT / Firewall (specify gateway IP below)" +msgstr "Иза НАТ-а / мрежне баријере (испод наведите ИП мрежног пролаза)" + +#: ../gtk/parameters.ui.h:26 +msgid "Public IP address:" +msgstr "Јавна ИП адреса:" + +#: ../gtk/parameters.ui.h:27 +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" + +#: ../gtk/parameters.ui.h:28 +#, fuzzy +msgid "Behind NAT / Firewall (use ICE)" +msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" + +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" + +#: ../gtk/parameters.ui.h:30 +msgid "Stun server:" +msgstr "Стун сервер:" + +#: ../gtk/parameters.ui.h:31 +msgid "NAT and Firewall" +msgstr "НАТ и мрежна баријера" + +#: ../gtk/parameters.ui.h:32 +msgid "Network settings" +msgstr "Подешавања мреже" + +#: ../gtk/parameters.ui.h:33 +msgid "Ring sound:" +msgstr "Звук звона:" + +#: ../gtk/parameters.ui.h:34 +msgid "ALSA special device (optional):" +msgstr "АЛСА-ин посебни уређај (изборно):" + +#: ../gtk/parameters.ui.h:35 +msgid "Capture device:" +msgstr "Уређај за снимање:" + +#: ../gtk/parameters.ui.h:36 +msgid "Ring device:" +msgstr "Уређај за звоно:" + +#: ../gtk/parameters.ui.h:37 +msgid "Playback device:" +msgstr "Уређај за пуштање:" + +#: ../gtk/parameters.ui.h:38 +msgid "Enable echo cancellation" +msgstr "Укључи поништавање одјека" + +#: ../gtk/parameters.ui.h:39 +msgid "Audio" +msgstr "Звук" + +#: ../gtk/parameters.ui.h:40 +msgid "Video input device:" +msgstr "Улазни уређај снимка:" + +#: ../gtk/parameters.ui.h:41 +msgid "Prefered video resolution:" +msgstr "Жељена резолуција снимка:" + +#: ../gtk/parameters.ui.h:42 +msgid "Video" +msgstr "Снимак" + +#: ../gtk/parameters.ui.h:43 +msgid "Multimedia settings" +msgstr "Подешавања мултимедија" + +#: ../gtk/parameters.ui.h:44 +msgid "This section defines your SIP address when not using a SIP account" +msgstr "Овај одељак одређује вашу СИП адресу када не користите СИП налог" + +#: ../gtk/parameters.ui.h:45 +msgid "Your display name (eg: John Doe):" +msgstr "Ваше приказано име (нпр: Пера Перић):" + +#: ../gtk/parameters.ui.h:46 +msgid "Your username:" +msgstr "Ваше корисничко име:" + +#: ../gtk/parameters.ui.h:47 +msgid "Your resulting SIP address:" +msgstr "Ваша резултирајућа СИП адреса:" + +#: ../gtk/parameters.ui.h:48 +msgid "Default identity" +msgstr "Основни идентитет" + +#: ../gtk/parameters.ui.h:49 +msgid "Wizard" +msgstr "" + +#: ../gtk/parameters.ui.h:52 +msgid "Remove" +msgstr "Уклони" + +#: ../gtk/parameters.ui.h:53 +msgid "Proxy accounts" +msgstr "Посреднички налози" + +#: ../gtk/parameters.ui.h:54 +msgid "Erase all passwords" +msgstr "Обриши све лозинке" + +#: ../gtk/parameters.ui.h:55 +msgid "Privacy" +msgstr "Приватност" + +#: ../gtk/parameters.ui.h:56 +msgid "Manage SIP Accounts" +msgstr "Управљај СИП налозима" + +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +msgid "Enable" +msgstr "Укључи" + +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +msgid "Disable" +msgstr "Искључи" + +#: ../gtk/parameters.ui.h:59 +msgid "Codecs" +msgstr "Кодеци" + +#: ../gtk/parameters.ui.h:60 +msgid "0 stands for \"unlimited\"" +msgstr "0 значи „неограничено“" + +#: ../gtk/parameters.ui.h:61 +msgid "Upload speed limit in Kbit/sec:" +msgstr "Ограничење брзине слања у Kb/s:" + +#: ../gtk/parameters.ui.h:62 +msgid "Download speed limit in Kbit/sec:" +msgstr "Ограничење брзине преузимања у Kb/s:" + +#: ../gtk/parameters.ui.h:63 +msgid "Enable adaptive rate control" +msgstr "Укључи прилагодљиво управљање протоком" + +#: ../gtk/parameters.ui.h:64 +msgid "" +"Adaptive rate control is a technique to dynamically guess the available " +"bandwidth during a call." +msgstr "" +"Прилагодљиво управљање протоком је техника за променљиво погађање " +"доступног пропусног опсега за време позива." + +#: ../gtk/parameters.ui.h:65 +msgid "Bandwidth control" +msgstr "Управљање пропусним опсегом" + +#: ../gtk/parameters.ui.h:66 +msgid "Codecs" +msgstr "Kодеци" + +#: ../gtk/parameters.ui.h:67 +msgid "Language" +msgstr "Језик" + +#: ../gtk/parameters.ui.h:68 +msgid "Show advanced settings" +msgstr "Прикажи напредна подешавања" + +#: ../gtk/parameters.ui.h:69 +msgid "Level" +msgstr "Ниво" + +#: ../gtk/parameters.ui.h:70 +msgid "User interface" +msgstr "Корисничко сучеље" + +#: ../gtk/parameters.ui.h:71 +msgid "Done" +msgstr "Готово" + +#: ../gtk/buddylookup.ui.h:1 +msgid "Search contacts in directory" +msgstr "Потражите пријатеље у директоријуму" + +#: ../gtk/buddylookup.ui.h:2 +msgid "Add to my list" +msgstr "Додај на мој списак" + +#: ../gtk/buddylookup.ui.h:3 +msgid "Search somebody" +msgstr "Потражите неког" + +#: ../gtk/waiting.ui.h:1 +msgid "Linphone" +msgstr "Линфон" + +#: ../gtk/waiting.ui.h:2 +msgid "Please wait" +msgstr "Молим сачекајте" + +#: ../gtk/dscp_settings.ui.h:1 +#, fuzzy +msgid "Dscp settings" +msgstr "Подешавања" + +#: ../gtk/dscp_settings.ui.h:2 +msgid "SIP" +msgstr "" + +#: ../gtk/dscp_settings.ui.h:3 +#, fuzzy +msgid "Audio RTP stream" +msgstr "РТП/УДП звука:" + +#: ../gtk/dscp_settings.ui.h:4 +#, fuzzy +msgid "Video RTP stream" +msgstr "РТП/УДП снимка:" + +#: ../gtk/dscp_settings.ui.h:5 +msgid "Set DSCP values (in hexadecimal)" +msgstr "" + +#: ../gtk/call_statistics.ui.h:1 +msgid "Call statistics" +msgstr "" + +#: ../gtk/call_statistics.ui.h:2 +#, fuzzy +msgid "Audio codec" +msgstr "Звучни кодеци" + +#: ../gtk/call_statistics.ui.h:3 +#, fuzzy +msgid "Video codec" +msgstr "Кодеци снимка" + +#: ../gtk/call_statistics.ui.h:4 +msgid "Audio IP bandwidth usage" +msgstr "" + +#: ../gtk/call_statistics.ui.h:5 +msgid "Audio Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:6 +msgid "Video IP bandwidth usage" +msgstr "" + +#: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 +#, fuzzy +msgid "Call statistics and information" +msgstr "Подаци о пријатељу" + +#: ../gtk/tunnel_config.ui.h:1 +#, fuzzy +msgid "Configure VoIP tunnel" +msgstr "Подесите СИП налог" + +#: ../gtk/tunnel_config.ui.h:2 +msgid "Host" +msgstr "" + +#: ../gtk/tunnel_config.ui.h:3 +msgid "Port" +msgstr "" + +#: ../gtk/tunnel_config.ui.h:6 +msgid "Configure tunnel" +msgstr "" + +#: ../gtk/tunnel_config.ui.h:9 +msgid "Configure http proxy (optional)" +msgstr "" + +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "Г" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "Б" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "А" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 +msgid "aborted" +msgstr "прекинути" + +#: ../coreapi/linphonecore.c:230 +msgid "completed" +msgstr "завршени" + +#: ../coreapi/linphonecore.c:233 +msgid "missed" +msgstr "пропуштени" + +#: ../coreapi/linphonecore.c:238 +#, c-format +msgid "" +"%s at %s\n" +"From: %s\n" +"To: %s\n" +"Status: %s\n" +"Duration: %i mn %i sec\n" +msgstr "" +"%s у %s\n" +"Позива: %s\n" +"Прима: %s\n" +"Стање: %s\n" +"Трајање: %i мин %i сек\n" + +#: ../coreapi/linphonecore.c:239 +msgid "Outgoing call" +msgstr "Одлазни позив" + +#: ../coreapi/linphonecore.c:1314 +msgid "Ready" +msgstr "Спреман" + +#: ../coreapi/linphonecore.c:2184 +msgid "Looking for telephone number destination..." +msgstr "Тражим одредиште телефонског броја..." + +#: ../coreapi/linphonecore.c:2187 +msgid "Could not resolve this number." +msgstr "Не могу да решим овај број." + +#: ../coreapi/linphonecore.c:2231 +msgid "" +"Could not parse given sip address. A sip url usually looks like sip:" +"user@domain" +msgstr "" +"Не могу да обрадим дату сип адресу. Сип адреса обично изгледа као „sip:" +"корисник@домен“" + +#: ../coreapi/linphonecore.c:2432 +msgid "Contacting" +msgstr "Ступам у везу" + +#: ../coreapi/linphonecore.c:2439 +msgid "Could not call" +msgstr "Не могу да позовем" + +#: ../coreapi/linphonecore.c:2549 +msgid "Sorry, we have reached the maximum number of simultaneous calls" +msgstr "Извините, достигли смо највећи број истовремених позива" + +#: ../coreapi/linphonecore.c:2731 +msgid "is contacting you" +msgstr "вам се обраћа" + +#: ../coreapi/linphonecore.c:2732 +msgid " and asked autoanswer." +msgstr " и затражени само-одговор." + +#: ../coreapi/linphonecore.c:2732 +msgid "." +msgstr "." + +#: ../coreapi/linphonecore.c:2799 +msgid "Modifying call parameters..." +msgstr "Мењам параметре позива..." + +#: ../coreapi/linphonecore.c:3138 +msgid "Connected." +msgstr "Повезан сам." + +#: ../coreapi/linphonecore.c:3166 +msgid "Call aborted" +msgstr "Позив је прекинут" + +#: ../coreapi/linphonecore.c:3351 +msgid "Could not pause the call" +msgstr "Не могу да зауставим позив" + +#: ../coreapi/linphonecore.c:3356 +msgid "Pausing the current call..." +msgstr "Заустављам тренутни позив..." + +#: ../coreapi/misc.c:148 +msgid "" +"Your computer appears to be using ALSA sound drivers.\n" +"This is the best choice. However the pcm oss emulation module\n" +"is missing and linphone needs it. Please execute\n" +"'modprobe snd-pcm-oss' as root to load it." +msgstr "" +"Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" +"То је најбољи избор. Међутим недостаје пцм осс модул\n" +"за емулацију а потребан је линфону. Молим извршите\n" +"„modprobe snd-pcm-oss“ као администратор да га учитате." + +#: ../coreapi/misc.c:151 +msgid "" +"Your computer appears to be using ALSA sound drivers.\n" +"This is the best choice. However the mixer oss emulation module\n" +"is missing and linphone needs it. Please execute\n" +" 'modprobe snd-mixer-oss' as root to load it." +msgstr "" +"Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" +"То је најбољи избор. Међутим недостаје миксер осс модул\n" +"за емулацију а потребан је линфону. Молим извршите\n" +"„modprobe snd-mixer-oss“ као администратор да га учитате." + +#: ../coreapi/misc.c:496 +msgid "Stun lookup in progress..." +msgstr "У току је тражење стуна..." + +#: ../coreapi/misc.c:630 +msgid "ICE local candidates gathering in progress..." +msgstr "" + +#: ../coreapi/friend.c:33 +msgid "Online" +msgstr "На вези" + +#: ../coreapi/friend.c:36 +msgid "Busy" +msgstr "Заузет" + +#: ../coreapi/friend.c:39 +msgid "Be right back" +msgstr "Одмах се враћам" + +#: ../coreapi/friend.c:42 +msgid "Away" +msgstr "Одсутан" + +#: ../coreapi/friend.c:45 +msgid "On the phone" +msgstr "На телефону" + +#: ../coreapi/friend.c:48 +msgid "Out to lunch" +msgstr "На ручку сам" + +#: ../coreapi/friend.c:51 +msgid "Do not disturb" +msgstr "Не узнемиравај" + +#: ../coreapi/friend.c:54 +msgid "Moved" +msgstr "Премештен" + +#: ../coreapi/friend.c:57 +msgid "Using another messaging service" +msgstr "Користим другу услугу дописивања" + +#: ../coreapi/friend.c:60 +msgid "Offline" +msgstr "Неповезан" + +#: ../coreapi/friend.c:63 +msgid "Pending" +msgstr "На чекању" + +#: ../coreapi/friend.c:66 +msgid "Unknown-bug" +msgstr "Непозната грешка" + +#: ../coreapi/proxy.c:204 +msgid "" +"The sip proxy address you entered is invalid, it must start with \"sip:\" " +"followed by a hostname." +msgstr "" +"Адреса сип посредника коју сте унели је неисправна, мора почети на „sip:“ за " +"којим следи назив домаћина." + +#: ../coreapi/proxy.c:210 +msgid "" +"The sip identity you entered is invalid.\n" +"It should look like sip:username@proxydomain, such as sip:alice@example.net" +msgstr "" +"Сип идентитет који сте унели није исправан.\n" +"Треба да изгледа као „sip:корисник@домен-посредника, као што је „sip:" +"alice@example.net“" + +#: ../coreapi/proxy.c:1068 +#, c-format +msgid "Could not login as %s" +msgstr "Не могу да се пријавим као %s" + +#: ../coreapi/callbacks.c:283 +msgid "Remote ringing." +msgstr "Удаљено звоњење." + +#: ../coreapi/callbacks.c:303 +msgid "Remote ringing..." +msgstr "Удаљено звоњење..." + +#: ../coreapi/callbacks.c:314 +msgid "Early media." +msgstr "Ранији медиј." + +#: ../coreapi/callbacks.c:365 +#, c-format +msgid "Call with %s is paused." +msgstr "Позив са „%s“ је заустављен." + +#: ../coreapi/callbacks.c:378 +#, c-format +msgid "Call answered by %s - on hold." +msgstr "Позив на који је одговорио „%s“ — на чекању." + +#: ../coreapi/callbacks.c:389 +msgid "Call resumed." +msgstr "Позив је настављен." + +#: ../coreapi/callbacks.c:394 +#, c-format +msgid "Call answered by %s." +msgstr "На позив је одговорио „%s“." + +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." +msgstr "" + +#: ../coreapi/callbacks.c:457 +#, fuzzy +msgid "We have been resumed." +msgstr "Позив нам је настављен..." + +#: ../coreapi/callbacks.c:466 +msgid "We are paused by other party." +msgstr "" + +#: ../coreapi/callbacks.c:472 +#, fuzzy +msgid "Call is updated by remote." +msgstr "Позив је ажуриран удаљеним..." + +#: ../coreapi/callbacks.c:541 +msgid "Call terminated." +msgstr "Позив је завршен." + +#: ../coreapi/callbacks.c:552 +msgid "User is busy." +msgstr "Корисник је заузет." + +#: ../coreapi/callbacks.c:553 +msgid "User is temporarily unavailable." +msgstr "Корисник је привремено недоступан." + +#. char *retrymsg=_("%s. Retry after %i minute(s)."); +#: ../coreapi/callbacks.c:555 +msgid "User does not want to be disturbed." +msgstr "Корисник не жели да буде узнемираван." + +#: ../coreapi/callbacks.c:556 +msgid "Call declined." +msgstr "Позив је одбијен." + +#: ../coreapi/callbacks.c:568 +msgid "No response." +msgstr "Нема одговора." + +#: ../coreapi/callbacks.c:572 +msgid "Protocol error." +msgstr "Грешка у протоколу." + +#: ../coreapi/callbacks.c:588 +msgid "Redirected" +msgstr "Преусмерен" + +#: ../coreapi/callbacks.c:624 +msgid "Incompatible media parameters." +msgstr "" + +#: ../coreapi/callbacks.c:630 +msgid "Call failed." +msgstr "Позив није успео." + +#: ../coreapi/callbacks.c:733 +#, c-format +msgid "Registration on %s successful." +msgstr "Уписивање на „%s“ је успело." + +#: ../coreapi/callbacks.c:734 +#, c-format +msgid "Unregistration on %s done." +msgstr "Исписивање са „%s“ је обављено." + +#: ../coreapi/callbacks.c:754 +msgid "no response timeout" +msgstr "нема ограничења одговора" + +#: ../coreapi/callbacks.c:757 +#, c-format +msgid "Registration on %s failed: %s" +msgstr "Уписивање на „%s“ није успело: %s" + +#: ../coreapi/linphonecall.c:129 +#, c-format +msgid "Authentication token is %s" +msgstr "Симбол потврђивања идентитета је „%s“" + +#: ../coreapi/linphonecall.c:2314 +#, c-format +msgid "You have missed %i call." +msgid_plural "You have missed %i calls." +msgstr[0] "Пропустили сте %i позив." +msgstr[1] "Пропустили сте %i позива." +msgstr[2] "Пропустили сте %i позива." +msgstr[3] "Пропустили сте један позив." + +#~ msgid "Chat with %s" +#~ msgstr "Ћаскајте са „%s“" + +#~ msgid "by %s" +#~ msgstr "од %s" + +#~ msgid "Please choose a username:" +#~ msgstr "Изаберите корисничко име:" + +#~ msgid "Checking if '%s' is available..." +#~ msgstr "Проверавам да ли је „%s“ доступно..." + +#~ msgid "Please wait..." +#~ msgstr "Молим сачекајте..." + +#~ msgid "Sorry this username already exists. Please try a new one." +#~ msgstr "Извините ово корисничко име већ постоји. Покушајте неко друго." + +#~ msgid "Ok !" +#~ msgstr "У реду !" + +#~ msgid "Communication problem, please try again later." +#~ msgstr "Проблем у комуникацији, касније покушајте опет." + +#~ msgid "Choosing a username" +#~ msgstr "Бирам корисничко име" + +#~ msgid "Verifying" +#~ msgstr "Проверавам" + +#~ msgid "Confirmation" +#~ msgstr "Потврђујем" + +#~ msgid "Creating your account" +#~ msgstr "Правим ваш налог" + +#~ msgid "Now ready !" +#~ msgstr "Спремни смо сада !" + +#~ msgid "Enable video" +#~ msgstr "Укључи снимак" + +#~ msgid "Enter username, phone number, or full sip address" +#~ msgstr "Унесите корисничко име, број телефона, или пуну сип адресу" + +#~ msgid "Keypad" +#~ msgstr "Тастатура" + +#~ msgid "Lookup:" +#~ msgstr "Потражи:" + +#~ msgid "in" +#~ msgstr "у" + +#~ msgid "" +#~ "Register to FONICS\n" +#~ "virtual network !" +#~ msgstr "" +#~ "Упишите се на виртуелну\n" +#~ "мрежу ФОНИКС !" + +#~ msgid "We are being paused..." +#~ msgstr "Заустављени смо..." + +#~ msgid "No common codecs" +#~ msgstr "Нема познатих кодека" + +#~ msgid "Authentication failure" +#~ msgstr "Потврђивање идентитета није успело" diff --git a/po/sv.po b/po/sv.po index fed2d6550..0b2882efc 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2009-02-17 15:22+0100\n" "Last-Translator: Emmanuel Frécon \n" "Language-Team: SWEDISH \n" @@ -17,57 +17,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "avbrytade" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "missade" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "Avböj" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 #, fuzzy msgid "Me" msgstr "Mikrofon av" @@ -77,31 +77,31 @@ msgstr "Mikrofon av" msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta pixmap filen: %s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "skriv loggning information under körning" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "Starta ikonifierat, visa inte huvudfönstret" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "Samtalsmottagare" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "Om på, besvara automatisk alla inkommande samtal" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -109,12 +109,12 @@ msgstr "" "Välj en arbetskatalog som ska vara basen för installationen, såsom C:" "\\Program\\Linphone" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "Samtal med %s" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -127,7 +127,7 @@ msgstr "" "henne till din kontaktlista?\n" "Om du svarar nej, personen kommer att vara bannlyst." -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -136,235 +136,235 @@ msgstr "" "Mata in ditt lösenord för användaren %s\n" "vid domänen %s:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "Samtalshistorik" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Samtalet slut" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "Avböj" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "avbrytade" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "Portar" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "Webbsajt" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "Närvarostatus" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Namn" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "Ringer %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "Sök i %s katalogen" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "ogiltig SIP kontakt!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "Ringer %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "Skicka text till %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "Ändra kontakt '%s'" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "Ta bort kontakt '%s'" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "Lägg till kontakt ifrån %s katalogen" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "Frekvens (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "Min. datahastighet (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "Parametrar" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "På" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Av" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "Engelska" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "Fransk" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "Svenska" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "Italiensk" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "Spanska" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "Portugisiska" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "Polska" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "Tyska" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "Ryska" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "Japanska" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "Nederländksa" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "Hungerska" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "Tjekiska" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "Kinesiska" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du behöver starta om programmet för att det nya språket ska synas." -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -408,7 +408,7 @@ msgid_plural "Found %i contacts" msgstr[0] "Hittat kontakt %i" msgstr[1] "Hittat kontakt %i" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -416,277 +416,319 @@ msgstr "" "Välkommen!\n" "Assistenten kommer att hjälpa dig använda ett SIP konto för dina samtal:" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "Skapa ett konto genom att välja ett användarnamn" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "Jag har redan ett konto och vill bara använda det." -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "Jag har redan ett konto och vill bara använda det." -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "Användarnamn:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Lösenord:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "Användarnamn" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "Lösenord" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "Användarnamn:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "Lösenord:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "Tack. Ditt konto är nu konfigurerad och färdig att användas." -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "Välkommen till kontoinstallationsassistenten" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "Kontoinstallationsassistenten" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Konfigurera ett SIP konto" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 #, fuzzy msgid "Terminating" msgstr "Lägg på" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "Ringer %s" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" msgstr "" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "Samtalet avböjdes." -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "Omdirigerat till %s..." -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "STUN uppslagning pågår..." + +#: ../gtk/incall_view.c:242 +msgid "uPnp not available" +msgstr "" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "Samtalet avböjdes." + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "I samtal med" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "Lägg på" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "Samtalet slut." -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "Samtalet avböjdes." -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -710,223 +752,164 @@ msgid "label" msgstr "etikett" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "I samtal" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "Förlopp" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Själv bild" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone debug fönster" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "_Homepage" msgstr "Hemsidan" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Check _Updates" msgstr "Letar efter uppdateringar" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Kontoinstallationsassistenten" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Användarnamn" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +#, fuzzy +msgid "Contacts" +msgstr "Kontaktar" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Lägg till" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editera" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "Sök" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "Lägg till kontakt ifrån katalogen" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "Hittat kontakt %i" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "I samtal" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "Min nuvarande identitet" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Användarnamn" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Lösenord" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "Internet förbindelse:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "Logga mig automatiskt" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "Login information" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "Välkommen!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "" "Alla användare\n" "Online användare" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "Fiber" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 #, fuzzy msgid "Default" msgstr "%s (Default)" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1082,6 +1065,10 @@ msgstr "" "Audio codecs\n" "Video codecs" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "" + #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" msgstr "" @@ -1119,210 +1106,219 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "" + +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "Direkt förbindelse till Internet" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "Bakom en NAT / brandvägg (specificera gatewap IP adress nedan)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "Publik IP adress:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "STUN server:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT och Brandvägg" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "Nätverksinställningar" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "Ring signal:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "ALSA speciell enhet (tillval):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "Mikrofon enhet:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "Ringning enhet:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "Uppspelningsenhet:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "Tillåta ekokancellering" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "Video ingångsenhet:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "Video upplösning:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "Multimedia inställningar" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "Denna sektion specificerar din SIP adress när du inte använder ett SIP konto" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "Ditt synliga namn, e.g. Kalle Karlsson:" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "Ditt användarnamn:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "Din SIP adress:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "Default identitet" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Ta bort" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "Proxy konton" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "Glöm alla lösenord" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "Integritet" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "Hantera SIP konton" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Möjliggör" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Inaktivera" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 står för \"utan begränsning\"" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "Max upstream bandbreddshastighet i kbit/sek:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "Max downstream bandbreddshastighet i kbit/sek:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "Bandbreddskontroll" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "Språk" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "Visa avancerade inställningar" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "Nivå" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "Användarinterface" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "Klar" @@ -1391,7 +1387,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1399,6 +1395,14 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "Kontakt information" @@ -1424,19 +1428,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "avslutade" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "missade" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1451,23 +1515,23 @@ msgstr "" "Status: %s\n" "Längd: %i min %i sek\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Utgående samtal" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "Redo" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Leta efter telefonnummer för destinationen..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Kan inte nå dett nummer." -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1475,51 +1539,51 @@ msgstr "" "Kan inte förstå angiven SIP adress. En SIP adress vanligen ser ut som sip:" "användare@domänen" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "Kontaktar" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 #, fuzzy msgid "is contacting you" msgstr "kontaktar dig." -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Kopplad" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 #, fuzzy msgid "Could not pause the call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 #, fuzzy msgid "Pausing the current call..." msgstr "Nuvarande samtal" @@ -1620,119 +1684,119 @@ msgstr "" "SIP adressen som du matade in är inte rätt. Adressen borde se ut som sip:" "namn@domän, såsom sip:peter@exempel.se" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "Kunde inte logga in som %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Tidig media" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Samtal med %s" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "Samtalet slut" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "Samtalet slut." -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "Användare upptagen." -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "Användaren temporärt inte tillgänglig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "Användaren vill inte bli störd." -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 #, fuzzy msgid "No response." msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 #, fuzzy msgid "Redirected" msgstr "Omdirigerat till %s..." -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 #, fuzzy msgid "Call failed." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lyckades." -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lyckades." -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislyckades: %s" @@ -1742,7 +1806,7 @@ msgstr "Registrering hos %s mislyckades: %s" msgid "Authentication token is %s" msgstr "Linphone - Autentisering krävs" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1785,10 +1849,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Now ready !" #~ msgstr "Klar nu!" -#, fuzzy -#~ msgid "Contacts" -#~ msgstr "Kontaktar" - #, fuzzy #~ msgid "Enable video" #~ msgstr "På" @@ -1847,9 +1907,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "gtk-close" #~ msgstr "Kopplad" -#~ msgid "Ports" -#~ msgstr "Portar" - #~ msgid "Alsa sound source" #~ msgstr "Alsa ljud ingång" diff --git a/po/zh_CN.po b/po/zh_CN.po index 85fa75c47..f03c496d8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2011-01-08 23:51+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" @@ -19,55 +19,55 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "中断" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "丢失" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "拒绝" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 #, fuzzy msgid "Me" msgstr "静音" @@ -77,42 +77,42 @@ msgstr "静音" msgid "Couldn't find pixmap file: %s" msgstr "无法打开位图文件:%s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "运行时向标准输出记录调试信息。" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "启动到系统托盘,不显示主界面。" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "现在呼叫的地址" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "是否设置呼叫自动应答" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "指定工作目录(应为安装目录例如 C:\\Program Files\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "与 %s 通话" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -124,68 +124,68 @@ msgstr "" "您是否允许他看到您的在线状态或者将它加为您的联系人允许?\n" "如果您回答否,则会将该人临时性的放入黑名单" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "请输入 %s@%s 的密码:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "呼叫历史" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "呼叫结束" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "呼入" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "拒绝" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "中断" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "端口" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "网站" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - 互联网视频电话" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (默认)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -193,175 +193,175 @@ msgstr "" "未在此计算机上检测到声卡。\n" "您无法发送或接收音频呼叫。" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "免费的 SIP 视频电话" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "在线状态" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名称" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "呼叫 %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "在 %s 目录中查找 " -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "无效的 SIP 联系人!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "呼叫 %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "发送消息给 %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "编辑联系人 %s" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "删除联系人 %s" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "从 %s 目录增加联系人 " -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "采样率(Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "状态" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "最小比特率(kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "参数" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "启用" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "禁用" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "帐户" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "英语" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "法语" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "瑞典语" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "意大利语" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "西班牙语" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "巴西葡萄牙语" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "波兰语" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "德语" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "俄语" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "日语" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "荷兰语" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "匈牙利语" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "捷克语" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "中文" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重启 linphone 以使语言选择生效。" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -404,7 +404,7 @@ msgid "Found %i contact" msgid_plural "Found %i contacts" msgstr[0] "找到 %i 联系方式" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -412,278 +412,320 @@ msgstr "" "欢迎使用 Linphone!\n" "设置向导将帮助您配置打网络电话的 SIP 帐户。" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "通过选择一个用户名创建一个新的帐户" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "我已经有一个帐户,并想使用原来的帐户" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "我已经有一个帐户,并想使用原来的帐户" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "用户名:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "密码:" -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "用户名" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "密码" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "用户名:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "密码:" -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "谢谢,您的帐户已经配置完毕,可以使用。" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "欢迎使用帐户设置向导" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "帐户设置向导" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "配置 SIP 帐户" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 #, fuzzy msgid "Terminating" msgstr "终止呼叫" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "呼叫 %s" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "未找到" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "ICE 过滤器" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "已重定向" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "正在进行 Stun 查找..." + +#: ../gtk/incall_view.c:242 +msgid "uPnp not available" +msgstr "" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "ICE 过滤器" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "正在呼叫..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 #, fuzzy msgid "Incoming call" msgstr "呼入" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 #, fuzzy msgid "In call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 #, fuzzy msgid "Paused call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "通话结束。" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "呼叫失败。" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +msgid "(Paused)" +msgstr "" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -707,222 +749,162 @@ msgid "label" msgstr "标签" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "呼入" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "通话时间" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "启用自视" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone 调试窗口" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "_Homepage" msgstr "主页" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Check _Updates" msgstr "检查更新" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "帐户设置向导" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP 地址或电话号码:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "联系人" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "添加" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "编辑" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "搜索" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "从目录增加联系人" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Add contact" msgstr "找到 %i 联系方式" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "数字键盘" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "呼入" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "当前地址:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "用户名" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密码" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "网络连接:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "自动登录" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "登录信息" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "欢迎!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 #, fuzzy msgid "Online users" msgstr "" "全部用户\n" "在线用户" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "光纤" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "默认" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1090,6 +1072,10 @@ msgstr "" "音频编解码器\n" "视频编解码器" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 #, fuzzy msgid "SIP (UDP)" @@ -1130,209 +1116,218 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "视频 RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "音频 RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "" + +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "直接连接到互联网" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "在 NAT 或防火墙后(填写网关 IP)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "公网 IP 地址:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "在 NAT 或防火墙后(使用 STUN 解决)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "在 NAT 或防火墙后(使用 STUN 解决)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "在 NAT 或防火墙后(使用 STUN 解决)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "Stun 服务器:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT 及防火墙" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "网络设置" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "铃声文件:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "ALSA 特殊设备(可选):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "录音设备:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "响铃设备:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "回放设备:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "启用回声抑制" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "音频" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "视频输入设备:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "视频分辨率:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "视频" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "音视频设置" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "该段在您不使用SIP帐户时的SIP地址" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "您的显示名:" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "您的用户名:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "您的 SIP 地址结果:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "默认帐户" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "移除" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "代理帐户" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "清除所有密码" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "隐私" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "SIP 帐户管理" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "启用" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "禁用" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "编解码器" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 表示 “没有限制”" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "上传速率限制 kbit/s:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "下载速率限制 kbit/s:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "带宽控制" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "编解码器" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "语言" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "显示高级设置" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "级别" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "用户界面" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "完成" @@ -1403,7 +1398,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1411,6 +1406,14 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "联系人信息" @@ -1436,19 +1439,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "完成" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "丢失" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1463,23 +1526,23 @@ msgstr "" "状态:%s\n" "状态:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "呼出" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "就绪" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "查询电话号码目的地..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "该号码无法解析。" -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1487,50 +1550,50 @@ msgstr "" "无法解析给定的 SIP 地址,SIP 地址应有如下格式:\n" "sip:用户名@域名" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "联系中" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 #, fuzzy msgid "Could not call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "正在联系您" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " 并询问了自动回答。" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "已连接。" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 #, fuzzy msgid "Call aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 #, fuzzy msgid "Could not pause the call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "" @@ -1626,116 +1689,116 @@ msgstr "" "您输入的地址无效。\n" "它应具有“sip:用户名@代理域”的形式,例如 sip:alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "无法登录为 %s" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "响铃。" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 #, fuzzy msgid "Remote ringing..." msgstr "响铃。" -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "与 %s 通话" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 #, fuzzy msgid "Call resumed." msgstr "呼叫结束" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "通话结束。" -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "被叫正忙。" -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "您呼叫的用户暂时无法接通。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "用户已开启免打扰功能。" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "呼叫被拒绝。" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "没有响应。" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "协议错误。" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "已重定向" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "呼叫失败。" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "成功注册到 %s" -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "已在 %s 解除注册。" -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "没有响应,超时" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "注册到 %s 失败: %s" @@ -1745,12 +1808,15 @@ msgstr "注册到 %s 失败: %s" msgid "Authentication token is %s" msgstr "Linphone - 需要认证" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您错过了 %i 个呼叫。" +#~ msgid "Keypad" +#~ msgstr "数字键盘" + #~ msgid "Chat with %s" #~ msgstr "与 %s 通话" @@ -1787,9 +1853,6 @@ msgstr[0] "您错过了 %i 个呼叫。" #~ msgid "Now ready !" #~ msgstr "就绪!" -#~ msgid "Contacts" -#~ msgstr "联系人" - #, fuzzy #~ msgid "Enable video" #~ msgstr "启用" @@ -1843,9 +1906,6 @@ msgstr[0] "您错过了 %i 个呼叫。" #~ msgid "Register at startup" #~ msgstr "在启动时注册" -#~ msgid "Ports" -#~ msgstr "端口" - #~ msgid "ITU-G.711 alaw encoder" #~ msgstr "ITU-G.711 alaw 编码器" diff --git a/po/zh_TW.po b/po/zh_TW.po index dbc09613d..c65dcb84f 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-08 10:35+0100\n" +"POT-Creation-Date: 2013-03-07 12:30+0100\n" "PO-Revision-Date: 2011-04-06 21:24+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: \n" @@ -18,55 +18,55 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #: ../gtk/calllogs.c:82 +msgid "n/a" +msgstr "" + +#: ../gtk/calllogs.c:85 #, fuzzy msgid "Aborted" msgstr "已放棄" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:88 #, fuzzy msgid "Missed" msgstr "未接" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:91 #, fuzzy msgid "Declined" msgstr "拒接" -#: ../gtk/calllogs.c:94 +#: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:103 #, c-format msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" -#: ../gtk/calllogs.c:102 -msgid "n/a" -msgstr "" - -#: ../gtk/calllogs.c:105 +#: ../gtk/calllogs.c:108 #, c-format msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" -#: ../gtk/conference.c:33 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" msgstr "" -#: ../gtk/conference.c:41 +#: ../gtk/conference.c:46 #, fuzzy msgid "Me" msgstr "靜音" @@ -76,43 +76,43 @@ msgstr "靜音" msgid "Couldn't find pixmap file: %s" msgstr "找不到 pixmap 檔:%s" -#: ../gtk/main.c:89 +#: ../gtk/main.c:88 msgid "log to stdout some debug information while running." msgstr "執行時將一些除錯資訊記錄到標準輸出。" -#: ../gtk/main.c:96 +#: ../gtk/main.c:95 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:103 +#: ../gtk/main.c:102 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:110 +#: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." msgstr "只在系統匣啟動,不要顯示主要介面。" -#: ../gtk/main.c:117 +#: ../gtk/main.c:116 msgid "address to call right now" msgstr "現在要打電話的位址" -#: ../gtk/main.c:124 +#: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" msgstr "如啟用此項,將會自動接聽來電" -#: ../gtk/main.c:131 +#: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" "指定一個工作目錄(應該為安裝的根目錄,例如:c:\\Program Files\\Linphone)" -#: ../gtk/main.c:498 +#: ../gtk/main.c:510 #, c-format msgid "Call with %s" msgstr "和 %s 通話" -#: ../gtk/main.c:871 +#: ../gtk/main.c:941 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -124,7 +124,7 @@ msgstr "" "您是否要允許他看見您的上線狀態或將他加入您的連絡人清單?\n" "如果您回答否,這個人會被暫時列入黑名單。" -#: ../gtk/main.c:948 +#: ../gtk/main.c:1018 #, c-format msgid "" "Please enter your password for username %s\n" @@ -133,61 +133,61 @@ msgstr "" "請輸入您使用者名稱 %s\n" "於網域 %s 的密碼:" -#: ../gtk/main.c:1051 +#: ../gtk/main.c:1121 #, fuzzy msgid "Call error" msgstr "通話紀錄" -#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949 +#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "通話已結束" -#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244 +#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "來電" -#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" msgstr "接聽" -#: ../gtk/main.c:1061 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 msgid "Decline" msgstr "拒接" -#: ../gtk/main.c:1067 +#: ../gtk/main.c:1137 #, fuzzy msgid "Call paused" msgstr "通話已放棄" -#: ../gtk/main.c:1067 -#, c-format -msgid "by %s" -msgstr "" +#: ../gtk/main.c:1137 +#, fuzzy, c-format +msgid "by %s" +msgstr "連接埠" -#: ../gtk/main.c:1116 +#: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1278 +#: ../gtk/main.c:1348 msgid "Website link" msgstr "網站連結" -#: ../gtk/main.c:1318 +#: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" msgstr "Linphone - 網路視訊電話" -#: ../gtk/main.c:1410 +#: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" msgstr "%s (預設值)" -#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774 +#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" msgstr "我們被轉接到 %s" -#: ../gtk/main.c:1724 +#: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -195,175 +195,175 @@ msgstr "" "在這臺電腦中偵測不到音效卡。\n" "您將無法傳送或接收語音電話。" -#: ../gtk/main.c:1833 +#: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "自由的 SIP 視訊電話" -#: ../gtk/friendlist.c:335 +#: ../gtk/friendlist.c:366 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:509 +#: ../gtk/friendlist.c:540 msgid "Presence status" msgstr "上線狀態" -#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名稱" -#: ../gtk/friendlist.c:538 +#: ../gtk/friendlist.c:569 #, fuzzy msgid "Call" msgstr "播打給 %s" -#: ../gtk/friendlist.c:543 +#: ../gtk/friendlist.c:574 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:573 +#: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" msgstr "在 %s 目錄中搜尋" -#: ../gtk/friendlist.c:730 +#: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" msgstr "無效的 sip 連絡人!" -#: ../gtk/friendlist.c:775 +#: ../gtk/friendlist.c:807 #, c-format msgid "Call %s" msgstr "播打給 %s" -#: ../gtk/friendlist.c:776 +#: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" msgstr "傳送文字給 %s" -#: ../gtk/friendlist.c:777 +#: ../gtk/friendlist.c:809 #, c-format msgid "Edit contact '%s'" msgstr "編輯連絡人「%s」" -#: ../gtk/friendlist.c:778 +#: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" msgstr "刪除連絡人「%s」" -#: ../gtk/friendlist.c:820 +#: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" msgstr "從 %s 目錄加入新的連絡人" -#: ../gtk/propertybox.c:368 +#: ../gtk/propertybox.c:373 msgid "Rate (Hz)" msgstr "頻率 (Hz)" -#: ../gtk/propertybox.c:374 +#: ../gtk/propertybox.c:379 msgid "Status" msgstr "狀態" -#: ../gtk/propertybox.c:380 +#: ../gtk/propertybox.c:385 msgid "Min bitrate (kbit/s)" msgstr "最小頻寬 (kbit/s)" -#: ../gtk/propertybox.c:387 +#: ../gtk/propertybox.c:392 msgid "Parameters" msgstr "參數" -#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "已啟用" -#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "已停用" -#: ../gtk/propertybox.c:619 +#: ../gtk/propertybox.c:624 msgid "Account" msgstr "帳號" -#: ../gtk/propertybox.c:759 +#: ../gtk/propertybox.c:764 msgid "English" msgstr "英語" -#: ../gtk/propertybox.c:760 +#: ../gtk/propertybox.c:765 msgid "French" msgstr "法語" -#: ../gtk/propertybox.c:761 +#: ../gtk/propertybox.c:766 msgid "Swedish" msgstr "瑞典語" -#: ../gtk/propertybox.c:762 +#: ../gtk/propertybox.c:767 msgid "Italian" msgstr "義大利語" -#: ../gtk/propertybox.c:763 +#: ../gtk/propertybox.c:768 msgid "Spanish" msgstr "西班牙語" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" msgstr "巴西葡萄牙語" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:770 msgid "Polish" msgstr "波蘭語" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:771 msgid "German" msgstr "德語" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:772 msgid "Russian" msgstr "俄語" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:773 msgid "Japanese" msgstr "日語" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:774 msgid "Dutch" msgstr "荷蘭語" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:775 msgid "Hungarian" msgstr "匈牙利語" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:776 msgid "Czech" msgstr "捷克語" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:777 msgid "Chinese" msgstr "中文" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:778 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:779 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:780 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:842 +#: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重新啟動 linphone 才能讓新選擇的語言生效。" -#: ../gtk/propertybox.c:912 +#: ../gtk/propertybox.c:933 msgid "None" msgstr "" -#: ../gtk/propertybox.c:916 +#: ../gtk/propertybox.c:937 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:922 +#: ../gtk/propertybox.c:943 msgid "ZRTP" msgstr "" @@ -406,7 +406,7 @@ msgid "Found %i contact" msgid_plural "Found %i contacts" msgstr[0] "找不到 %i 個連絡人" -#: ../gtk/setupwizard.c:33 +#: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." @@ -414,275 +414,318 @@ msgstr "" "歡迎!\n" "這個助理會協助您使用電話的 SIP 帳號。" -#: ../gtk/setupwizard.c:42 +#: ../gtk/setupwizard.c:43 #, fuzzy msgid "Create an account on linphone.org" msgstr "以選擇的使用者名稱建立一個帳號" -#: ../gtk/setupwizard.c:43 +#: ../gtk/setupwizard.c:44 #, fuzzy msgid "I have already a linphone.org account and I just want to use it" msgstr "我已經有帳號,並且要使用這個帳號" -#: ../gtk/setupwizard.c:44 +#: ../gtk/setupwizard.c:45 #, fuzzy msgid "I have already a sip account and I just want to use it" msgstr "我已經有帳號,並且要使用這個帳號" -#: ../gtk/setupwizard.c:84 +#: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:91 +#: ../gtk/setupwizard.c:92 msgid "Username:" msgstr "使用者名稱:" -#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "密碼: " -#: ../gtk/setupwizard.c:113 +#: ../gtk/setupwizard.c:114 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:120 +#: ../gtk/setupwizard.c:121 #, fuzzy msgid "Username*" msgstr "使用者名稱" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:122 #, fuzzy msgid "Password*" msgstr "密碼" -#: ../gtk/setupwizard.c:124 +#: ../gtk/setupwizard.c:125 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:126 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:297 +#: ../gtk/setupwizard.c:298 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:299 #, fuzzy msgid "Username: (*)" msgstr "使用者名稱:" -#: ../gtk/setupwizard.c:300 +#: ../gtk/setupwizard.c:301 #, fuzzy msgid "Password: (*)" msgstr "密碼: " -#: ../gtk/setupwizard.c:302 +#: ../gtk/setupwizard.c:303 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:304 +#: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:368 +#: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:379 +#: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "謝謝您。您的帳號已設定完成並且可以使用。" -#: ../gtk/setupwizard.c:387 +#: ../gtk/setupwizard.c:388 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:554 +#: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" msgstr "歡迎使用帳號設定助理" -#: ../gtk/setupwizard.c:559 +#: ../gtk/setupwizard.c:569 msgid "Account setup assistant" msgstr "帳號設定助理" -#: ../gtk/setupwizard.c:565 +#: ../gtk/setupwizard.c:575 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "設定 SIP 帳號" -#: ../gtk/setupwizard.c:570 +#: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:574 +#: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:583 +#: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:588 +#: ../gtk/setupwizard.c:598 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:592 +#: ../gtk/setupwizard.c:602 msgid "Terminating" msgstr "" -#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, fuzzy, c-format msgid "Call #%i" msgstr "播打給 %s" -#: ../gtk/incall_view.c:150 +#: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" msgstr "" -#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "找不到" -#: ../gtk/incall_view.c:219 +#: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "" -#: ../gtk/incall_view.c:221 +#: ../gtk/incall_view.c:222 #, fuzzy msgid "ICE failed" msgstr "ICE 過濾器" -#: ../gtk/incall_view.c:223 +#: ../gtk/incall_view.c:224 msgid "ICE in progress" msgstr "" -#: ../gtk/incall_view.c:225 +#: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" msgstr "" -#: ../gtk/incall_view.c:227 +#: ../gtk/incall_view.c:228 #, fuzzy msgid "Direct" msgstr "已重新導向" -#: ../gtk/incall_view.c:229 +#: ../gtk/incall_view.c:230 msgid "Through a relay server" msgstr "" -#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242 +#: ../gtk/incall_view.c:238 +msgid "uPnP not activated" +msgstr "" + +#: ../gtk/incall_view.c:240 +#, fuzzy +msgid "uPnP in progress" +msgstr "正在進行 Stun 搜尋..." + +#: ../gtk/incall_view.c:242 +msgid "uPnp not available" +msgstr "" + +#: ../gtk/incall_view.c:244 +msgid "uPnP is running" +msgstr "" + +#: ../gtk/incall_view.c:246 +#, fuzzy +msgid "uPnP failed" +msgstr "ICE 過濾器" + +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +msgid "Direct or through server" +msgstr "" + +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:286 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:430 +#: ../gtk/incall_view.c:477 msgid "Calling..." msgstr "播打..." -#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646 +#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:444 +#: ../gtk/incall_view.c:491 msgid "Incoming call" msgstr "來電" -#: ../gtk/incall_view.c:481 +#: ../gtk/incall_view.c:528 msgid "good" msgstr "" -#: ../gtk/incall_view.c:483 +#: ../gtk/incall_view.c:530 msgid "average" msgstr "" -#: ../gtk/incall_view.c:485 +#: ../gtk/incall_view.c:532 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:487 +#: ../gtk/incall_view.c:534 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:489 +#: ../gtk/incall_view.c:536 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506 +#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:605 +#: ../gtk/incall_view.c:652 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:611 +#: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:617 +#: ../gtk/incall_view.c:664 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:641 +#: ../gtk/incall_view.c:685 msgid "In call" msgstr "通話中" -#: ../gtk/incall_view.c:669 +#: ../gtk/incall_view.c:719 msgid "Paused call" msgstr "暫停通話" -#: ../gtk/incall_view.c:682 +#: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:699 +#: ../gtk/incall_view.c:749 msgid "Call ended." msgstr "通話結束。" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:779 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:734 +#: ../gtk/incall_view.c:782 #, fuzzy msgid "Transfer done." msgstr "轉接" -#: ../gtk/incall_view.c:737 +#: ../gtk/incall_view.c:785 #, fuzzy msgid "Transfer failed." msgstr "轉接" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:829 msgid "Resume" msgstr "繼續" -#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" msgstr "暫停" +#: ../gtk/incall_view.c:901 +#, c-format +msgid "" +"Recording into\n" +"%s %s" +msgstr "" + +#: ../gtk/incall_view.c:901 +#, fuzzy +msgid "(Paused)" +msgstr "暫停" + #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" @@ -706,212 +749,152 @@ msgid "label" msgstr "標籤" #: ../gtk/main.ui.h:8 +msgid "Record this call to an audio file" +msgstr "" + +#: ../gtk/main.ui.h:9 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:10 +#: ../gtk/main.ui.h:11 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:12 msgid "Transfer" msgstr "轉接" -#: ../gtk/main.ui.h:14 +#: ../gtk/main.ui.h:15 msgid "In call" msgstr "通話中" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:16 msgid "Duration" msgstr "時間長度" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:17 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:18 msgid "_Options" msgstr "選項(_O)" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "啟用自拍檢視" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "求助(_H)" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "顯示除錯視窗" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "官方網頁(_H)" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "檢查更新(_U)" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "帳號設定助理" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP 位址或電話號碼:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "打出新電話" -#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48 +#: ../gtk/main.ui.h:28 +msgid "Contacts" +msgstr "連絡人" + +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "加入" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49 +#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "編輯" -#: ../gtk/main.ui.h:29 -msgid "D" -msgstr "D" - -#: ../gtk/main.ui.h:30 -msgid "#" -msgstr "#" - #: ../gtk/main.ui.h:31 -msgid "0" -msgstr "0" - -#: ../gtk/main.ui.h:32 -msgid "*" -msgstr "*" - -#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7 -msgid "C" -msgstr "C" - -#: ../gtk/main.ui.h:34 -msgid "9" -msgstr "9" - -#: ../gtk/main.ui.h:35 -msgid "8" -msgstr "8" - -#: ../gtk/main.ui.h:36 -msgid "7" -msgstr "7" - -#: ../gtk/main.ui.h:37 -msgid "B" -msgstr "B" - -#: ../gtk/main.ui.h:38 -msgid "6" -msgstr "6" - -#: ../gtk/main.ui.h:39 -msgid "5" -msgstr "5" - -#: ../gtk/main.ui.h:40 -msgid "4" -msgstr "4" - -#: ../gtk/main.ui.h:41 -msgid "A" -msgstr "A" - -#: ../gtk/main.ui.h:42 -msgid "3" -msgstr "3" - -#: ../gtk/main.ui.h:43 -msgid "2" -msgstr "2" - -#: ../gtk/main.ui.h:44 -msgid "1" -msgstr "1" - -#: ../gtk/main.ui.h:45 msgid "Search" msgstr "搜尋" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:32 msgid "Add contacts from directory" msgstr "從目錄加入連絡人" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:33 msgid "Add contact" msgstr "加入聯絡人" -#: ../gtk/main.ui.h:48 -msgid "Keypad" -msgstr "撥號盤" - -#: ../gtk/main.ui.h:49 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "Recent calls" msgstr "通話中" -#: ../gtk/main.ui.h:50 +#: ../gtk/main.ui.h:35 msgid "My current identity:" msgstr "我目前的使用者識別:" -#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "使用者名稱" -#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密碼" -#: ../gtk/main.ui.h:53 +#: ../gtk/main.ui.h:38 msgid "Internet connection:" msgstr "網路連線:" -#: ../gtk/main.ui.h:54 +#: ../gtk/main.ui.h:39 msgid "Automatically log me in" msgstr "將我自動登入" -#: ../gtk/main.ui.h:55 +#: ../gtk/main.ui.h:40 msgid "Login information" msgstr "登入資訊" -#: ../gtk/main.ui.h:56 +#: ../gtk/main.ui.h:41 msgid "Welcome !" msgstr "歡迎使用!" -#: ../gtk/main.ui.h:57 +#: ../gtk/main.ui.h:42 msgid "All users" msgstr "所有使用者" -#: ../gtk/main.ui.h:58 +#: ../gtk/main.ui.h:43 msgid "Online users" msgstr "線上使用者" -#: ../gtk/main.ui.h:59 +#: ../gtk/main.ui.h:44 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:60 +#: ../gtk/main.ui.h:45 msgid "Fiber Channel" msgstr "光纖通道" -#: ../gtk/main.ui.h:61 +#: ../gtk/main.ui.h:46 msgid "Default" msgstr "預設值" -#: ../gtk/main.ui.h:62 +#: ../gtk/main.ui.h:47 msgid "Delete" msgstr "" @@ -1069,6 +1052,10 @@ msgstr "音訊編碼解碼器" msgid "Video codecs" msgstr "視訊編碼解碼器" +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +msgid "C" +msgstr "C" + #: ../gtk/parameters.ui.h:8 #, fuzzy msgid "SIP (UDP)" @@ -1109,209 +1096,218 @@ msgid "Media encryption type" msgstr "" #: ../gtk/parameters.ui.h:17 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:18 msgid "Video RTP/UDP:" msgstr "視訊 RTP/UDP:" -#: ../gtk/parameters.ui.h:19 +#: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" msgstr "音效 RTP/UDP:" -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:19 msgid "DSCP fields" msgstr "" -#: ../gtk/parameters.ui.h:21 +#: ../gtk/parameters.ui.h:20 msgid "Fixed" msgstr "" +#: ../gtk/parameters.ui.h:21 +msgid "Tunnel" +msgstr "" + #: ../gtk/parameters.ui.h:22 -msgid "Network protocol and ports" +msgid "Media encryption is mandatory" msgstr "" #: ../gtk/parameters.ui.h:23 +msgid "Network protocol and ports" +msgstr "" + +#: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" msgstr "直接連線到網際網路" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" msgstr "在 NAT / 防火牆之後 (在下面指定閘道器 IP)" -#: ../gtk/parameters.ui.h:25 +#: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "公共 IP 地址:" -#: ../gtk/parameters.ui.h:26 +#: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:28 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:29 +#, fuzzy +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" + +#: ../gtk/parameters.ui.h:30 msgid "Stun server:" msgstr "Stun 伺服器:" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:31 msgid "NAT and Firewall" msgstr "NAT 與防火牆" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:32 msgid "Network settings" msgstr "網路設定值" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:33 msgid "Ring sound:" msgstr "鈴聲音效:" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" msgstr "ALSA 特殊裝置 (選擇性):" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:35 msgid "Capture device:" msgstr "捕捉裝置:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:36 msgid "Ring device:" msgstr "響鈴裝置:" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:37 msgid "Playback device:" msgstr "播放裝置" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" msgstr "啟用回音消除" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:39 msgid "Audio" msgstr "音效" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:40 msgid "Video input device:" msgstr "視訊輸入裝置:" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" msgstr "偏好的視訊解析度:" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:42 msgid "Video" msgstr "視訊" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" msgstr "多媒體設定值" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "這一區在不使用 SIP 帳號時定義您的 SIP 位址" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" msgstr "您的顯示名稱 (例如: John Doe):" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:46 msgid "Your username:" msgstr "您的使用者名稱:" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" msgstr "您組成的 SIP 位址:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:48 msgid "Default identity" msgstr "預設身分識別" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:49 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:50 +#: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "移除" -#: ../gtk/parameters.ui.h:51 +#: ../gtk/parameters.ui.h:53 msgid "Proxy accounts" msgstr "代理伺服器帳號" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" msgstr "消除所有的密碼" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:55 msgid "Privacy" msgstr "隱私" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" msgstr "管理 SIP 帳號" -#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "啟用" -#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "停用" -#: ../gtk/parameters.ui.h:57 +#: ../gtk/parameters.ui.h:59 msgid "Codecs" msgstr "編碼解碼器" -#: ../gtk/parameters.ui.h:58 +#: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" msgstr "0 表示「不限制」" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "上傳速度限制於 Kbit/sec:" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" msgstr "下載速度限制於 Kbit/sec:" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" msgstr "頻寬控制" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:66 msgid "Codecs" msgstr "編碼解碼器" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:67 msgid "Language" msgstr "語言" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" msgstr "顯示進階設定值" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:69 msgid "Level" msgstr "級數" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:70 msgid "User interface" msgstr "使用者介面" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:71 msgid "Done" msgstr "完成" @@ -1377,7 +1373,7 @@ msgid "Audio IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:5 -msgid "Media connectivity" +msgid "Audio Media connectivity" msgstr "" #: ../gtk/call_statistics.ui.h:6 @@ -1385,6 +1381,14 @@ msgid "Video IP bandwidth usage" msgstr "" #: ../gtk/call_statistics.ui.h:7 +msgid "Video Media connectivity" +msgstr "" + +#: ../gtk/call_statistics.ui.h:8 +msgid "Round trip time" +msgstr "" + +#: ../gtk/call_statistics.ui.h:9 #, fuzzy msgid "Call statistics and information" msgstr "連絡人資訊" @@ -1410,19 +1414,79 @@ msgstr "" msgid "Configure http proxy (optional)" msgstr "" -#: ../coreapi/linphonecore.c:232 +#: ../gtk/keypad.ui.h:1 +msgid "D" +msgstr "D" + +#: ../gtk/keypad.ui.h:2 +msgid "#" +msgstr "#" + +#: ../gtk/keypad.ui.h:3 +msgid "0" +msgstr "0" + +#: ../gtk/keypad.ui.h:4 +msgid "*" +msgstr "*" + +#: ../gtk/keypad.ui.h:6 +msgid "9" +msgstr "9" + +#: ../gtk/keypad.ui.h:7 +msgid "8" +msgstr "8" + +#: ../gtk/keypad.ui.h:8 +msgid "7" +msgstr "7" + +#: ../gtk/keypad.ui.h:9 +msgid "B" +msgstr "B" + +#: ../gtk/keypad.ui.h:10 +msgid "6" +msgstr "6" + +#: ../gtk/keypad.ui.h:11 +msgid "5" +msgstr "5" + +#: ../gtk/keypad.ui.h:12 +msgid "4" +msgstr "4" + +#: ../gtk/keypad.ui.h:13 +msgid "A" +msgstr "A" + +#: ../gtk/keypad.ui.h:14 +msgid "3" +msgstr "3" + +#: ../gtk/keypad.ui.h:15 +msgid "2" +msgstr "2" + +#: ../gtk/keypad.ui.h:16 +msgid "1" +msgstr "1" + +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "已放棄" -#: ../coreapi/linphonecore.c:235 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "已完成" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "未接" -#: ../coreapi/linphonecore.c:243 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1437,69 +1501,69 @@ msgstr "" "狀態:%s\n" "持續時間:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:244 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "去電" -#: ../coreapi/linphonecore.c:1226 +#: ../coreapi/linphonecore.c:1314 msgid "Ready" msgstr "準備就緒" -#: ../coreapi/linphonecore.c:2074 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "尋找電話號碼目的端..." -#: ../coreapi/linphonecore.c:2077 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "無法解析這個號碼。" -#: ../coreapi/linphonecore.c:2121 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "無法解析指定的 sip 位址。sip 網址通常看起來像 sip:user@domain" -#: ../coreapi/linphonecore.c:2312 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" msgstr "正在連絡" -#: ../coreapi/linphonecore.c:2319 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "無法通話" -#: ../coreapi/linphonecore.c:2429 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "抱歉,我們已達瀏同步通話的最大數目" -#: ../coreapi/linphonecore.c:2573 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "正在連絡您" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr "並要求自動接聽。" -#: ../coreapi/linphonecore.c:2574 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2636 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "修改通話參數..." -#: ../coreapi/linphonecore.c:2908 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "已連線。" -#: ../coreapi/linphonecore.c:2931 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "通話已放棄" -#: ../coreapi/linphonecore.c:3102 +#: ../coreapi/linphonecore.c:3351 msgid "Could not pause the call" msgstr "無法暫停通話" -#: ../coreapi/linphonecore.c:3107 +#: ../coreapi/linphonecore.c:3356 msgid "Pausing the current call..." msgstr "暫停目前的通話..." @@ -1598,115 +1662,115 @@ msgstr "" "您輸入的 sip 身分是無效的。\n" "它應該看起來像 sip:使用者名稱@代理網域,像是 sip:alice@example.net" -#: ../coreapi/proxy.c:1053 +#: ../coreapi/proxy.c:1068 #, c-format msgid "Could not login as %s" msgstr "無法以 %s 登入" -#: ../coreapi/callbacks.c:276 +#: ../coreapi/callbacks.c:283 msgid "Remote ringing." msgstr "遠端響鈴。" -#: ../coreapi/callbacks.c:296 +#: ../coreapi/callbacks.c:303 msgid "Remote ringing..." msgstr "遠端響鈴..." -#: ../coreapi/callbacks.c:307 +#: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "早期媒體。" -#: ../coreapi/callbacks.c:352 +#: ../coreapi/callbacks.c:365 #, c-format msgid "Call with %s is paused." msgstr "和 %s 的通話已暫停。" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." msgstr "通話由 %s 接聽 - 保留中。" -#: ../coreapi/callbacks.c:376 +#: ../coreapi/callbacks.c:389 msgid "Call resumed." msgstr "通話已繼續。" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:394 #, c-format msgid "Call answered by %s." msgstr "通話由 %s 接聽。" -#: ../coreapi/callbacks.c:396 -msgid "Incompatible, check codecs..." +#: ../coreapi/callbacks.c:409 +msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:437 +#: ../coreapi/callbacks.c:457 #, fuzzy msgid "We have been resumed." msgstr "我們要繼續了..." -#: ../coreapi/callbacks.c:446 +#: ../coreapi/callbacks.c:466 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:452 +#: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:521 +#: ../coreapi/callbacks.c:541 msgid "Call terminated." msgstr "通話已終止。" -#: ../coreapi/callbacks.c:528 +#: ../coreapi/callbacks.c:552 msgid "User is busy." msgstr "使用者現正忙碌。" -#: ../coreapi/callbacks.c:529 +#: ../coreapi/callbacks.c:553 msgid "User is temporarily unavailable." msgstr "使用者暫時無法聯繫。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:531 +#: ../coreapi/callbacks.c:555 msgid "User does not want to be disturbed." msgstr "使用者不想要被打擾。" -#: ../coreapi/callbacks.c:532 +#: ../coreapi/callbacks.c:556 msgid "Call declined." msgstr "通話被拒接。" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:568 msgid "No response." msgstr "沒有回應。" -#: ../coreapi/callbacks.c:548 +#: ../coreapi/callbacks.c:572 msgid "Protocol error." msgstr "通訊協定錯誤。" -#: ../coreapi/callbacks.c:564 +#: ../coreapi/callbacks.c:588 msgid "Redirected" msgstr "已重新導向" -#: ../coreapi/callbacks.c:600 +#: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:606 +#: ../coreapi/callbacks.c:630 msgid "Call failed." msgstr "通話失敗。" -#: ../coreapi/callbacks.c:701 +#: ../coreapi/callbacks.c:733 #, c-format msgid "Registration on %s successful." msgstr "在 %s 註冊成功。" -#: ../coreapi/callbacks.c:702 +#: ../coreapi/callbacks.c:734 #, c-format msgid "Unregistration on %s done." msgstr "在 %s 取消註冊完成。" -#: ../coreapi/callbacks.c:722 +#: ../coreapi/callbacks.c:754 msgid "no response timeout" msgstr "沒有回應逾時" -#: ../coreapi/callbacks.c:725 +#: ../coreapi/callbacks.c:757 #, c-format msgid "Registration on %s failed: %s" msgstr "在 %s 註冊失敗:%s" @@ -1716,12 +1780,15 @@ msgstr "在 %s 註冊失敗:%s" msgid "Authentication token is %s" msgstr "驗證失敗" -#: ../coreapi/linphonecall.c:2124 +#: ../coreapi/linphonecall.c:2314 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您有 %i 通未接來電。" +#~ msgid "Keypad" +#~ msgstr "撥號盤" + #~ msgid "Chat with %s" #~ msgstr "和 %s 聊天" @@ -1758,9 +1825,6 @@ msgstr[0] "您有 %i 通未接來電。" #~ msgid "Now ready !" #~ msgstr "現在已就緒!" -#~ msgid "Contacts" -#~ msgstr "連絡人" - #, fuzzy #~ msgid "Enable video" #~ msgstr "已啟用" @@ -1833,9 +1897,6 @@ msgstr[0] "您有 %i 通未接來電。" #~ msgid "gtk-close" #~ msgstr "gtk-close" -#~ msgid "Ports" -#~ msgstr "連接埠" - #~ msgid "Sorry, you have to pause or stop the current call first !" #~ msgstr "抱歉,您必須先暫停或停止目前的通話!" From a03872ff7f692add9483de4c2f8599a712add033 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 7 Mar 2013 12:42:05 +0100 Subject: [PATCH 013/177] update README.macos --- README.macos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.macos b/README.macos index 3fb5106a3..29666f440 100644 --- a/README.macos +++ b/README.macos @@ -44,7 +44,7 @@ You need: $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz $ tar -xvzf glib-networking-2.34.2.tar.xz $ cd glib-networking-2.34.2 - $ ./configure --prefix=/opt/local && make + $ ./configure --prefix=/opt/local --without-ca-certificates && make $ sudo make install - Compile and install the tunnel library (optional, proprietary extension only) From fdf35251fe9c3b39e61b3d75ff902389bd767a6e Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 7 Mar 2013 16:08:04 +0100 Subject: [PATCH 014/177] history chat delete update README for macos --- README.macos | 3 + coreapi/chat.c | 2 +- coreapi/linphonecore.h | 1 + coreapi/message_storage.c | 368 +++++++++++++++++++------------------- gtk/chat.c | 6 +- gtk/friendlist.c | 26 +++ gtk/propertybox.c | 1 + 7 files changed, 224 insertions(+), 183 deletions(-) diff --git a/README.macos b/README.macos index 29666f440..bb78575bf 100644 --- a/README.macos +++ b/README.macos @@ -39,6 +39,9 @@ You need: - Install additional librairies required for wizard (linphone.org account creation assistant) $ sudo port install libsoup + - Install sqlite3 for message storage + $ sudo port install sqlite3 + ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle ** As a temporary workaround, build a newer version by yourself: $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz diff --git a/coreapi/chat.c b/coreapi/chat.c index 5f79849dc..046c34733 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -182,10 +182,10 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag linphone_chat_message_set_external_body_url(msg, sal_msg->url); } linphone_address_destroy(addr); - linphone_chat_room_message_received(cr,lc,msg); linphone_core_set_history_message(cr,to,from,INCOMING, msg->message,my_ctime_r(&msg->time,buf),NOT_READ, LinphoneChatMessageStateDelivered); + linphone_chat_room_message_received(cr,lc,msg); ms_free(cleanfrom); ms_free(from); } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index c1054922d..49074db3e 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1420,6 +1420,7 @@ int linphone_core_get_video_dscp(const LinphoneCore *lc); MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message); void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read); +void linphone_core_delete_history(LinphoneCore *lc,const char *from); #ifdef __cplusplus } diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 90665c26c..3d6c45d93 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -1,82 +1,82 @@ -/* -message_storage.c -Copyright (C) 2012 Belledonne Communications, Grenoble, France - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -#include "private.h" -#include "linphonecore.h" - -#ifdef WIN32 - -static inline char *my_ctime_r(const time_t *t, char *buf){ - strcpy(buf,ctime(t)); - return buf; -} - -#else -#define my_ctime_r ctime_r -#endif - -#ifdef MSG_STORAGE_ENABLED - -#include "sqlite3.h" - +/* +message_storage.c +Copyright (C) 2012 Belledonne Communications, Grenoble, France + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "private.h" +#include "linphonecore.h" + +#ifdef WIN32 + +static inline char *my_ctime_r(const time_t *t, char *buf){ + strcpy(buf,ctime(t)); + return buf; +} + +#else +#define my_ctime_r ctime_r +#endif + +#ifdef MSG_STORAGE_ENABLED + +#include "sqlite3.h" + static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; -static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; - -#define CONFIG_FILE ".linphone-history.db" - -char *linphone_message_storage_get_config_file(const char *filename){ - const int path_max=1024; - char *config_file=(char *)malloc(path_max*sizeof(char)); - if (filename==NULL) filename=CONFIG_FILE; - /*try accessing a local file first if exists*/ - if (access(CONFIG_FILE,F_OK)==0){ - snprintf(config_file,path_max,"%s",filename); - }else{ -#ifdef WIN32 - const char *appdata=getenv("APPDATA"); - if (appdata){ - snprintf(config_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR); - CreateDirectory(config_file,NULL); - snprintf(config_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename); - } -#else - const char *home=getenv("HOME"); - if (home==NULL) home="."; - snprintf(config_file,path_max,"%s/%s",home,filename); -#endif - } - return config_file; -} - -void create_chat_message(char **argv, void *data){ - LinphoneChatRoom *cr = (LinphoneChatRoom *)data; - LinphoneChatMessage* new_message = linphone_chat_room_create_message(cr,argv[4]); +static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; + +#define CONFIG_FILE ".linphone-history.db" + +char *linphone_message_storage_get_config_file(const char *filename){ + const int path_max=1024; + char *config_file=(char *)malloc(path_max*sizeof(char)); + if (filename==NULL) filename=CONFIG_FILE; + /*try accessing a local file first if exists*/ + if (access(CONFIG_FILE,F_OK)==0){ + snprintf(config_file,path_max,"%s",filename); + }else{ +#ifdef WIN32 + const char *appdata=getenv("APPDATA"); + if (appdata){ + snprintf(config_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR); + CreateDirectory(config_file,NULL); + snprintf(config_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename); + } +#else + const char *home=getenv("HOME"); + if (home==NULL) home="."; + snprintf(config_file,path_max,"%s/%s",home,filename); +#endif + } + return config_file; +} + +void create_chat_message(char **argv, void *data){ + LinphoneChatRoom *cr = (LinphoneChatRoom *)data; + LinphoneChatMessage* new_message = linphone_chat_room_create_message(cr,argv[4]); struct tm ret={0}; char tmp1[80]={0}; - char tmp2[80]={0}; - - if(atoi(argv[3])==INCOMING){ - linphone_chat_message_set_from(new_message,linphone_address_new(argv[2])); - } else { - linphone_chat_message_set_from(new_message,linphone_address_new(argv[1])); - } - + char tmp2[80]={0}; + + if(atoi(argv[3])==INCOMING){ + linphone_chat_message_set_from(new_message,linphone_address_new(argv[2])); + } else { + linphone_chat_message_set_from(new_message,linphone_address_new(argv[1])); + } + if(argv[5]!=NULL){ int i,j; sscanf(argv[5],"%3c %3c%d%d:%d:%d %d",tmp1,tmp2,&ret.tm_mday, @@ -87,108 +87,116 @@ void create_chat_message(char **argv, void *data){ } for(j=0;j<12;j++) { if(strcmp(tmp2,months[j])==0) ret.tm_mon=j; - } - } - new_message->time=argv[5]!=NULL ? mktime(&ret) : time(NULL); - new_message->state=atoi(argv[7]); - cr->messages_hist=ms_list_prepend(cr->messages_hist,(void *)new_message); -} - -static int callback(void *data, int argc, char **argv, char **colName){ - create_chat_message(argv,data); - return 0; -} - -void linphone_sql_request_message(sqlite3 *db,const char *stmt,void *data){ - char* errmsg; - int ret; - ret=sqlite3_exec(db,stmt,callback,data,&errmsg); - if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); - } -} - -void linphone_sql_request(sqlite3* db,const char *stmt){ - char* errmsg; - int ret; - ret=sqlite3_exec(db,stmt,0,0,&errmsg); - if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); - } -} - -void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, - int direction, const char *message,const char *date, int read, int state){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", - local_contact,remote_contact,direction,message,date,read,state); - linphone_sql_request(lc->db,buf); -} - -void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - char time_str[26]; - char *buf=sqlite3_mprintf("update history set status=%i where message = %Q and time = %Q;", - state,message,my_ctime_r(&date,time_str)); - linphone_sql_request(lc->db,buf); -} - -void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;", - read,from); - linphone_sql_request(lc->db,buf); -} - -MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - cr->messages_hist = NULL; - char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",to,nb_message); - linphone_sql_request_message(lc->db,buf,(void *)cr); - return cr->messages_hist; -} - -void linphone_close_storage(sqlite3* db){ - sqlite3_close(db); -} - -void linphone_create_table(sqlite3* db){ - char* errmsg; - int ret; - ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);", - 0,0,&errmsg); - if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); - } -} - -sqlite3 * linphone_message_storage_init(){ - int ret; - char *errmsg; - sqlite3 *db; - char *filename; - filename=linphone_message_storage_get_config_file(NULL); - ret=sqlite3_open(filename,&db); - if(ret != SQLITE_OK) { - printf("Error in the opening: %s.\n", errmsg); - sqlite3_close(db); - } - linphone_create_table(db); - return db; -} -#else - -void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, - int direction, const char *message,const char *date, int read, int state){ -} - -void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ -} - -void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ -} - -MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ - return NULL; -} + } + } + new_message->time=argv[5]!=NULL ? mktime(&ret) : time(NULL); + new_message->state=atoi(argv[7]); + cr->messages_hist=ms_list_prepend(cr->messages_hist,(void *)new_message); +} + +static int callback(void *data, int argc, char **argv, char **colName){ + create_chat_message(argv,data); + return 0; +} + +void linphone_sql_request_message(sqlite3 *db,const char *stmt,void *data){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,stmt,callback,data,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +void linphone_sql_request(sqlite3* db,const char *stmt){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,stmt,0,0,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, + int direction, const char *message,const char *date, int read, int state){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", + local_contact,remote_contact,direction,message,date,read,state); + linphone_sql_request(lc->db,buf); +} + +void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char time_str[26]; + char *buf=sqlite3_mprintf("update history set status=%i where message = %Q and time = %Q;", + state,message,my_ctime_r(&date,time_str)); + linphone_sql_request(lc->db,buf); +} + +void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;", + read,from); + linphone_sql_request(lc->db,buf); +} + +void linphone_core_delete_history(LinphoneCore *lc,const char *from){ + char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",from); + linphone_sql_request(lc->db,buf); +} + +MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + cr->messages_hist = NULL; + char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",to,nb_message); + linphone_sql_request_message(lc->db,buf,(void *)cr); + return cr->messages_hist; +} + +void linphone_close_storage(sqlite3* db){ + sqlite3_close(db); +} + +void linphone_create_table(sqlite3* db){ + char* errmsg; + int ret; + ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);", + 0,0,&errmsg); + if(ret != SQLITE_OK) { + printf("Error in creation: %s.\n", errmsg); + } +} + +sqlite3 * linphone_message_storage_init(){ + int ret; + char *errmsg; + sqlite3 *db; + char *filename; + filename=linphone_message_storage_get_config_file(NULL); + ret=sqlite3_open(filename,&db); + if(ret != SQLITE_OK) { + printf("Error in the opening: %s.\n", errmsg); + sqlite3_close(db); + } + linphone_create_table(db); + return db; +} +#else + +void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, + int direction, const char *message,const char *date, int read, int state){ +} + +void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ +} + +void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ +} + +MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ + return NULL; +} + +void linphone_core_delete_history(LinphoneCore *lc,const char *from){ +} #endif \ No newline at end of file diff --git a/gtk/chat.c b/gtk/chat.c index c93d9828c..b3a5ecfdc 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -23,6 +23,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #endif +#define NB_MSG_HIST 250 + void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *main_window=linphone_gtk_get_main_window (); GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch"); @@ -302,7 +304,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres "margin","indent",10,NULL); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), "bg","paragraph-background-gdk",&colorb,NULL); - messages = linphone_chat_room_get_history(with_str,cr,10); + messages = linphone_chat_room_get_history(with_str,cr,NB_MSG_HIST); display_history_message(chat_view,messages,with); button = linphone_gtk_get_widget(chat_view,"send"); g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL); @@ -339,7 +341,7 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, udpate_tab_chat_header(chat_view,uri,cr); g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); - messages = linphone_chat_room_get_history(uri_only,cr,10); + messages = linphone_chat_room_get_history(uri_only,cr,NB_MSG_HIST); g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str); display_history_message(chat_view,messages,uri); } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 6ef326610..4ae86dfab 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -165,6 +165,21 @@ void linphone_gtk_remove_contact(GtkWidget *button){ } } +void linphone_gtk_delete_history(GtkWidget *button){ + GtkWidget *w=gtk_widget_get_toplevel(button); + GtkTreeSelection *select; + GtkTreeIter iter; + GtkTreeModel *model; + LinphoneFriend *lf=NULL; + select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list"))); + if (gtk_tree_selection_get_selected (select, &model, &iter)) + { + gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); + linphone_core_delete_history(linphone_gtk_get_core(),linphone_address_as_string_uri_only(linphone_friend_get_address(lf))); + linphone_gtk_show_friends(); + } +} + static void linphone_gtk_call_selected(GtkTreeView *treeview){ linphone_gtk_set_selection_to_uri_bar(treeview); linphone_gtk_start_call(linphone_gtk_get_widget(gtk_widget_get_toplevel(GTK_WIDGET(treeview)), @@ -786,6 +801,7 @@ static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list){ gchar *text_label=NULL; gchar *edit_label=NULL; gchar *delete_label=NULL; + gchar *delete_hist_label=NULL; gchar *name=NULL; GtkTreeSelection *select; GtkTreeIter iter; @@ -808,6 +824,7 @@ static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list){ text_label=g_strdup_printf(_("Send text to %s"),name); edit_label=g_strdup_printf(_("Edit contact '%s'"),name); delete_label=g_strdup_printf(_("Delete contact '%s'"),name); + delete_hist_label=g_strdup_printf(_("Delete chat history of '%s'"),name); g_free(name); } if (call_label){ @@ -847,6 +864,15 @@ static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list){ g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_remove_contact,contact_list); } + if (delete_hist_label){ + menu_item=gtk_image_menu_item_new_with_label(delete_hist_label); + image=gtk_image_new_from_stock(GTK_STOCK_CLEAR,GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image); + gtk_widget_show(image); + gtk_widget_show(menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); + g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_delete_history,contact_list); + } if (ssc && (sip_setup_context_get_capabilities(ssc) & SIP_SETUP_CAP_BUDDY_LOOKUP)) { gchar *tmp=g_strdup_printf(_("Add new contact from %s directory"),linphone_proxy_config_get_domain(cfg)); diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 8481bef7e..1c189e0b8 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -778,6 +778,7 @@ static LangCodes supported_langs[]={ { "zh_TW" , N_("Traditional Chinese") }, { "nb_NO" , N_("Norwegian") }, { "he" , N_("Hebrew") }, + { "sr" , N_("Serbian") }, { NULL , NULL } }; From 4539d3c2d618117dbbed640fccb96c68a31bcb04 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 7 Mar 2013 17:41:12 +0100 Subject: [PATCH 015/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index a824c4739..daa8d61fe 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit a824c473919ab993e536e9f2d29471332e68280e +Subproject commit daa8d61feee22ffcc72a2db189aa88956697de20 From 837c566c0a2cfd5d27d738f1647872703786d6cd Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 8 Mar 2013 12:24:48 +0100 Subject: [PATCH 016/177] uPnP support network changes --- coreapi/linphonecore.c | 13 ++++ coreapi/upnp.c | 160 +++++++++++++++++++++++++++++++++++------ coreapi/upnp.h | 1 + mediastreamer2 | 2 +- 4 files changed, 152 insertions(+), 24 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index eac319061..bdf2193c1 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -5288,9 +5288,22 @@ static void set_network_reachable(LinphoneCore* lc,bool_t isReachable, time_t cu } lc->netup_time=curtime; lc->network_reachable=isReachable; + if(!isReachable) { sal_reset_transports(lc->sal); } +#ifdef BUILD_UPNP + if(lc->upnp == NULL) { + if(isReachable && lc->net_conf.firewall_policy == LinphonePolicyUseUpnp) { + lc->upnp = linphone_upnp_context_new(lc); + } + } else { + if(!isReachable && lc->net_conf.firewall_policy == LinphonePolicyUseUpnp) { + linphone_upnp_context_destroy(lc->upnp); + lc->upnp = NULL; + } + } +#endif } void linphone_core_refresh_registers(LinphoneCore* lc) { diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 240c34b38..596afe333 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -20,6 +20,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "upnp.h" #include "private.h" #include "lpconfig.h" +#include + +#define UPNP_STRINGIFY(x) #x +#define UPNP_TOSTRING(x) UPNP_STRINGIFY(x) #define UPNP_ADD_MAX_RETRY 4 #define UPNP_REMOVE_MAX_RETRY 4 @@ -27,7 +31,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define UPNP_CORE_READY_CHECK 1 #define UPNP_CORE_RETRY_DELAY 4 #define UPNP_CALL_RETRY_DELAY 1 - +#define UPNP_UUID_LEN 32 +#define UPNP_UUID_LEN_STR UPNP_TOSTRING(UPNP_UUID_LEN) /* * uPnP Definitions */ @@ -36,6 +41,7 @@ typedef struct _UpnpPortBinding { ms_mutex_t mutex; LinphoneUpnpState state; upnp_igd_ip_protocol protocol; + char *device_id; char local_addr[LINPHONE_IPADDR_SIZE]; int local_port; char external_addr[LINPHONE_IPADDR_SIZE]; @@ -86,6 +92,7 @@ UpnpPortBinding *linphone_upnp_port_binding_new(); UpnpPortBinding *linphone_upnp_port_binding_new_with_parameters(upnp_igd_ip_protocol protocol, int local_port, int external_port); UpnpPortBinding *linphone_upnp_port_binding_new_or_collect(MSList *list, upnp_igd_ip_protocol protocol, int local_port, int external_port); UpnpPortBinding *linphone_upnp_port_binding_copy(const UpnpPortBinding *port); +void linphone_upnp_port_binding_set_device_id(UpnpPortBinding *port, const char * device_id); bool_t linphone_upnp_port_binding_equal(const UpnpPortBinding *port1, const UpnpPortBinding *port2); UpnpPortBinding *linphone_upnp_port_binding_equivalent_in_list(MSList *list, const UpnpPortBinding *port); UpnpPortBinding *linphone_upnp_port_binding_retain(UpnpPortBinding *port); @@ -96,7 +103,7 @@ void linphone_upnp_update_config(UpnpContext *lupnp); void linphone_upnp_update_proxy(UpnpContext *lupnp, bool_t force); // Configuration -MSList *linphone_upnp_config_list_port_bindings(struct _LpConfig *lpc); +MSList *linphone_upnp_config_list_port_bindings(struct _LpConfig *lpc, const char *device_id); void linphone_upnp_config_add_port_binding(UpnpContext *lupnp, const UpnpPortBinding *port); void linphone_upnp_config_remove_port_binding(UpnpContext *lupnp, const UpnpPortBinding *port); @@ -105,6 +112,61 @@ int linphone_upnp_context_send_remove_port_binding(UpnpContext *lupnp, UpnpPortB int linphone_upnp_context_send_add_port_binding(UpnpContext *lupnp, UpnpPortBinding *port, bool_t retry); +static int linphone_upnp_strncmpi(const char *str1, const char *str2, int len) { + int i = 0; + char char1, char2; + while(*str1 != '\0' && *str2 != '\0' && i < len) { + char1 = toupper(*str1); + char2 = toupper(*str2); + if(char1 != char2) { + return char1 - char2; + } + str1++; + str2++; + len++; + } + return 0; +} +static int linphone_upnp_str_min(const char *str1, const char *str2) { + int len1 = strlen(str1); + int len2 = strlen(str2); + if(len1 > len2) { + return len2; + } + return len1; +} +char * linphone_upnp_format_device_id(const char *device_id) { + char *ret = NULL; + char *tmp; + char tchar; + bool_t copy; + if(device_id == NULL) { + return ret; + } + ret = ms_new(char, UPNP_UUID_LEN + 1); + tmp = ret; + if(linphone_upnp_strncmpi(device_id, "uuid:", linphone_upnp_str_min(device_id, "uuid:")) == 0) { + device_id += strlen("uuid:"); + } + while(*device_id != '\0' && tmp - ret < UPNP_UUID_LEN) { + copy = FALSE; + tchar = *device_id; + if(tchar >= '0' && tchar <= '9') + copy = TRUE; + if(!copy && tchar >= 'A' && tchar <= 'Z') + copy = TRUE; + if(!copy && tchar >= 'a' && tchar <= 'z') + copy = TRUE; + if(copy) { + *tmp = *device_id; + tmp++; + } + device_id++; + } + *tmp = '\0'; + return ret; +} + /** * uPnP Callbacks */ @@ -293,15 +355,17 @@ void linphone_upnp_context_destroy(UpnpContext *lupnp) { ms_mutex_lock(&lupnp->mutex); - /* Send port binding removes */ - if(lupnp->sip_udp != NULL) { - linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_udp, TRUE); - } - if(lupnp->sip_tcp != NULL) { - linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_tcp, TRUE); - } - if(lupnp->sip_tls != NULL) { - linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_tls, TRUE); + if(lupnp->lc->network_reachable) { + /* Send port binding removes */ + if(lupnp->sip_udp != NULL) { + linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_udp, TRUE); + } + if(lupnp->sip_tcp != NULL) { + linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_tcp, TRUE); + } + if(lupnp->sip_tls != NULL) { + linphone_upnp_context_send_remove_port_binding(lupnp, lupnp->sip_tls, TRUE); + } } /* Wait all pending bindings are done */ @@ -430,6 +494,10 @@ int linphone_upnp_context_get_external_port(UpnpContext *lupnp) { return port; } +void linphone_upnp_refresh(UpnpContext * lupnp) { + upnp_igd_refresh(lupnp->upnp_igd_ctxt); +} + const char* linphone_upnp_context_get_external_ipaddress(UpnpContext *lupnp) { const char* addr = NULL; if(lupnp != NULL) { @@ -477,6 +545,7 @@ int linphone_upnp_context_send_add_port_binding(UpnpContext *lupnp, UpnpPortBind if(port->retry >= UPNP_ADD_MAX_RETRY) { ret = -1; } else { + linphone_upnp_port_binding_set_device_id(port, upnp_igd_get_device_id(lupnp->upnp_igd_ctxt)); mapping.cookie = linphone_upnp_port_binding_retain(port); lupnp->pending_bindings = ms_list_append(lupnp->pending_bindings, mapping.cookie); @@ -539,6 +608,7 @@ int linphone_upnp_context_send_remove_port_binding(UpnpContext *lupnp, UpnpPortB if(port->retry >= UPNP_REMOVE_MAX_RETRY) { ret = -1; } else { + linphone_upnp_port_binding_set_device_id(port, upnp_igd_get_device_id(lupnp->upnp_igd_ctxt)); mapping.cookie = linphone_upnp_port_binding_retain(port); lupnp->pending_bindings = ms_list_append(lupnp->pending_bindings, mapping.cookie); @@ -769,7 +839,7 @@ void linphone_core_upnp_refresh(UpnpContext *lupnp) { list = list->next; } - list = linphone_upnp_config_list_port_bindings(lupnp->lc->config); + list = linphone_upnp_config_list_port_bindings(lupnp->lc->config, upnp_igd_get_device_id(lupnp->upnp_igd_ctxt)); for(item = list;item != NULL; item = item->next) { port_mapping = (UpnpPortBinding *)item->data; port_mapping2 = linphone_upnp_port_binding_equivalent_in_list(global_list, port_mapping); @@ -845,10 +915,11 @@ void linphone_upnp_update_config(UpnpContext* lupnp) { /* Add configs */ for(item = lupnp->adding_configs;item!=NULL;item=item->next) { port_mapping = (UpnpPortBinding *)item->data; - snprintf(key, sizeof(key), "%s-%d-%d", + snprintf(key, sizeof(key), "%s-%s-%d-%d", + port_mapping->device_id, (port_mapping->protocol == UPNP_IGD_IP_PROTOCOL_TCP)? "TCP":"UDP", - port_mapping->external_port, - port_mapping->local_port); + port_mapping->external_port, + port_mapping->local_port); lp_config_set_string(lupnp->lc->config, UPNP_SECTION_NAME, key, "uPnP"); linphone_upnp_port_binding_log(ORTP_DEBUG, "Configuration: Added port binding", port_mapping); } @@ -858,10 +929,11 @@ void linphone_upnp_update_config(UpnpContext* lupnp) { /* Remove configs */ for(item = lupnp->removing_configs;item!=NULL;item=item->next) { port_mapping = (UpnpPortBinding *)item->data; - snprintf(key, sizeof(key), "%s-%d-%d", + snprintf(key, sizeof(key), "%s-%s-%d-%d", + port_mapping->device_id, (port_mapping->protocol == UPNP_IGD_IP_PROTOCOL_TCP)? "TCP":"UDP", - port_mapping->external_port, - port_mapping->local_port); + port_mapping->external_port, + port_mapping->local_port); lp_config_set_string(lupnp->lc->config, UPNP_SECTION_NAME, key, NULL); linphone_upnp_port_binding_log(ORTP_DEBUG, "Configuration: Removed port binding", port_mapping); } @@ -958,6 +1030,7 @@ UpnpPortBinding *linphone_upnp_port_binding_new() { ms_mutex_init(&port->mutex, NULL); port->state = LinphoneUpnpStateIdle; port->protocol = UPNP_IGD_IP_PROTOCOL_UDP; + port->device_id = NULL; port->local_addr[0] = '\0'; port->local_port = -1; port->external_addr[0] = '\0'; @@ -993,11 +1066,27 @@ UpnpPortBinding *linphone_upnp_port_binding_copy(const UpnpPortBinding *port) { UpnpPortBinding *new_port = NULL; new_port = ms_new0(UpnpPortBinding,1); memcpy(new_port, port, sizeof(UpnpPortBinding)); + new_port->device_id = NULL; + linphone_upnp_port_binding_set_device_id(new_port, port->device_id); ms_mutex_init(&new_port->mutex, NULL); new_port->ref = 1; return new_port; } +void linphone_upnp_port_binding_set_device_id(UpnpPortBinding *port, const char *device_id) { + char *formated_device_id = linphone_upnp_format_device_id(device_id); + if(formated_device_id != NULL && port->device_id != NULL) { + if(strcmp(formated_device_id, port->device_id) == 0) { + ms_free(formated_device_id); + return; + } + } + if(port->device_id != NULL) { + ms_free(port->device_id); + } + port->device_id = formated_device_id; +} + void linphone_upnp_port_binding_log(int level, const char *msg, const UpnpPortBinding *port) { if(strlen(port->local_addr)) { ortp_log(level, "uPnP IGD: %s %s|%d->%s:%d (retry %d)", msg, @@ -1044,6 +1133,9 @@ UpnpPortBinding *linphone_upnp_port_binding_retain(UpnpPortBinding *port) { void linphone_upnp_port_binding_release(UpnpPortBinding *port) { ms_mutex_lock(&port->mutex); if(--port->ref == 0) { + if(port->device_id != NULL) { + ms_free(port->device_id); + } ms_mutex_unlock(&port->mutex); ms_mutex_destroy(&port->mutex); ms_free(port); @@ -1130,25 +1222,35 @@ LinphoneUpnpState linphone_upnp_session_get_state(UpnpSession *session) { struct linphone_upnp_config_list_port_bindings_struct { struct _LpConfig *lpc; MSList *retList; + const char *device_id; }; static void linphone_upnp_config_list_port_bindings_cb(const char *entry, struct linphone_upnp_config_list_port_bindings_struct *cookie) { + char device_id[UPNP_UUID_LEN + 1]; char protocol_str[4]; // TCP or UDP upnp_igd_ip_protocol protocol; int external_port; int local_port; + int ret; bool_t valid = TRUE; UpnpPortBinding *port; - if(sscanf(entry, "%3s-%i-%i", protocol_str, &external_port, &local_port) == 3) { - if(strcasecmp(protocol_str, "TCP") == 0) { + + ret = sscanf(entry, "%"UPNP_UUID_LEN_STR"s-%3s-%i-%i", device_id, protocol_str, &external_port, &local_port); + if(ret == 4) { + // Handle only wanted device bindings + if(device_id != NULL && strcmp(cookie->device_id, device_id) != 0) { + return; + } + if(linphone_upnp_strncmpi(protocol_str, "TCP", 3) == 0) { protocol = UPNP_IGD_IP_PROTOCOL_TCP; - } else if(strcasecmp(protocol_str, "UDP") == 0) { + } else if(linphone_upnp_strncmpi(protocol_str, "UDP", 3) == 0) { protocol = UPNP_IGD_IP_PROTOCOL_UDP; } else { valid = FALSE; } if(valid) { port = linphone_upnp_port_binding_new(); + linphone_upnp_port_binding_set_device_id(port, device_id); port->state = LinphoneUpnpStateOk; port->protocol = protocol; port->external_port = external_port; @@ -1163,15 +1265,22 @@ static void linphone_upnp_config_list_port_bindings_cb(const char *entry, struct } } -MSList *linphone_upnp_config_list_port_bindings(struct _LpConfig *lpc) { - struct linphone_upnp_config_list_port_bindings_struct cookie = {lpc, NULL}; +MSList *linphone_upnp_config_list_port_bindings(struct _LpConfig *lpc, const char *device_id) { + char *formated_device_id = linphone_upnp_format_device_id(device_id); + struct linphone_upnp_config_list_port_bindings_struct cookie = {lpc, NULL, formated_device_id}; lp_config_for_each_entry(lpc, UPNP_SECTION_NAME, (void(*)(const char *, void*))linphone_upnp_config_list_port_bindings_cb, &cookie); + ms_free(formated_device_id); return cookie.retList; } void linphone_upnp_config_add_port_binding(UpnpContext *lupnp, const UpnpPortBinding *port) { MSList *list; UpnpPortBinding *list_port; + + if(port->device_id == NULL) { + ms_error("Can't remove port binding without device_id"); + return; + } list = lupnp->removing_configs; while(list != NULL) { @@ -1201,6 +1310,11 @@ void linphone_upnp_config_remove_port_binding(UpnpContext *lupnp, const UpnpPort MSList *list; UpnpPortBinding *list_port; + if(port->device_id == NULL) { + ms_error("Can't remove port binding without device_id"); + return; + } + list = lupnp->adding_configs; while(list != NULL) { list_port = (UpnpPortBinding *)list->data; diff --git a/coreapi/upnp.h b/coreapi/upnp.h index fe403a772..d785954a4 100644 --- a/coreapi/upnp.h +++ b/coreapi/upnp.h @@ -38,6 +38,7 @@ LinphoneUpnpState linphone_upnp_session_get_state(UpnpSession *session); UpnpContext *linphone_upnp_context_new(LinphoneCore *lc); void linphone_upnp_context_destroy(UpnpContext *ctx); +void linphone_upnp_refresh(UpnpContext *ctx); LinphoneUpnpState linphone_upnp_context_get_state(UpnpContext *ctx); const char *linphone_upnp_context_get_external_ipaddress(UpnpContext *ctx); int linphone_upnp_context_get_external_port(UpnpContext *ctx); diff --git a/mediastreamer2 b/mediastreamer2 index daa8d61fe..06e505707 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit daa8d61feee22ffcc72a2db189aa88956697de20 +Subproject commit 06e505707c31d11e056f2dad4de3ac617985333b From ad7114171eceab0116a7568367633c7808c9aa00 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Sat, 9 Mar 2013 10:34:32 +0100 Subject: [PATCH 017/177] clean message storage API relax requirement for sqlite3 --- configure.ac | 26 ++++-- coreapi/callbacks.c | 5 +- coreapi/chat.c | 95 +++++++++++++-------- coreapi/linphonecore.c | 26 +++++- coreapi/linphonecore.h | 13 ++- coreapi/message_storage.c | 151 ++++++++++++++++++--------------- coreapi/private.h | 27 +++--- coreapi/sal.h | 4 +- coreapi/sal_eXosip2_presence.c | 23 ++++- gtk/chat.c | 68 ++++++++++----- gtk/friendlist.c | 4 +- gtk/linphone.h | 2 + gtk/main.c | 7 +- 13 files changed, 294 insertions(+), 157 deletions(-) diff --git a/configure.ac b/configure.ac index 9cb828e82..ae2d59386 100644 --- a/configure.ac +++ b/configure.ac @@ -670,21 +670,31 @@ if test x$enable_tunnel = xtrue; then fi AC_ARG_ENABLE(msg-storage, - [AS_HELP_STRING([--enable-msg-storage=[yes/no]], [Turn on compilation of message storage (default=yes)])], + [AS_HELP_STRING([--enable-msg-storage=[yes/no]], [Turn on compilation of message storage (default=auto)])], [case "${enableval}" in yes) enable_msg_storage=true ;; no) enable_msg_storage=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-msg-storage) ;; esac], - [enable_msg_storage=true] + [enable_msg_storage=auto] ) + +echo "enable_msg_storage = $enable_msg_storage" + AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue) -if test x$enable_msg_storage = xtrue; then - PKG_CHECK_MODULES(SQLITE3,[ sqlite3 >= 3.7.0],[],[ - AC_MSG_ERROR([sqlite3 required for message storage not found.])] ) - SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED" - AC_SUBST(SQLITE3_CFLAGS) - AC_SUBST(SQLITE3_LIBS) +if test x$enable_msg_storage != xfalse; then + PKG_CHECK_MODULES(SQLITE3,[ sqlite3 >= 3.7.0],[ + SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED" + AC_SUBST(SQLITE3_CFLAGS) + AC_SUBST(SQLITE3_LIBS) + enable_msg_storage=true + ],[ + if test x$enable_msg_storage = xtrue; then + AC_MSG_ERROR([sqlite3 required for message storage not found.]) + fi + enable_msg_storage=false + ] ) + fi diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index d65e53674..dd5ab7edc 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -934,10 +934,11 @@ static void text_delivery_update(SalOp *op, SalTextDeliveryStatus status){ LinphoneChatMessage *chat_msg=(LinphoneChatMessage* )sal_op_get_user_pointer(op); const MSList* calls = linphone_core_get_calls(chat_msg->chat_room->lc); - linphone_core_set_message_state(chat_msg->chat_room,chat_msg->message,chatStatusSal2Linphone(status),chat_msg->time); + chat_msg->state=chatStatusSal2Linphone(status); + linphone_chat_message_store_state(chat_msg); if (chat_msg && chat_msg->cb) { chat_msg->cb(chat_msg - ,chatStatusSal2Linphone(status) + ,chat_msg->state ,chat_msg->cb_ud); } linphone_chat_message_destroy(chat_msg); diff --git a/coreapi/chat.c b/coreapi/chat.c index 046c34733..69893217d 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -62,16 +62,7 @@ void linphone_chat_room_destroy(LinphoneChatRoom *cr){ ms_free(cr->peer); } -#ifdef WIN32 -static inline char *my_ctime_r(const time_t *t, char *buf){ - strcpy(buf,ctime(t)); - return buf; -} - -#else -#define my_ctime_r ctime_r -#endif static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage* msg){ const char *route=NULL; @@ -80,8 +71,6 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM LinphoneCall *call; char* content_type; time_t t=time(NULL); - char buf[26]; - char *to; if (lp_config_get_int(cr->lc->config,"sip","chat_use_call_dialogs",0)){ if((call = linphone_core_get_call_by_remote_address(cr->lc,cr->peer))!=NULL){ @@ -109,15 +98,14 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM } if (msg->external_body_url) { content_type=ms_strdup_printf("message/external-body; access-type=URL; URL=\"%s\"",msg->external_body_url); - sal_message_send(op,identity,cr->peer,content_type, NULL,my_ctime_r(&t,buf)); + sal_message_send(op,identity,cr->peer,content_type, NULL); ms_free(content_type); } else { - sal_text_send(op, identity, cr->peer,msg->message,my_ctime_r(&t,buf)); + sal_text_send(op, identity, cr->peer,msg->message); } - to=linphone_address_as_string_uri_only (cr->peer_url); - linphone_core_set_history_message(cr,identity,to,OUTGOING,msg->message, - my_ctime_r(&t,buf),READ,LinphoneChatMessageStateInProgress); - ms_free(to); + msg->dir=LinphoneChatMessageOutgoing; + msg->from=linphone_address_new(identity); + linphone_chat_message_store(msg); } /** @@ -144,19 +132,15 @@ void linphone_chat_room_message_received(LinphoneChatRoom *cr, LinphoneCore *lc, } -void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessage *sal_msg){ - MSList *elem; +/** + * Retrieve an existing chat room whose peer is the supplied address, if exists. + * @param lc the linphone core + * @param add a linphone address. + * @returns the matching chatroom, or NULL if no such chatroom exists. +**/ +LinphoneChatRoom *linphone_core_get_chat_room(LinphoneCore *lc, const LinphoneAddress *addr){ LinphoneChatRoom *cr=NULL; - LinphoneAddress *addr; - char *cleanfrom; - const char *to; - char *from; - LinphoneChatMessage* msg; - const SalCustomHeader *ch; - char buf[26]; - - addr=linphone_address_new(sal_msg->from); - linphone_address_clean(addr); + MSList *elem; for(elem=lc->chatrooms;elem!=NULL;elem=ms_list_next(elem)){ cr=(LinphoneChatRoom*)elem->data; if (linphone_chat_room_matches(cr,addr)){ @@ -164,7 +148,21 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag } cr=NULL; } - to=linphone_core_get_identity(lc); + return cr; +} + +void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessage *sal_msg){ + + LinphoneChatRoom *cr=NULL; + LinphoneAddress *addr; + char *cleanfrom; + char *from; + LinphoneChatMessage* msg; + const SalCustomHeader *ch; + + addr=linphone_address_new(sal_msg->from); + linphone_address_clean(addr); + cr=linphone_core_get_chat_room(lc,addr); cleanfrom=linphone_address_as_string(addr); from=linphone_address_as_string_uri_only(addr); if (cr==NULL){ @@ -173,8 +171,16 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag } msg = linphone_chat_room_create_message(cr, sal_msg->text); linphone_chat_message_set_from(msg, cr->peer_url); + + { + LinphoneAddress *to; + to=sal_op_get_to(op) ? linphone_address_new(sal_op_get_to(op)) : linphone_address_new(linphone_core_get_identity(lc)); + msg->to=to; + } + msg->time=sal_msg->time; msg->state=LinphoneChatMessageStateDelivered; + msg->is_read=FALSE; ch=sal_op_get_custom_header(op); if (ch) msg->custom_headers=sal_custom_header_clone(ch); @@ -182,9 +188,7 @@ void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessag linphone_chat_message_set_external_body_url(msg, sal_msg->url); } linphone_address_destroy(addr); - linphone_core_set_history_message(cr,to,from,INCOMING, - msg->message,my_ctime_r(&msg->time,buf),NOT_READ, - LinphoneChatMessageStateDelivered); + linphone_chat_message_store(msg); linphone_chat_room_message_received(cr,lc,msg); ms_free(cleanfrom); ms_free(from); @@ -230,6 +234,7 @@ LinphoneChatMessage* linphone_chat_room_create_message(LinphoneChatRoom *cr, con LinphoneChatMessage* msg = ms_new0(LinphoneChatMessage,1); msg->chat_room=(LinphoneChatRoom*)cr; msg->message=message?ms_strdup(message):NULL; + msg->is_read=TRUE; return msg; } @@ -327,10 +332,32 @@ void linphone_chat_message_set_from(LinphoneChatMessage* message, const Linphone *@param message #LinphoneChatMessage obj *@return #LinphoneAddress */ -LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message) { +const LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message) { return message->from; } +/** + * Get destination of the message + *@param message #LinphoneChatMessage obj + *@return #LinphoneAddress + */ +const LinphoneAddress* linphone_chat_message_get_to(const LinphoneChatMessage* message){ + if (message->to) return message->to; + if (message->dir==LinphoneChatMessageOutgoing){ + return message->chat_room->peer_url; + } + return NULL; +} + +/** + * Returns the origin address of a message if it was a outgoing message, or the destination address if it was an incoming message. + *@param message #LinphoneChatMessage obj + *@return #LinphoneAddress + */ +LinphoneAddress *linphone_chat_message_get_local_address(const LinphoneChatMessage* message){ + return message->dir==LinphoneChatMessageOutgoing ? message->from : message->to; +} + /** * Get the time the message was sent. */ diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index bdf2193c1..2bb9fab32 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1306,9 +1306,6 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta #ifdef TUNNEL_ENABLED lc->tunnel=linphone_core_tunnel_new(lc); if (lc->tunnel) linphone_tunnel_configure(lc->tunnel); -#endif -#ifdef MSG_STORAGE_ENABLED - lc->db=linphone_message_storage_init(); #endif if (lc->vtable.display_status) lc->vtable.display_status(lc,_("Ready")); @@ -5265,6 +5262,8 @@ static void linphone_core_uninit(LinphoneCore *lc) } linphone_core_free_payload_types(lc); + + linphone_core_message_storage_close(lc); ortp_exit(); linphone_core_set_state(lc,LinphoneGlobalOff,"Off"); #ifdef TUNNEL_ENABLED @@ -5795,3 +5794,24 @@ void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp){ int linphone_core_get_video_dscp(const LinphoneCore *lc){ return lp_config_get_int(lc->config,"rtp","video_dscp",0x2e); } + + +/** + * Sets the database filename where chat messages will be stored. + * If the file does not exist, it will be created. + * @ingroup initializing + * @param lc the linphone core + * @param path filesystem path +**/ +void linphone_core_set_chat_database_path(LinphoneCore *lc, const char *path){ + if (lc->chat_db_file){ + ms_free(lc->chat_db_file); + lc->chat_db_file=NULL; + } + if (path) { + lc->chat_db_file=ms_strdup(path); + linphone_core_message_storage_init(lc); + } +} + + diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 49074db3e..7212f26c4 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -663,12 +663,17 @@ typedef enum _LinphoneChatMessageStates { */ typedef void (*LinphoneChatMessageStateChangeCb)(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud); +void linphone_core_set_chat_database_path(LinphoneCore *lc, const char *path); LinphoneChatRoom * linphone_core_create_chat_room(LinphoneCore *lc, const char *to); +LinphoneChatRoom *linphone_core_get_chat_room(LinphoneCore *lc, const LinphoneAddress *addr); void linphone_chat_room_destroy(LinphoneChatRoom *cr); LinphoneChatMessage* linphone_chat_room_create_message(LinphoneChatRoom *cr,const char* message); const LinphoneAddress* linphone_chat_room_get_peer_address(LinphoneChatRoom *cr); void linphone_chat_room_send_message(LinphoneChatRoom *cr, const char *msg); void linphone_chat_room_send_message2(LinphoneChatRoom *cr, LinphoneChatMessage* msg,LinphoneChatMessageStateChangeCb status_cb,void* ud); +MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message); +void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr); +void linphone_chat_room_delete_history(LinphoneChatRoom *cr); LinphoneCore* linphone_chat_room_get_lc(LinphoneChatRoom *cr); void linphone_chat_room_set_user_data(LinphoneChatRoom *cr, void * ud); void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr); @@ -677,7 +682,8 @@ LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessa const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state); LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* message); void linphone_chat_message_set_from(LinphoneChatMessage* message, const LinphoneAddress* from); -LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message); +const LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message); +const LinphoneAddress* linphone_chat_message_get_to(const LinphoneChatMessage* message); const char* linphone_chat_message_get_external_body_url(const LinphoneChatMessage* message); void linphone_chat_message_set_external_body_url(LinphoneChatMessage* message,const char* url); const char * linphone_chat_message_get_text(const LinphoneChatMessage* message); @@ -686,6 +692,7 @@ void* linphone_chat_message_get_user_data(const LinphoneChatMessage* message); void linphone_chat_message_set_user_data(LinphoneChatMessage* message,void*); LinphoneChatRoom* linphone_chat_message_get_chat_room(LinphoneChatMessage *msg); const LinphoneAddress* linphone_chat_message_get_peer_address(LinphoneChatMessage *msg); +LinphoneAddress *linphone_chat_message_get_local_address(const LinphoneChatMessage* message); void linphone_chat_message_add_custom_header(LinphoneChatMessage* message, const char *header_name, const char *header_value); const char * linphone_chat_message_get_custom_header(LinphoneChatMessage* message, const char *header_name); @@ -1418,9 +1425,7 @@ int linphone_core_get_audio_dscp(const LinphoneCore *lc); void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp); int linphone_core_get_video_dscp(const LinphoneCore *lc); -MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message); -void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read); -void linphone_core_delete_history(LinphoneCore *lc,const char *from); + #ifdef __cplusplus } diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 3d6c45d93..c62fa1ddb 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -38,44 +38,22 @@ static inline char *my_ctime_r(const time_t *t, char *buf){ static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; -#define CONFIG_FILE ".linphone-history.db" -char *linphone_message_storage_get_config_file(const char *filename){ - const int path_max=1024; - char *config_file=(char *)malloc(path_max*sizeof(char)); - if (filename==NULL) filename=CONFIG_FILE; - /*try accessing a local file first if exists*/ - if (access(CONFIG_FILE,F_OK)==0){ - snprintf(config_file,path_max,"%s",filename); - }else{ -#ifdef WIN32 - const char *appdata=getenv("APPDATA"); - if (appdata){ - snprintf(config_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR); - CreateDirectory(config_file,NULL); - snprintf(config_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename); - } -#else - const char *home=getenv("HOME"); - if (home==NULL) home="."; - snprintf(config_file,path_max,"%s/%s",home,filename); -#endif - } - return config_file; -} - -void create_chat_message(char **argv, void *data){ +static void create_chat_message(char **argv, void *data){ LinphoneChatRoom *cr = (LinphoneChatRoom *)data; LinphoneChatMessage* new_message = linphone_chat_room_create_message(cr,argv[4]); + LinphoneAddress *from; struct tm ret={0}; char tmp1[80]={0}; char tmp2[80]={0}; - if(atoi(argv[3])==INCOMING){ - linphone_chat_message_set_from(new_message,linphone_address_new(argv[2])); + if(atoi(argv[3])==LinphoneChatMessageIncoming){ + from=linphone_address_new(argv[2]); } else { - linphone_chat_message_set_from(new_message,linphone_address_new(argv[1])); + from=linphone_address_new(argv[1]); } + linphone_chat_message_set_from(new_message,from); + linphone_address_destroy(from); if(argv[5]!=NULL){ int i,j; @@ -91,7 +69,7 @@ void create_chat_message(char **argv, void *data){ } new_message->time=argv[5]!=NULL ? mktime(&ret) : time(NULL); new_message->state=atoi(argv[7]); - cr->messages_hist=ms_list_prepend(cr->messages_hist,(void *)new_message); + cr->messages_hist=ms_list_prepend(cr->messages_hist,new_message); } static int callback(void *data, int argc, char **argv, char **colName){ @@ -99,58 +77,84 @@ static int callback(void *data, int argc, char **argv, char **colName){ return 0; } -void linphone_sql_request_message(sqlite3 *db,const char *stmt,void *data){ +void linphone_sql_request_message(sqlite3 *db,const char *stmt,LinphoneChatRoom *cr){ char* errmsg; int ret; - ret=sqlite3_exec(db,stmt,callback,data,&errmsg); + ret=sqlite3_exec(db,stmt,callback,cr,&errmsg); if(ret != SQLITE_OK) { printf("Error in creation: %s.\n", errmsg); } } void linphone_sql_request(sqlite3* db,const char *stmt){ - char* errmsg; + char* errmsg=NULL; int ret; ret=sqlite3_exec(db,stmt,0,0,&errmsg); if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); + ms_error("linphone_sql_request: error sqlite3_exec(): %s.\n", errmsg); + sqlite3_free(errmsg); } } -void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, - int direction, const char *message,const char *date, int read, int state){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", - local_contact,remote_contact,direction,message,date,read,state); - linphone_sql_request(lc->db,buf); +void linphone_chat_message_store(LinphoneChatMessage *msg){ + LinphoneCore *lc=linphone_chat_room_get_lc(msg->chat_room); + if (lc->db){ + const char *peer=msg->chat_room->peer; + char *local_contact=linphone_address_as_string_uri_only(linphone_chat_message_get_local_address(msg)); + char datebuf[26]; + char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", + local_contact,peer,msg->dir,msg->message,my_ctime_r(&msg->time,datebuf),msg->is_read,msg->state); + linphone_sql_request(lc->db,buf); + sqlite3_free(buf); + ms_free(local_contact); + } } -void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ - LinphoneCore *lc=linphone_chat_room_get_lc(cr); - char time_str[26]; - char *buf=sqlite3_mprintf("update history set status=%i where message = %Q and time = %Q;", - state,message,my_ctime_r(&date,time_str)); - linphone_sql_request(lc->db,buf); +void linphone_chat_message_store_state(LinphoneChatMessage *msg){ + LinphoneCore *lc=msg->chat_room->lc; + if (lc->db){ + char time_str[26]; + char *buf=sqlite3_mprintf("update history set status=%i where message = %Q and time = %Q;", + msg->state,msg->message,my_ctime_r(&msg->time,time_str)); + linphone_sql_request(lc->db,buf); + sqlite3_free(buf); + } } -void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ +void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr){ LinphoneCore *lc=linphone_chat_room_get_lc(cr); + int read=1; + + if (lc->db==NULL) return ; + char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;", - read,from); + read,cr->peer); linphone_sql_request(lc->db,buf); + sqlite3_free(buf); } -void linphone_core_delete_history(LinphoneCore *lc,const char *from){ - char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",from); +void linphone_chat_room_delete_history(LinphoneChatRoom *cr){ + LinphoneCore *lc=cr->lc; + + if (lc->db==NULL) return ; + char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",cr->peer); linphone_sql_request(lc->db,buf); + sqlite3_free(buf); } -MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ +MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){ LinphoneCore *lc=linphone_chat_room_get_lc(cr); + MSList *ret; + + if (lc->db==NULL) return NULL; + cr->messages_hist = NULL; - char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",to,nb_message); - linphone_sql_request_message(lc->db,buf,(void *)cr); - return cr->messages_hist; + char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",cr->peer,nb_message); + linphone_sql_request_message(lc->db,buf,cr); + sqlite3_free(buf); + ret=cr->messages_hist; + cr->messages_hist=NULL; + return ret; } void linphone_close_storage(sqlite3* db){ @@ -167,36 +171,49 @@ void linphone_create_table(sqlite3* db){ } } -sqlite3 * linphone_message_storage_init(){ +void linphone_core_message_storage_init(LinphoneCore *lc){ int ret; - char *errmsg; + char *errmsg=NULL; sqlite3 *db; - char *filename; - filename=linphone_message_storage_get_config_file(NULL); - ret=sqlite3_open(filename,&db); + ret=sqlite3_open(lc->chat_db_file,&db); if(ret != SQLITE_OK) { printf("Error in the opening: %s.\n", errmsg); sqlite3_close(db); + sqlite3_free(errmsg); } linphone_create_table(db); - return db; + lc->db=db; } + +void linphone_core_message_storage_close(LinphoneCore *lc){ + if (lc->db){ + sqlite3_close(lc->db); + lc->db=NULL; + } +} + #else -void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, - int direction, const char *message,const char *date, int read, int state){ +void linphone_chat_message_store(LinphoneChatMessage *cr){ } -void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state, time_t date){ +void linphone_chat_message_store_state(LinphoneChatMessage *cr){ } -void linphone_core_set_messages_flag_read(LinphoneChatRoom *cr,const char *from, int read){ +void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr){ } -MSList *linphone_chat_room_get_history(const char *to,LinphoneChatRoom *cr,int nb_message){ +MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){ return NULL; } -void linphone_core_delete_history(LinphoneCore *lc,const char *from){ +void linphone_chat_room_delete_history(LinphoneChatRoom *cr){ } -#endif \ No newline at end of file + +void linphone_core_message_storage_init(LinphoneCore *lc){ +} + +void linphone_core_message_storage_close(LinphoneCore *lc){ +} + +#endif diff --git a/coreapi/private.h b/coreapi/private.h index 35578604f..78344ee70 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -119,17 +119,25 @@ typedef struct _CallCallbackObj static const int linphone_call_magic=0x3343; +typedef enum _LinphoneChatMessageDir{ + LinphoneChatMessageIncoming, + LinphoneChatMessageOutgoing +} LinphoneChatMessageDir; + struct _LinphoneChatMessage { - char* message; LinphoneChatRoom* chat_room; + LinphoneChatMessageDir dir; + char* message; LinphoneChatMessageStateChangeCb cb; void* cb_ud; void* message_userdata; char* external_body_url; - LinphoneAddress* from; + LinphoneAddress *from; + LinphoneAddress *to; time_t time; SalCustomHeader *custom_headers; LinphoneChatMessageState state; + bool_t is_read; }; typedef struct StunCandidate{ @@ -616,6 +624,7 @@ struct _LinphoneCore LinphoneTunnel *tunnel; char* device_id; MSList *last_recv_msg_ids; + char *chat_db_file; #ifdef MSG_STORAGE_ENABLED sqlite3 *db; #endif @@ -700,19 +709,13 @@ void linphone_call_params_uninit(LinphoneCallParams *params); int linphone_upnp_init(LinphoneCore *lc); void linphone_upnp_destroy(LinphoneCore *lc); -#define OUTGOING 0 -#define INCOMING 1 - -#define NOT_READ 0 -#define READ 1 - #ifdef MSG_STORAGE_ENABLED sqlite3 * linphone_message_storage_init(); #endif -void linphone_core_set_history_message(LinphoneChatRoom *cr,const char *local_contact,const char *remote_contact, - int direction, const char *message,const char *date, int read, int state); -void linphone_core_set_message_state(LinphoneChatRoom *cr,const char *message, int state,time_t date); - +void linphone_chat_message_store(LinphoneChatMessage *msg); +void linphone_chat_message_store_state(LinphoneChatMessage *msg); +void linphone_core_message_storage_init(LinphoneCore *lc); +void linphone_core_message_storage_close(LinphoneCore *lc); #ifdef __cplusplus } diff --git a/coreapi/sal.h b/coreapi/sal.h index ba232cca3..25d8d20bc 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -430,8 +430,8 @@ int sal_register_refresh(SalOp *op, int expires); int sal_unregister(SalOp *h); /*Messaging */ -int sal_text_send(SalOp *op, const char *from, const char *to, const char *text, const char*t); -int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg, const char*t); +int sal_text_send(SalOp *op, const char *from, const char *to, const char *text); +int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg); /*presence Subscribe/notify*/ int sal_subscribe_presence(SalOp *op, const char *from, const char *to); diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index 2670af472..356d2a9fb 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -81,8 +81,23 @@ void sal_remove_in_subscribe(Sal *sal, SalOp *op){ sal->in_subscribes=ms_list_remove(sal->in_subscribes,op); } -int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg, const char *t){ +#ifdef WIN32 + +static inline char *my_ctime_r(const time_t *t, char *buf){ + strcpy(buf,ctime(t)); + return buf; +} + +#else +#define my_ctime_r ctime_r +#endif + +int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg){ osip_message_t *sip=NULL; + char t[26]; + time_t curtime=time(NULL); + + my_ctime_r(&curtime,t); if(op->cid == -1) { @@ -120,6 +135,8 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co eXosip_unlock(); return -1; } + sal_exosip_add_custom_headers(sip,op->base.custom_headers); + osip_message_set_date(sip,t); osip_message_set_content_type(sip,content_type); if (msg) osip_message_set_body(sip,msg,strlen(msg)); eXosip_call_send_request(op->did,sip); @@ -128,8 +145,8 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co return 0; } -int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg,const char *t) { - return sal_message_send(op,from,to,"text/plain",msg,t); +int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg) { + return sal_message_send(op,from,to,"text/plain",msg); } /*presence Subscribe/notify*/ int sal_subscribe_presence(SalOp *op, const char *from, const char *to){ diff --git a/gtk/chat.c b/gtk/chat.c index b3a5ecfdc..6a65cd9fc 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -25,6 +25,37 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define NB_MSG_HIST 250 +#define CONFIG_FILE ".linphone-history.db" + +const char *linphone_gtk_message_storage_get_db_file(const char *filename){ + const int path_max=1024; + static char *db_file=NULL; + + if (db_file) return db_file; + + db_file=(char *)malloc(path_max*sizeof(char)); + if (filename==NULL) filename=CONFIG_FILE; + /*try accessing a local file first if exists*/ + if (access(CONFIG_FILE,F_OK)==0){ + snprintf(db_file,path_max,"%s",filename); + }else{ +#ifdef WIN32 + const char *appdata=getenv("APPDATA"); + if (appdata){ + snprintf(db_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR); + CreateDirectory(db_file,NULL); + snprintf(db_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename); + } +#else + const char *home=getenv("HOME"); + if (home==NULL) home="."; + snprintf(db_file,path_max,"%s/%s",home,filename); +#endif + } + return db_file; +} + + void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *main_window=linphone_gtk_get_main_window (); GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch"); @@ -92,16 +123,16 @@ void udpate_tab_chat_header(GtkWidget *chat_view,const LinphoneAddress *uri,Linp void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gboolean me,LinphoneChatRoom *cr,LinphoneChatMessage *msg, gboolean hist){ - GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview")); - GtkTextBuffer *buffer=gtk_text_view_get_buffer(text); - GtkTextIter iter,begin; + GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview")); + GtkTextBuffer *buffer=gtk_text_view_get_buffer(text); + GtkTextIter iter,begin; int off; char *from_str=linphone_address_as_string_uri_only(from); char *from_message=(char *)g_object_get_data(G_OBJECT(w),"from_message"); GList *list=g_object_get_data(G_OBJECT(w),"list"); time_t t; - gtk_text_buffer_get_start_iter(buffer,&begin); + gtk_text_buffer_get_start_iter(buffer,&begin); gtk_text_buffer_get_end_iter(buffer,&iter); off=gtk_text_iter_get_offset(&iter); if(g_strcmp0(from_message,from_str)!=0){ @@ -148,7 +179,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); - gtk_text_view_scroll_mark_onscreen(text,mark); + gtk_text_view_scroll_mark_onscreen(text,mark); } const LinphoneAddress* linphone_gtk_get_used_identity(){ @@ -160,8 +191,8 @@ const LinphoneAddress* linphone_gtk_get_used_identity(){ } void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessage *msg){ - GtkWidget *main_window=linphone_gtk_get_main_window(); - GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); + GtkWidget *main_window=linphone_gtk_get_main_window(); + GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); GList *list=g_object_get_data(G_OBJECT(page),"list"); @@ -277,7 +308,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.blue = 61952; with_str=linphone_address_as_string_uri_only(with); - linphone_core_set_messages_flag_read(cr,with_str,1); + linphone_chat_room_mark_as_read(cr); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); gtk_notebook_append_page(notebook,chat_view,create_tab_chat_header(cr,with)); @@ -304,7 +335,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres "margin","indent",10,NULL); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), "bg","paragraph-background-gdk",&colorb,NULL); - messages = linphone_chat_room_get_history(with_str,cr,NB_MSG_HIST); + messages = linphone_chat_room_get_history(cr,NB_MSG_HIST); display_history_message(chat_view,messages,with); button = linphone_gtk_get_widget(chat_view,"send"); g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL); @@ -325,23 +356,22 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr"); char *from_str=linphone_address_as_string(linphone_chat_room_get_peer_address (cr2)); char *uri_str=linphone_address_as_string(uri); - char *uri_only=linphone_address_as_string_uri_only(uri); MSList *messages=NULL; - linphone_core_set_messages_flag_read(cr,uri_only,1); - if(g_strcmp0(from_str,uri_str)!=0){ - GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); - GtkTextIter start; - GtkTextIter end; + linphone_chat_room_mark_as_read(cr); + if(g_strcmp0(from_str,uri_str)!=0){ + GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); + GtkTextIter start; + GtkTextIter end; GtkTextBuffer *text_buffer; - text_buffer=gtk_text_view_get_buffer(text_view); - gtk_text_buffer_get_bounds(text_buffer, &start, &end); - gtk_text_buffer_delete (text_buffer, &start, &end); + text_buffer=gtk_text_view_get_buffer(text_view); + gtk_text_buffer_get_bounds(text_buffer, &start, &end); + gtk_text_buffer_delete (text_buffer, &start, &end); udpate_tab_chat_header(chat_view,uri,cr); g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); - messages = linphone_chat_room_get_history(uri_only,cr,NB_MSG_HIST); + messages = linphone_chat_room_get_history(cr,NB_MSG_HIST); g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str); display_history_message(chat_view,messages,uri); } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 4ae86dfab..fc2c2f4b5 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -174,8 +174,10 @@ void linphone_gtk_delete_history(GtkWidget *button){ select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list"))); if (gtk_tree_selection_get_selected (select, &model, &iter)) { + LinphoneChatRoom *cr; gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); - linphone_core_delete_history(linphone_gtk_get_core(),linphone_address_as_string_uri_only(linphone_friend_get_address(lf))); + cr=linphone_core_get_chat_room(linphone_gtk_get_core(),linphone_friend_get_address(lf)); + linphone_chat_room_delete_history(cr); linphone_gtk_show_friends(); } } diff --git a/gtk/linphone.h b/gtk/linphone.h index f9597849d..aaa021a28 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -58,6 +58,8 @@ GtkWidget *linphone_gtk_create_window(const char *window_name); GtkWidget *linphone_gtk_get_widget(GtkWidget *window, const char *name); GtkWidget *linphone_gtk_create_widget(const char *filename, const char *widget_name); + +const char *linphone_gtk_message_storage_get_db_file(const char *filename); void linphone_gtk_show_assistant(void); void linphone_gtk_close_assistant(void); diff --git a/gtk/main.c b/gtk/main.c index b1dab3d65..c6065241c 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -216,7 +216,7 @@ static const char *linphone_gtk_get_factory_config_file(){ } static void linphone_gtk_init_liblinphone(const char *config_file, - const char *factory_config_file) { + const char *factory_config_file, const char *db_file) { LinphoneCoreVTable vtable={0}; gchar *secrets_file=linphone_gtk_get_config_file(SECRETS_FILE); @@ -248,6 +248,7 @@ static void linphone_gtk_init_liblinphone(const char *config_file, _linphone_gtk_enable_video(FALSE); linphone_gtk_set_ui_config_int("videoselfview",0); } + if (db_file) linphone_core_set_chat_database_path(the_core,db_file); } LinphoneCore *linphone_gtk_get_core(void){ @@ -1840,6 +1841,7 @@ int main(int argc, char *argv[]){ GdkPixbuf *pbuf; const char *app_name="Linphone"; LpConfig *factory; + const char *db_file; #if !GLIB_CHECK_VERSION(2, 31, 0) g_thread_init(NULL); @@ -1946,7 +1948,8 @@ int main(int argc, char *argv[]){ linphone_gtk_create_log_window(); linphone_core_enable_logs_with_cb(linphone_gtk_log_handler); - linphone_gtk_init_liblinphone(config_file, factory_config_file); + db_file=linphone_gtk_message_storage_get_db_file(NULL); + linphone_gtk_init_liblinphone(config_file, factory_config_file, db_file); g_set_application_name(app_name); pbuf=create_pixbuf(linphone_gtk_get_ui_config("icon",LINPHONE_ICON)); From 88d0ac4cdc6f78f378b6fbf3e7d6b7833c53cba6 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 11 Mar 2013 12:03:19 +0100 Subject: [PATCH 018/177] fix android makefile. --- build/android/common.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/android/common.mk b/build/android/common.mk index 9fd68d779..543a9dc19 100644 --- a/build/android/common.mk +++ b/build/android/common.mk @@ -44,7 +44,8 @@ LOCAL_SRC_FILES := \ linphonecall.c \ conference.c \ ec-calibrator.c \ - linphone_tunnel_config.c + linphone_tunnel_config.c \ + message_storage.c ifndef LINPHONE_VERSION LINPHONE_VERSION = "Devel" From a4f1f411ef60a0f9311585ce1118850fe2151b84 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Tue, 5 Mar 2013 16:35:40 +0100 Subject: [PATCH 019/177] full LinphoneAuthInfo impl for Android --- coreapi/authentication.c | 28 +++ coreapi/linphonecore.h | 4 + coreapi/linphonecore_jni.cc | 159 +++++++++++++++--- .../org/linphone/core/LinphoneAuthInfo.java | 20 +++ .../linphone/core/LinphoneCoreFactory.java | 10 ++ .../linphone/core/LinphoneAuthInfoImpl.java | 58 +++++-- .../core/LinphoneCoreFactoryImpl.java | 6 + 7 files changed, 250 insertions(+), 35 deletions(-) diff --git a/coreapi/authentication.c b/coreapi/authentication.c index 4b5d10fa8..8ab1c21ff 100644 --- a/coreapi/authentication.c +++ b/coreapi/authentication.c @@ -80,6 +80,13 @@ const char *linphone_auth_info_get_userid(const LinphoneAuthInfo *i){ return i->userid; } +const char *linphone_auth_info_get_realm(const LinphoneAuthInfo *i){ + return i->realm; +} +const char *linphone_auth_info_get_ha1(const LinphoneAuthInfo *i){ + return i->ha1; +} + /** * Sets the password. **/ @@ -113,6 +120,27 @@ void linphone_auth_info_set_userid(LinphoneAuthInfo *info, const char *userid){ if (userid && strlen(userid)>0) info->userid=ms_strdup(userid); } +/** + * Sets realm. +**/ +void linphone_auth_info_set_realm(LinphoneAuthInfo *info, const char *realm){ + if (info->realm){ + ms_free(info->realm); + info->realm=NULL; + } + if (realm && strlen(realm)>0) info->realm=ms_strdup(realm); +} +/** + * Sets ha1. +**/ +void linphone_auth_info_set_ha1(LinphoneAuthInfo *info, const char *ha1){ + if (info->ha1){ + ms_free(info->ha1); + info->ha1=NULL; + } + if (ha1 && strlen(ha1)>0) info->ha1=ms_strdup(ha1); +} + /** * Destroys a LinphoneAuthInfo object. **/ diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 7212f26c4..de8a05afa 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -617,10 +617,14 @@ LinphoneAuthInfo *linphone_auth_info_new(const char *username, const char *useri void linphone_auth_info_set_passwd(LinphoneAuthInfo *info, const char *passwd); void linphone_auth_info_set_username(LinphoneAuthInfo *info, const char *username); void linphone_auth_info_set_userid(LinphoneAuthInfo *info, const char *userid); +void linphone_auth_info_set_realm(LinphoneAuthInfo *info, const char *realm); +void linphone_auth_info_set_ha1(LinphoneAuthInfo *info, const char *ha1); const char *linphone_auth_info_get_username(const LinphoneAuthInfo *i); const char *linphone_auth_info_get_passwd(const LinphoneAuthInfo *i); const char *linphone_auth_info_get_userid(const LinphoneAuthInfo *i); +const char *linphone_auth_info_get_realm(const LinphoneAuthInfo *i); +const char *linphone_auth_info_get_ha1(const LinphoneAuthInfo *i); /* you don't need those function*/ void linphone_auth_info_destroy(LinphoneAuthInfo *info); diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 57ab7c4ca..6b6c3f5ce 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1187,33 +1187,150 @@ extern "C" jboolean Java_org_linphone_core_LinphoneProxyConfigImpl_publishEnable //Auth Info extern "C" jlong Java_org_linphone_core_LinphoneAuthInfoImpl_newLinphoneAuthInfo(JNIEnv* env - , jobject thiz - , jstring jusername - , jstring juserid - , jstring jpassword - , jstring jha1 - , jstring jrealm) { - - const char* username = env->GetStringUTFChars(jusername, NULL); - const char* userid = env->GetStringUTFChars(juserid, NULL); - const char* password = env->GetStringUTFChars(jpassword, NULL); - const char* ha1 = env->GetStringUTFChars(jha1, NULL); - const char* realm = env->GetStringUTFChars(jrealm, NULL); - jlong auth = (jlong)linphone_auth_info_new(username,userid,password,ha1,realm); - - env->ReleaseStringUTFChars(jusername, username); - env->ReleaseStringUTFChars(juserid, userid); - env->ReleaseStringUTFChars(jpassword, password); - env->ReleaseStringUTFChars(jha1, ha1); - env->ReleaseStringUTFChars(jrealm, realm); - return auth; - + , jobject thiz ) { + return (jlong)linphone_auth_info_new(NULL,NULL,NULL,NULL,NULL); } extern "C" void Java_org_linphone_core_LinphoneAuthInfoImpl_delete(JNIEnv* env , jobject thiz , jlong ptr) { linphone_auth_info_destroy((LinphoneAuthInfo*)ptr); } +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: getPassword + * Signature: (J)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_getPassword +(JNIEnv *env , jobject, jlong auth_info) { + const char* passwd = linphone_auth_info_get_passwd((LinphoneAuthInfo*)auth_info); + if (passwd) { + return env->NewStringUTF(passwd); + } else { + return NULL; + } + +} +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: getRealm + * Signature: (J)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_getRealm +(JNIEnv *env , jobject, jlong auth_info) { + const char* realm = linphone_auth_info_get_realm((LinphoneAuthInfo*)auth_info); + if (realm) { + return env->NewStringUTF(realm); + } else { + return NULL; + } + +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: getUsername + * Signature: (J)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_getUsername +(JNIEnv *env , jobject, jlong auth_info) { + const char* username = linphone_auth_info_get_username((LinphoneAuthInfo*)auth_info); + if (username) { + return env->NewStringUTF(username); + } else { + return NULL; + } +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: setPassword + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_setPassword +(JNIEnv *env, jobject, jlong auth_info, jstring jpassword) { + const char* password = jpassword?env->GetStringUTFChars(jpassword, NULL):NULL; + linphone_auth_info_set_passwd((LinphoneAuthInfo*)auth_info,password); + if (password) env->ReleaseStringUTFChars(jpassword, password); +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: setRealm + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_setRealm +(JNIEnv *env, jobject, jlong auth_info, jstring jrealm) { + const char* realm = jrealm?env->GetStringUTFChars(jrealm, NULL):NULL; + linphone_auth_info_set_realm((LinphoneAuthInfo*)auth_info,realm); + if (realm) env->ReleaseStringUTFChars(jrealm, realm); +} +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: setUsername + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_setUsername +(JNIEnv *env, jobject, jlong auth_info, jstring jusername) { + const char* username = jusername?env->GetStringUTFChars(jusername, NULL):NULL; + linphone_auth_info_set_username((LinphoneAuthInfo*)auth_info,username); + if (username) env->ReleaseStringUTFChars(jusername, username); +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: setAuthUserId + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_setUserId +(JNIEnv *env, jobject, jlong auth_info, jstring juserid) { + const char* userid = juserid?env->GetStringUTFChars(juserid, NULL):NULL; + linphone_auth_info_set_userid((LinphoneAuthInfo*)auth_info,userid); + if (userid) env->ReleaseStringUTFChars(juserid, userid); +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: getAuthUserId + * Signature: (J)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_getUserId +(JNIEnv *env , jobject, jlong auth_info) { + const char* userid = linphone_auth_info_get_userid((LinphoneAuthInfo*)auth_info); + if (userid) { + return env->NewStringUTF(userid); + } else { + return NULL; + } +} + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: setHa1 + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_setHa1 +(JNIEnv *env, jobject, jlong auth_info, jstring jha1) { + const char* ha1 = jha1?env->GetStringUTFChars(jha1, NULL):NULL; + linphone_auth_info_set_ha1((LinphoneAuthInfo*)auth_info,ha1); + if (ha1) env->ReleaseStringUTFChars(jha1, ha1); +} + + +/* + * Class: org_linphone_core_LinphoneAuthInfoImpl + * Method: getHa1 + * Signature: (J)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_linphone_core_LinphoneAuthInfoImpl_getHa1 +(JNIEnv *env , jobject, jlong auth_info) { + const char* ha1 = linphone_auth_info_get_ha1((LinphoneAuthInfo*)auth_info); + if (ha1) { + return env->NewStringUTF(ha1); + } else { + return NULL; + } +} + //LinphoneAddress diff --git a/java/common/org/linphone/core/LinphoneAuthInfo.java b/java/common/org/linphone/core/LinphoneAuthInfo.java index 6590dafeb..ed8a84017 100644 --- a/java/common/org/linphone/core/LinphoneAuthInfo.java +++ b/java/common/org/linphone/core/LinphoneAuthInfo.java @@ -63,6 +63,26 @@ public interface LinphoneAuthInfo { * @param realm */ void setRealm(String realm); + /** + * get auth userid has used in authentication header. If null, username is taken for authentication + * @return auth userid + */ + String getUserId(); + /** + * set auth userid has used in authentication header. If null, username is taken for authentication + * + */ + void setUserId(String userid); + /** + * get ha1 + * @return ha1 + */ + String getHa1(); + /** + * set ha1 + */ + void setHa1(String ha1); + } diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index 399b9ec8d..ea325057e 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -49,10 +49,20 @@ abstract public class LinphoneCoreFactory { return theLinphoneCoreFactory; } abstract public LinphoneAuthInfo createAuthInfo(String username,String password, String realm); + /** + * create {@link LinphoneAuthInfo} + * @param username + * @param userid user id as set in auth header + * @param passwd + * @param ha1 + * @param realm + * */ + abstract public LinphoneAuthInfo createAuthInfo(String username, String userid, String passwd, String ha1,String realm); abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, String userConfig,String factoryConfig,Object userdata) throws LinphoneCoreException; abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener) throws LinphoneCoreException; + /** * Constructs a LinphoneAddress object * @param username diff --git a/java/impl/org/linphone/core/LinphoneAuthInfoImpl.java b/java/impl/org/linphone/core/LinphoneAuthInfoImpl.java index 45fd8a45e..dee96fe5d 100644 --- a/java/impl/org/linphone/core/LinphoneAuthInfoImpl.java +++ b/java/impl/org/linphone/core/LinphoneAuthInfoImpl.java @@ -20,36 +20,66 @@ package org.linphone.core; class LinphoneAuthInfoImpl implements LinphoneAuthInfo { protected final long nativePtr; - private native long newLinphoneAuthInfo(String username, String userid, String passwd, String ha1,String realm); + private native long newLinphoneAuthInfo(); private native void delete(long ptr); + private native String getPassword(long ptr); + private native String getRealm(long ptr); + private native String getUsername(long ptr); + private native void setPassword(long ptr, String password); + private native void setRealm(long ptr, String realm); + private native void setUsername(long ptr, String username); + private native void setUserId(long ptr, String username); + private native void setHa1(long ptr, String ha1); + private native String getUserId(long ptr); + private native String getHa1(long ptr); + protected LinphoneAuthInfoImpl(String username,String password, String realm) { - nativePtr = newLinphoneAuthInfo(username,"",password,"",""); + this(username,null,password,null,null); + } + protected LinphoneAuthInfoImpl(String username, String userid, String passwd, String ha1,String realm) { + nativePtr = newLinphoneAuthInfo(); + this.setUsername(username); + this.setUserId(userid); + this.setPassword(passwd); + this.setHa1(ha1); } protected void finalize() throws Throwable { delete(nativePtr); } public String getPassword() { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + return getPassword (nativePtr); } public String getRealm() { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + return getRealm (nativePtr); } public String getUsername() { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + return getUsername (nativePtr); } public void setPassword(String password) { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + setPassword(nativePtr,password); } public void setRealm(String realm) { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + setRealm(nativePtr,realm); } public void setUsername(String username) { - // TODO Auto-generated method stub - throw new RuntimeException("not implemeneted yet"); + setUsername(nativePtr,username); + } + @Override + public String getUserId() { + return getUserId(nativePtr); + } + @Override + public void setUserId(String userid) { + setUserId(nativePtr,userid); + + } + @Override + public String getHa1() { + return getHa1(nativePtr); + } + @Override + public void setHa1(String ha1) { + setHa1(nativePtr,ha1); + } } diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 2e5c4cf59..7b21ecaae 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -166,4 +166,10 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { { return System.getProperty("os.arch").contains("armv7"); } + + @Override + public LinphoneAuthInfo createAuthInfo(String username, String userid, + String passwd, String ha1, String realm) { + return new LinphoneAuthInfoImpl(username,userid,passwd,ha1,realm); + } } From 9a2784e8f6e9f79e450ac2e31aa5c3cb61e79b9e Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 12 Mar 2013 12:49:19 +0100 Subject: [PATCH 020/177] Fix bug in upnp string compare function --- coreapi/upnp.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 596afe333..e8841c2d6 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -111,22 +111,24 @@ void linphone_upnp_config_remove_port_binding(UpnpContext *lupnp, const UpnpPort int linphone_upnp_context_send_remove_port_binding(UpnpContext *lupnp, UpnpPortBinding *port, bool_t retry); int linphone_upnp_context_send_add_port_binding(UpnpContext *lupnp, UpnpPortBinding *port, bool_t retry); - static int linphone_upnp_strncmpi(const char *str1, const char *str2, int len) { int i = 0; char char1, char2; - while(*str1 != '\0' && *str2 != '\0' && i < len) { + while(true) { + if(i >= len) { + return 0; + } char1 = toupper(*str1); char2 = toupper(*str2); - if(char1 != char2) { + if(char1 == '\0' || char2 == '\0' || char1 != char2) { return char1 - char2; } str1++; str2++; - len++; + i++; } - return 0; } + static int linphone_upnp_str_min(const char *str1, const char *str2) { int len1 = strlen(str1); int len2 = strlen(str2); @@ -135,6 +137,7 @@ static int linphone_upnp_str_min(const char *str1, const char *str2) { } return len1; } + char * linphone_upnp_format_device_id(const char *device_id) { char *ret = NULL; char *tmp; From ece0ca2799f86a80ae68972d3c45c9367bc843a0 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 12 Mar 2013 12:59:43 +0100 Subject: [PATCH 021/177] Fix previous commit --- coreapi/upnp.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index e8841c2d6..2dfd7f39c 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -114,19 +114,17 @@ int linphone_upnp_context_send_add_port_binding(UpnpContext *lupnp, UpnpPortBind static int linphone_upnp_strncmpi(const char *str1, const char *str2, int len) { int i = 0; char char1, char2; - while(true) { - if(i >= len) { - return 0; - } + while(i < len) { char1 = toupper(*str1); char2 = toupper(*str2); - if(char1 == '\0' || char2 == '\0' || char1 != char2) { + if(char1 == '\0' || char1 != char2) { return char1 - char2; } str1++; str2++; i++; } + return 0; } static int linphone_upnp_str_min(const char *str1, const char *str2) { From ca0954460e11090b2f7be8e62654fdc5c90da86d Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 12 Mar 2013 21:33:40 +0100 Subject: [PATCH 022/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 06e505707..28c3383b5 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 06e505707c31d11e056f2dad4de3ac617985333b +Subproject commit 28c3383b5e98196ab394f6616f11c195e6759d28 From 74edc29206e423985b9a6748c61905ca3157d79a Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 13 Mar 2013 10:20:41 +0100 Subject: [PATCH 023/177] Add rtp config for disabling upnp for rtp streams --- coreapi/linphonecall.c | 18 +++++++++++------- coreapi/linphonecore.c | 1 + coreapi/private.h | 1 + 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index a7cad386c..dba7381c7 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -484,7 +484,9 @@ LinphoneCall * linphone_call_new_outgoing(struct _LinphoneCore *lc, LinphoneAddr } #ifdef BUILD_UPNP if (linphone_core_get_firewall_policy(call->core) == LinphonePolicyUseUpnp) { - call->upnp_session = linphone_upnp_session_new(call); + if(!lc->rtp_conf.disable_upnp) { + call->upnp_session = linphone_upnp_session_new(call); + } } #endif //BUILD_UPNP call->camera_active=params->has_video; @@ -558,12 +560,14 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro break; case LinphonePolicyUseUpnp: #ifdef BUILD_UPNP - call->upnp_session = linphone_upnp_session_new(call); - if (call->upnp_session != NULL) { - linphone_call_init_media_streams(call); - if (linphone_core_update_upnp_from_remote_media_description(call, sal_call_get_remote_media_description(op))<0) { - /* uPnP port mappings failed, proceed with the call anyway. */ - linphone_call_delete_upnp_session(call); + if(!lc->rtp_conf.disable_upnp) { + call->upnp_session = linphone_upnp_session_new(call); + if (call->upnp_session != NULL) { + linphone_call_init_media_streams(call); + if (linphone_core_update_upnp_from_remote_media_description(call, sal_call_get_remote_media_description(op))<0) { + /* uPnP port mappings failed, proceed with the call anyway. */ + linphone_call_delete_upnp_session(call); + } } } #endif //BUILD_UPNP diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 2bb9fab32..b704347da 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -751,6 +751,7 @@ static void rtp_config_read(LinphoneCore *lc) linphone_core_enable_audio_adaptive_jittcomp(lc, adaptive_jitt_comp_enabled); adaptive_jitt_comp_enabled = lp_config_get_int(lc->config, "rtp", "video_adaptive_jitt_comp_enabled", TRUE); linphone_core_enable_video_adaptive_jittcomp(lc, adaptive_jitt_comp_enabled); + lc->rtp_conf.disable_upnp = lp_config_get_int(lc->config, "rtp", "disable_upnp", FALSE); } static PayloadType * find_payload(RtpProfile *prof, const char *mime_type, int clock_rate, int channels, const char *recv_fmtp){ diff --git a/coreapi/private.h b/coreapi/private.h index 78344ee70..13087dc04 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -459,6 +459,7 @@ typedef struct rtp_config int audio_jitt_comp; /*jitter compensation*/ int video_jitt_comp; /*jitter compensation*/ int nortp_timeout; + int disable_upnp; bool_t rtp_no_xmit_on_audio_mute; /* stop rtp xmit when audio muted */ bool_t audio_adaptive_jitt_comp_enabled; From cfca813d06ac477cc7f7f6ad6c91a34daae8dcde Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 13 Mar 2013 12:05:45 +0100 Subject: [PATCH 024/177] Expand row in calllog --- gtk/calllogs.c | 46 ++++++++++++++++++++++++++-------------------- gtk/friendlist.c | 3 ++- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 9e703a8ff..45a616119 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -22,7 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static void fill_renderers(GtkTreeView *v){ GtkTreeViewColumn *c; - GtkCellRenderer *r=gtk_cell_renderer_pixbuf_new (); + GtkCellRenderer *r; + r=gtk_cell_renderer_pixbuf_new(); c=gtk_tree_view_column_new_with_attributes("icon",r,"pixbuf",0,NULL); gtk_tree_view_append_column (v,c); @@ -34,27 +35,27 @@ static void fill_renderers(GtkTreeView *v){ void linphone_gtk_call_log_update(GtkWidget *w){ GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")); - GtkListStore *store; + GtkTreeStore *store; const MSList *logs; - store=(GtkListStore*)gtk_tree_view_get_model(v); + store=(GtkTreeStore*)gtk_tree_view_get_model(v); if (store==NULL){ - store=gtk_list_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER); + store=gtk_tree_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER); gtk_tree_view_set_model(v,GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"))); // gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), // create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); } - gtk_list_store_clear (store); + gtk_tree_store_clear (store); for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){ LinphoneCallLog *cl=(LinphoneCallLog*)logs->data; - GtkTreeIter iter; + GtkTreeIter iter, iter2; LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); char *addr= linphone_address_as_string_uri_only (la); const char *display; - gchar *logtxt, *minutes, *seconds; + gchar *logtxt, *headtxt, *minutes, *seconds; gchar quality[20]; const char *status=NULL; gchar *start_date=NULL; @@ -99,28 +100,33 @@ void linphone_gtk_call_log_update(GtkWidget *w){ seconds=g_markup_printf_escaped( ngettext("%i second", "%i seconds", duration%60), duration%60); - if (status==NULL) logtxt=g_markup_printf_escaped( - _("%s\t%s\t" - "Quality: %s\n%s\t%s %s\t"), - display, addr, quality , - start_date ? start_date : "", minutes, seconds); - else logtxt=g_markup_printf_escaped( - _("%s\t%s\t" - "\n%s\t%s"), - display, addr, - start_date ? start_date : "", status); + if (status==NULL) { + headtxt=g_markup_printf_escaped(_("%s\t%s"),display,start_date ? start_date : ""); + logtxt=g_markup_printf_escaped( + _("%s\t" + "Quality: %s\n%s\t%s\t"), + addr, quality, minutes, seconds); + } else { + headtxt=g_markup_printf_escaped(_("%s\t%s"),display,start_date ? start_date : ""); + logtxt=g_markup_printf_escaped( + _("%s\t" + "\n%s"),addr, status); + } g_free(minutes); g_free(seconds); if (start_date) g_free(start_date); - gtk_list_store_append (store,&iter); + gtk_tree_store_append (store,&iter,NULL); GdkPixbuf *incoming = create_pixbuf("call_status_incoming.png"); GdkPixbuf *outgoing = create_pixbuf("call_status_outgoing.png"); - gtk_list_store_set (store,&iter, + gtk_tree_store_set (store,&iter, 0, linphone_call_log_get_dir(cl)==LinphoneCallOutgoing ? outgoing : incoming, - 1, logtxt,2,la,-1); + 1, headtxt,2,la,-1); + gtk_tree_store_append (store,&iter2,&iter); + gtk_tree_store_set (store,&iter2,1,logtxt,2,la,-1); ms_free(addr); g_free(logtxt); + g_free(headtxt); } } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index fc2c2f4b5..be6a4c3ce 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -581,12 +581,13 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ gtk_tree_view_column_set_max_width(column,60); gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column); + /* Call column*/ renderer = gtk_cell_renderer_pixbuf_new(); column = gtk_tree_view_column_new_with_attributes (_("Call"),renderer,"pixbuf",FRIEND_CALL,NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column); - /* chat column*/ + /* Chat column*/ renderer = gtk_cell_renderer_pixbuf_new(); column = gtk_tree_view_column_new_with_attributes (_("Chat"),renderer,"pixbuf",FRIEND_CHAT,NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column); From bee6752f6e6c188481521d74dbd0dfc0bd86b5aa Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 14 Mar 2013 13:27:53 +0100 Subject: [PATCH 025/177] add automatic tone user indications --- coreapi/callbacks.c | 8 +++-- coreapi/conference.c | 4 +-- coreapi/ec-calibrator.c | 11 ++++--- coreapi/linphonecall.c | 3 +- coreapi/linphonecore.c | 69 ++++++++++++++++++++++++++++++++++++----- coreapi/lpconfig.c | 5 ++- coreapi/misc.c | 3 ++ coreapi/private.h | 12 +++++++ mediastreamer2 | 2 +- 9 files changed, 98 insertions(+), 19 deletions(-) diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index dd5ab7edc..8a6ea631c 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -151,7 +151,7 @@ void linphone_core_update_streams(LinphoneCore *lc, LinphoneCall *call, SalMedia bool_t send_ringbacktone=FALSE; if (call->audiostream==NULL){ - /*this happens after pausing the call locally. The streams is destroyed and then we wait the 200Ok to recreate it*/ + /*this happens after pausing the call locally. The streams are destroyed and then we wait the 200Ok to recreate them*/ linphone_call_init_media_streams (call); } if (call->state==LinphoneCallIncomingEarlyMedia && linphone_core_get_remote_ringback_tone (lc)!=NULL){ @@ -163,6 +163,9 @@ void linphone_core_update_streams(LinphoneCore *lc, LinphoneCall *call, SalMedia } linphone_call_start_media_streams(call,all_muted,send_ringbacktone); } + if (call->state==LinphoneCallPausing && call->paused_by_app && ms_list_size(lc->calls)==1){ + linphone_core_play_named_tone(lc,LinphoneToneCallOnHold); + } } #if 0 static bool_t is_duplicate_call(LinphoneCore *lc, const LinphoneAddress *from, const LinphoneAddress *to){ @@ -654,6 +657,7 @@ static void call_failure(SalOp *op, SalError error, SalReason sr, const char *de } else if (sr == SalReasonBusy) { call->reason=LinphoneReasonBusy; linphone_call_set_state(call,LinphoneCallError,"User is busy."); + linphone_core_play_named_tone(lc,LinphoneToneBusy); } else { linphone_call_set_state(call,LinphoneCallError,msg); } @@ -809,7 +813,7 @@ static void refer_received(Sal *sal, SalOp *op, const char *referto){ } if (call->state!=LinphoneCallPaused){ ms_message("Automatically pausing current call to accept transfer."); - linphone_core_pause_call(lc,call); + _linphone_core_pause_call(lc,call); call->was_automatically_paused=TRUE; /*then we will start the refered when the pause is accepted, in order to serialize transactions within the dialog. * Indeed we need to avoid to send a NOTIFY to inform about of state of the refered call while the pause isn't completed. diff --git a/coreapi/conference.c b/coreapi/conference.c index 16be62613..c9d51b151 100644 --- a/coreapi/conference.c +++ b/coreapi/conference.c @@ -240,7 +240,7 @@ static int remove_from_conference(LinphoneCore *lc, LinphoneCall *call, bool_t a err=linphone_core_update_call(lc,call,&call->params); } else{ ms_message("Pausing call to actually remove from conference"); - err=linphone_core_pause_call(lc,call); + err=_linphone_core_pause_call(lc,call); } return err; @@ -339,7 +339,7 @@ int linphone_core_enter_conference(LinphoneCore *lc){ return -1; } if (lc->current_call != NULL) { - linphone_core_pause_call(lc, lc->current_call); + _linphone_core_pause_call(lc, lc->current_call); } LinphoneConference *conf=&lc->conf_ctx; if (conf->local_participant==NULL) add_local_endpoint(conf,lc); diff --git a/coreapi/ec-calibrator.c b/coreapi/ec-calibrator.c index 8efbabb1b..e19559fc4 100644 --- a/coreapi/ec-calibrator.c +++ b/coreapi/ec-calibrator.c @@ -133,6 +133,9 @@ static void on_tone_received(void *data, MSFilter *f, unsigned int event_id, voi static void ecc_play_tones(EcCalibrator *ecc){ MSDtmfGenCustomTone tone; MSToneDetectorDef expected_tone; + + memset(&tone,0,sizeof(tone)); + memset(&expected_tone,0,sizeof(expected_tone)); ms_filter_set_notify_callback(ecc->det,on_tone_received,ecc); @@ -161,7 +164,7 @@ static void ecc_play_tones(EcCalibrator *ecc){ /*play an initial tone to startup the audio playback/capture*/ - tone.frequency=140; + tone.frequencies[0]=140; tone.duration=1000; tone.amplitude=0.5; @@ -172,17 +175,17 @@ static void ecc_play_tones(EcCalibrator *ecc){ /* play the three tones*/ - tone.frequency=2000; + tone.frequencies[0]=2000; tone.duration=100; ms_filter_call_method(ecc->gen,MS_DTMF_GEN_PLAY_CUSTOM,&tone); ms_usleep(300000); - tone.frequency=2300; + tone.frequencies[0]=2300; tone.duration=100; ms_filter_call_method(ecc->gen,MS_DTMF_GEN_PLAY_CUSTOM,&tone); ms_usleep(300000); - tone.frequency=2500; + tone.frequencies[0]=2500; tone.duration=100; ms_filter_call_method(ecc->gen,MS_DTMF_GEN_PLAY_CUSTOM,&tone); ms_sleep(1); diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index dba7381c7..6c01c65bd 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -2114,7 +2114,7 @@ static void linphone_core_disconnected(LinphoneCore *lc, LinphoneCall *call){ if (from) { snprintf(temp,sizeof(temp),"Remote end %s seems to have disconnected, the call is going to be closed.",from); - free(from); + ms_free(from); } else { @@ -2123,6 +2123,7 @@ static void linphone_core_disconnected(LinphoneCore *lc, LinphoneCall *call){ if (lc->vtable.display_warning!=NULL) lc->vtable.display_warning(lc,temp); linphone_core_terminate_call(lc,call); + linphone_core_play_named_tone(lc,LinphoneToneCallFailed); } static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){ diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index b704347da..a2c910064 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2118,9 +2118,10 @@ void linphone_core_iterate(LinphoneCore *lc){ ms_message("incoming call ringing for %i seconds",elapsed); if (elapsed>lc->sip_conf.inc_timeout){ ms_message("incoming call timeout (%i)",lc->sip_conf.inc_timeout); + LinphoneReason decline_reason=lc->current_call ? LinphoneReasonBusy : LinphoneReasonDeclined; call->log->status=LinphoneCallMissed; call->reason=LinphoneReasonNotAnswered; - linphone_core_terminate_call(lc,call); + linphone_core_decline_call(lc,call,decline_reason); } } if (lc->sip_conf.in_call_timeout > 0 && elapsed>lc->sip_conf.in_call_timeout) { @@ -2754,7 +2755,7 @@ void linphone_core_notify_incoming_call(LinphoneCore *lc, LinphoneCall *call){ }else{ /* else play a tone within the context of the current call */ call->ringing_beep=TRUE; - linphone_core_play_tone(lc); + linphone_core_play_named_tone(lc,LinphoneToneCallWaiting); } linphone_call_set_state(call,LinphoneCallIncomingReceived,"Incoming call"); @@ -3305,8 +3306,7 @@ bool_t linphone_core_in_call(const LinphoneCore *lc){ * * @ingroup call_control **/ -LinphoneCall *linphone_core_get_current_call(const LinphoneCore *lc) -{ +LinphoneCall *linphone_core_get_current_call(const LinphoneCore *lc){ return lc->current_call; } @@ -3316,7 +3316,14 @@ LinphoneCall *linphone_core_get_current_call(const LinphoneCore *lc) * * @ingroup call_control **/ -int linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call) +int linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call){ + int err=_linphone_core_pause_call(lc,call); + if (err==0) call->paused_by_app=TRUE; + return err; +} + +/* Internal version that does not play tone indication*/ +int _linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call) { const char *subject=NULL; @@ -3354,6 +3361,7 @@ int linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call) lc->vtable.display_status(lc,_("Pausing the current call...")); if (call->audiostream || call->videostream) linphone_call_stop_media_streams (call); + call->paused_by_app=FALSE; return 0; } @@ -3367,7 +3375,7 @@ int linphone_core_pause_all_calls(LinphoneCore *lc){ LinphoneCall *call=(LinphoneCall *)elem->data; LinphoneCallState cs=linphone_call_get_state(call); if (cs==LinphoneCallStreamsRunning || cs==LinphoneCallPausedByRemote){ - linphone_core_pause_call(lc,call); + _linphone_core_pause_call(lc,call); } } return 0; @@ -3382,7 +3390,11 @@ void linphone_core_preempt_sound_resources(LinphoneCore *lc){ current_call=linphone_core_get_current_call(lc); if(current_call != NULL){ ms_message("Pausing automatically the current call."); - linphone_core_pause_call(lc,current_call); + _linphone_core_pause_call(lc,current_call); + } + if (lc->ringstream){ + ring_stop(lc->ringstream); + lc->ringstream=NULL; } } @@ -4905,13 +4917,54 @@ void linphone_core_play_tone(LinphoneCore *lc){ ms_error("No dtmf generator at this time !"); return; } + memset(&def,0,sizeof(def)); def.duration=300; - def.frequency=500; + def.frequencies[0]=500; def.amplitude=1; def.interval=2000; ms_filter_call_method(f, MS_DTMF_GEN_PLAY_CUSTOM,&def); } +void linphone_core_play_named_tone(LinphoneCore *lc, LinphoneToneID toneid){ + if (linphone_core_tone_indications_enabled(lc)){ + MSFilter *f=get_dtmf_gen(lc); + MSDtmfGenCustomTone def; + if (f==NULL){ + ms_error("No dtmf generator at this time !"); + return; + } + memset(&def,0,sizeof(def)); + def.amplitude=1; + /*these are french tones, excepted the failed one, which is USA congestion tone (does not exist in France)*/ + switch(toneid){ + case LinphoneToneCallOnHold: + case LinphoneToneCallWaiting: + def.duration=300; + def.frequencies[0]=440; + def.interval=2000; + break; + case LinphoneToneBusy: + def.duration=500; + def.frequencies[0]=440; + def.interval=500; + def.repeat_count=3; + break; + case LinphoneToneCallFailed: + def.duration=250; + def.frequencies[0]=480; + def.frequencies[0]=620; + def.interval=250; + def.repeat_count=3; + + break; + default: + ms_warning("Unhandled tone id."); + } + if (def.duration>0) + ms_filter_call_method(f, MS_DTMF_GEN_PLAY_CUSTOM,&def); + } +} + /** * @ingroup media_parameters * diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 4608beecf..db4e5de5c 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -190,6 +190,7 @@ void lp_config_parse(LpConfig *lpconfig, FILE *file){ if (pos2-pos1>=0){ /* found a pair key,value */ + if (cur!=NULL){ LpItem *item=lp_section_find_item(cur,key); if (item==NULL){ @@ -198,7 +199,7 @@ void lp_config_parse(LpConfig *lpconfig, FILE *file){ ms_free(item->value); item->value=strdup(pos1); } - /*printf("Found %s %s={%s}\n",cur->name,key,pos1);*/ + /*ms_message("Found %s=%s",key,pos1);*/ }else{ ms_warning("found key,item but no sections"); } @@ -212,6 +213,7 @@ void lp_config_parse(LpConfig *lpconfig, FILE *file){ LpConfig * lp_config_new(const char *filename){ LpConfig *lpconfig=lp_new0(LpConfig,1); if (filename!=NULL){ + ms_message("Using (r/w) config information from %s", filename); lpconfig->filename=ortp_strdup(filename); lpconfig->file=fopen(filename,"rw"); if (lpconfig->file!=NULL){ @@ -237,6 +239,7 @@ LpConfig * lp_config_new(const char *filename){ int lp_config_read_file(LpConfig *lpconfig, const char *filename){ FILE* f=fopen(filename,"r"); if (f!=NULL){ + ms_message("Reading config information from %s", filename); lp_config_parse(lpconfig,f); fclose(f); return 0; diff --git a/coreapi/misc.c b/coreapi/misc.c index e84c8cce9..d101bb2c4 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1005,6 +1005,9 @@ unsigned int linphone_core_get_audio_features(LinphoneCore *lc){ return ret; } +bool_t linphone_core_tone_indications_enabled(LinphoneCore*lc){ + return lp_config_get_int(lc->config,"sound","tone_indications",1); +} #ifdef HAVE_GETIFADDRS diff --git a/coreapi/private.h b/coreapi/private.h index 13087dc04..5e265c616 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -211,6 +211,7 @@ struct _LinphoneCall bool_t was_automatically_paused; bool_t ping_replied; bool_t record_active; + bool_t paused_by_app; }; @@ -678,6 +679,8 @@ void ec_calibrator_destroy(EcCalibrator *ecc); void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapsed); void linphone_core_preempt_sound_resources(LinphoneCore *lc); +int _linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call); + /*conferencing subsystem*/ void _post_configure_audio_stream(AudioStream *st, LinphoneCore *lc, bool_t muted); /* When a conference participant pause the conference he may send a music. @@ -718,6 +721,15 @@ void linphone_chat_message_store_state(LinphoneChatMessage *msg); void linphone_core_message_storage_init(LinphoneCore *lc); void linphone_core_message_storage_close(LinphoneCore *lc); +typedef enum _LinphoneToneID{ + LinphoneToneBusy, + LinphoneToneCallWaiting, + LinphoneToneCallOnHold, + LinphoneToneCallFailed +}LinphoneToneID; +void linphone_core_play_named_tone(LinphoneCore *lc, LinphoneToneID id); +bool_t linphone_core_tone_indications_enabled(LinphoneCore*lc); + #ifdef __cplusplus } #endif diff --git a/mediastreamer2 b/mediastreamer2 index 28c3383b5..d1d3e1af5 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 28c3383b5e98196ab394f6616f11c195e6759d28 +Subproject commit d1d3e1af51ab26ecb9808d6f83629e661c67af5f From f6038bf3ef76588a8b71ddfb0e453364b2de89ba Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 15 Mar 2013 10:19:41 +0100 Subject: [PATCH 026/177] Fix bug with the keywordcmp macro. This macro was supposed to be passed a string literal as first argument but was used with a string pointer sometimes. --- coreapi/sal_eXosip2_sdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/sal_eXosip2_sdp.c b/coreapi/sal_eXosip2_sdp.c index 9297077e6..debd8550f 100644 --- a/coreapi/sal_eXosip2_sdp.c +++ b/coreapi/sal_eXosip2_sdp.c @@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "sal.h" #include -#define keywordcmp(key,b) strncmp(key,b,sizeof(key)) +#define keywordcmp(key,b) strcmp(key,b) #ifdef FOR_LATER From 2566366990a8531763576a222617c35215c32d3f Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 15 Mar 2013 11:28:03 +0100 Subject: [PATCH 027/177] add libiconv patch and document it. --- README.macos | 16 ++++++++++++++++ build/macos/libiconv-macos.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 build/macos/libiconv-macos.patch diff --git a/README.macos b/README.macos index bb78575bf..dd39c2f6e 100644 --- a/README.macos +++ b/README.macos @@ -99,4 +99,20 @@ For a better appearance, you can install the gtk-quartz-engine (a gtk theme) tha Generate a new bundle to have it included. +libiconv hack +************* + +The Makefile.am rules used to generate the bundle fetch a libiconv.2.dylib from a linphone download page. +This library adds some additional symbols so that dependencies requiring the iconv from /usr/lib and the ones requiring from the bundle are both satisfied. +In case this library needs to generated, here are the commands: + $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz + $ cd libiconv-1.14 + $ patch -p1 < ../linphone/build/macos/libiconv-macos.patch + $ ./configure --prefix=/opt/local --disable-static 'CFLAGS=-arch i386 -arch x86_64 -mmacosx-version-min=10.5' 'LDFLAGS=-arch i386 -arch x86_64 -mmacosx-version-min=10.5' CXXFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" && make + $ make install DESTDIR=/tmp + +The resulted library can be found in /tmp/opt/local/lib + + + diff --git a/build/macos/libiconv-macos.patch b/build/macos/libiconv-macos.patch new file mode 100644 index 000000000..e0654843f --- /dev/null +++ b/build/macos/libiconv-macos.patch @@ -0,0 +1,26 @@ +--- libiconv-1.14.orig/lib/iconv.c 2013-03-14 16:30:50.000000000 +0100 ++++ libiconv-1.14/lib/iconv.c 2013-03-15 10:24:38.000000000 +0100 +@@ -607,4 +607,23 @@ + strong_alias (libiconv_close, iconv_close) + #endif + ++#undef iconv_open ++#undef iconv ++#undef iconv_close ++ ++LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode){ ++ return libiconv_open(tocode,fromcode); ++} ++ ++LIBICONV_DLL_EXPORTED size_t iconv (iconv_t icd, ++ ICONV_CONST char* * inbuf, size_t *inbytesleft, ++ char* * outbuf, size_t *outbytesleft){ ++ return libiconv(icd,inbuf,inbytesleft,outbuf,outbytesleft); ++} ++ ++LIBICONV_DLL_EXPORTED int iconv_close (iconv_t icd){ ++ return libiconv_close(icd); ++} ++ ++ + #endif From aefc88365630f314ebaa5409dafa62d88e1a0771 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 15 Mar 2013 14:16:23 +0100 Subject: [PATCH 028/177] Check upnp version --- configure.ac | 7 ++++++- mediastreamer2 | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index ae2d59386..4957eeb58 100644 --- a/configure.ac +++ b/configure.ac @@ -183,7 +183,12 @@ AC_ARG_ENABLE(upnp, ) if test "$build_upnp" != "false" ; then - PKG_CHECK_MODULES([LIBUPNP], [libupnp], [build_upnp=true], + PKG_CHECK_MODULES([LIBUPNP], [libupnp], + [if pkg-config --atleast-version=1.6 "libupnp < 1.7"; then + build_upnp=true + else + AC_MSG_ERROR([libupnp >= 1.6 < 1.5 required.]) + fi], [if test "$build_upnp" == "true" ; then AC_MSG_ERROR([libupnp not found.]) else diff --git a/mediastreamer2 b/mediastreamer2 index d1d3e1af5..f223705f2 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit d1d3e1af51ab26ecb9808d6f83629e661c67af5f +Subproject commit f223705f2853e62f0fb5340b994cd40665b9e854 From f9dcbd6065da2c3e3e658ddef1c3ad581aaff6df Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 15 Mar 2013 14:31:12 +0100 Subject: [PATCH 029/177] Add upnp notice in README --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 05b0b1dcb..658f07ae0 100644 --- a/README +++ b/README @@ -16,7 +16,7 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. - libswscale (part of ffmpeg too) for better scaling performance - theora (optional) + if you want uPnP support: - - libupnp + - libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch)) with their corresponding -dev or -devel package if you don't use source packages. From b26e0650d26f31f0345211297e36390981192fac Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 15 Mar 2013 15:52:03 +0100 Subject: [PATCH 030/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index f223705f2..07824fcf3 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f223705f2853e62f0fb5340b994cd40665b9e854 +Subproject commit 07824fcf3879d265c59beaf970d833b5859f3691 From 2048bac55a33458b4c0a85c9b79f5679045ae252 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 15 Mar 2013 16:02:35 +0100 Subject: [PATCH 031/177] Do not create ICE check list for non-active streams. It may lead to some crashes if a check list exists for a non-active stream. --- coreapi/misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index d101bb2c4..35a58e200 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -876,7 +876,7 @@ void linphone_core_update_ice_from_remote_media_description(LinphoneCall *call, for (i = 0; i < md->n_total_streams; i++) { const SalStreamDescription *stream = &md->streams[i]; IceCheckList *cl = ice_session_check_list(call->ice_session, i); - if (cl == NULL) { + if ((cl == NULL) && (i < md->n_active_streams)) { cl = ice_check_list_new(); ice_session_add_check_list(call->ice_session, cl); switch (stream->type) { From 71f31347fcddaa5f0e9e329a7320efe60bc7c281 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Mon, 18 Mar 2013 15:58:05 +0100 Subject: [PATCH 032/177] Send ZRTP hello hash in SIP SDP. --- coreapi/linphonecall.c | 41 ++++++++++++++++++++++++++++++--------- coreapi/linphonecore.c | 8 +++++++- coreapi/offeranswer.c | 1 + coreapi/sal.h | 3 ++- coreapi/sal_eXosip2_sdp.c | 28 +++++++++++++++++++++++--- mediastreamer2 | 2 +- oRTP | 2 +- 7 files changed, 69 insertions(+), 16 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 6c01c65bd..e9640701f 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -254,6 +254,14 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall * l=ms_list_append(l,pt); md->streams[0].payloads=l; + // if ZRTP is enabled, put the hello hash into the audiostream's desc + if (call->audiostream && call->audiostream->ms.zrtp_context!=NULL){ + ortp_zrtp_get_hello_hash(call->audiostream->ms.zrtp_context, + md->streams[0].zrtp_hello_hash, + sizeof(md->streams[0].zrtp_hello_hash)); + ms_message("Audio stream zrtp hash: %s", md->streams[0].zrtp_hello_hash); + } + if (call->params.has_video){ md->n_active_streams++; md->streams[1].rtp_port=call->video_port; @@ -262,6 +270,13 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall * md->streams[1].type=SalVideo; l=make_codec_list(lc,lc->codecs_conf.video_codecs,0,NULL,-1); md->streams[1].payloads=l; + // if ZRTP is enabled, put the hello hash into the audiostream's desc + if (call->videostream->ms.zrtp_context!=NULL){ + ortp_zrtp_get_hello_hash(call->videostream->ms.zrtp_context, + md->streams[1].zrtp_hello_hash, + sizeof(md->streams[1].zrtp_hello_hash)); + ms_message("Video stream zrtp hash: %s", md->streams[1].zrtp_hello_hash); + } } if (md->n_total_streams < md->n_active_streams) md->n_total_streams = md->n_active_streams; @@ -1294,6 +1309,20 @@ void linphone_call_init_video_stream(LinphoneCall *call){ void linphone_call_init_media_streams(LinphoneCall *call){ linphone_call_init_audio_stream(call); linphone_call_init_video_stream(call); + + // moved from linphone_call_start_media_streams, because ZRTP needs to be + // at least partially initialized so that the SDP can contain 'zrtp-hash' + if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) { + OrtpZrtpParams params; + /*will be set later when zrtp is activated*/ + call->current_params.media_encryption=LinphoneMediaEncryptionNone; + + params.zid_file=call->core->zrtp_secrets_cache; + audio_stream_enable_zrtp(call->audiostream,¶ms); + } else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){ + call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ? + LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone; + } } @@ -1736,16 +1765,10 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut call->playing_ringbacktone=send_ringbacktone; call->up_bw=linphone_core_get_upload_bandwidth(lc); + // ZRTP was initialized in linphone_call_init_media_streams with a + // partially iniitalized RtpSession, and now needs to get an update if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) { - OrtpZrtpParams params; - /*will be set later when zrtp is activated*/ - call->current_params.media_encryption=LinphoneMediaEncryptionNone; - - params.zid_file=lc->zrtp_secrets_cache; - audio_stream_enable_zrtp(call->audiostream,¶ms); - }else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){ - call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ? - LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone; + ortp_zrtp_start_engine(call->audiostream->ms.zrtp_context,call->audiostream->ms.session); } /*also reflect the change if the "wished" params, in order to avoid to propose SAVP or video again diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index a2c910064..431d3e37c 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -3125,8 +3125,14 @@ int linphone_core_accept_call_with_params(LinphoneCore *lc, LinphoneCall *call, sal_call_set_local_media_description(call->op,call->localdesc); } - if (call->audiostream==NULL) + if (call->audiostream==NULL){ linphone_call_init_media_streams(call); + // the local media description must be regenerated after the audiostream + // is initialized, otherwise the ZRTP hello hash will not be available + linphone_call_make_local_media_description(lc,call); + sal_call_set_local_media_description(call->op,call->localdesc); + } + if (!was_ringing && call->audiostream->ms.ticker==NULL){ audio_stream_prepare_sound(call->audiostream,lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard); } diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c index 9823c24a6..eefe34d45 100644 --- a/coreapi/offeranswer.c +++ b/coreapi/offeranswer.c @@ -261,6 +261,7 @@ static void initiate_incoming(const SalStreamDescription *local_cap, result->ice_completed = local_cap->ice_completed; memcpy(result->ice_candidates, local_cap->ice_candidates, sizeof(result->ice_candidates)); memcpy(result->ice_remote_candidates, local_cap->ice_remote_candidates, sizeof(result->ice_remote_candidates)); + memcpy(result->zrtp_hello_hash,local_cap->zrtp_hello_hash, sizeof(result->zrtp_hello_hash)); } /** diff --git a/coreapi/sal.h b/coreapi/sal.h index 25d8d20bc..5f38c15ab 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -140,7 +140,7 @@ typedef struct SalIceRemoteCandidate { } SalIceRemoteCandidate; #define SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES 2 - +#define SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH 128 #define SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN 256 #define SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN 256 @@ -172,6 +172,7 @@ typedef struct SalStreamDescription{ SalIceRemoteCandidate ice_remote_candidates[SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES]; char ice_ufrag[SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN]; char ice_pwd[SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN]; + char zrtp_hello_hash[SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH]; bool_t ice_mismatch; bool_t ice_completed; } SalStreamDescription; diff --git a/coreapi/sal_eXosip2_sdp.c b/coreapi/sal_eXosip2_sdp.c index debd8550f..139446448 100644 --- a/coreapi/sal_eXosip2_sdp.c +++ b/coreapi/sal_eXosip2_sdp.c @@ -108,6 +108,17 @@ static int _sdp_message_get_a_ptime(sdp_message_t *sdp, int mline){ return 0; } +static char * _sdp_message_get_a_zrtp_hash(sdp_message_t *sdp, int mline){ + int i; + sdp_attribute_t *attr; + for (i=0;(attr=sdp_message_attribute_get(sdp,mline,i))!=NULL;i++){ + if (keywordcmp("zrtp-hash",attr->a_att_field)==0){ + return attr->a_att_value; + } + } + return NULL; +} + static int _sdp_message_get_mline_dir(sdp_message_t *sdp, int mline){ int i; sdp_attribute_t *attr; @@ -337,6 +348,11 @@ static void add_line(sdp_message_t *msg, int lineno, const SalStreamDescription int_2char(desc->bandwidth)); if (desc->ptime>0) sdp_message_a_attribute_add(msg,lineno,osip_strdup("ptime"), int_2char(desc->ptime)); + + // if the ZRTP hello hash is available, create an a attribute for it + if (desc->zrtp_hello_hash[0]) + sdp_message_a_attribute_add(msg,lineno,osip_strdup("zrtp-hash"), osip_strdup(desc->zrtp_hello_hash)); + strip_well_known_rtpmaps=ms_list_size(desc->payloads)>5; if (desc->payloads){ for(elem=desc->payloads;elem!=NULL;elem=elem->next){ @@ -433,7 +449,7 @@ static int payload_type_fill_from_rtpmap(PayloadType *pt, const char *rtpmap){ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ int i,j; - const char *mtype,*proto,*rtp_port,*rtp_addr,*number; + const char *mtype,*proto,*rtp_port,*rtp_addr,*number,*zrtp_info; const char *sess; sdp_bandwidth_t *sbw=NULL; sdp_attribute_t *attr; @@ -490,7 +506,12 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ stream->rtp_port=atoi(rtp_port); if (stream->rtp_port > 0) desc->n_active_streams++; - + + // if the SDP contains a zrtp-hash, add it to the StreamDesc + zrtp_info = _sdp_message_get_a_zrtp_hash(msg, i); + if (zrtp_info != NULL) + strncpy(stream->zrtp_hello_hash, zrtp_info, sizeof(stream->zrtp_hello_hash)); + stream->ptime=_sdp_message_get_a_ptime(msg,i); if (strcasecmp("audio", mtype) == 0){ stream->type=SalAudio; @@ -528,7 +549,8 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ for (j = 0; ((attr = sdp_message_attribute_get(msg, i, j)) != NULL); j++) { if ((keywordcmp("rtcp", attr->a_att_field) == 0) && (attr->a_att_value != NULL)) { char tmp[256]; - int nb = sscanf(attr->a_att_value, "%d IN IP4 %s", &stream->rtcp_port, tmp); + // added bounds check + int nb = sscanf(attr->a_att_value, "%d IN IP4 %256s", &stream->rtcp_port, tmp); if (nb == 1) { /* SDP rtcp attribute only contains the port */ } else if (nb == 2) { diff --git a/mediastreamer2 b/mediastreamer2 index 07824fcf3..45c9c6516 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 07824fcf3879d265c59beaf970d833b5859f3691 +Subproject commit 45c9c65168a9912bd2aa97344b396771ff1cdaf0 diff --git a/oRTP b/oRTP index 20b527144..c702c0ea0 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 20b527144f9850dd9065d96db7a20244e8a8b227 +Subproject commit c702c0ea0e66bbe1f27c79690003d9748b01560f From 87de2d8391012ee540e56fae16c9d69ef14d347b Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 19 Mar 2013 12:19:01 +0100 Subject: [PATCH 033/177] fix mis-use of update_call in linphonec. --- console/commands.c | 16 +++++++++------- coreapi/linphonecore.c | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/console/commands.c b/console/commands.c index 22b09a5a6..67b2446f4 100644 --- a/console/commands.c +++ b/console/commands.c @@ -2510,13 +2510,15 @@ static int lpc_cmd_camera(LinphoneCore *lc, char *args){ const LinphoneCallParams *cp=linphone_call_get_current_params (call); if (args){ linphone_call_enable_camera(call,activated); - if ((activated && !linphone_call_params_video_enabled (cp))){ - /*update the call to add the video stream*/ - LinphoneCallParams *ncp=linphone_call_params_copy(cp); - linphone_call_params_enable_video(ncp,TRUE); - linphone_core_update_call(lc,call,ncp); - linphone_call_params_destroy (ncp); - linphonec_out("Trying to bring up video stream...\n"); + if (linphone_call_get_state(call)==LinphoneCallStreamsRunning){ + if ((activated && !linphone_call_params_video_enabled (cp))){ + /*update the call to add the video stream*/ + LinphoneCallParams *ncp=linphone_call_params_copy(cp); + linphone_call_params_enable_video(ncp,TRUE); + linphone_core_update_call(lc,call,ncp); + linphone_call_params_destroy (ncp); + linphonec_out("Trying to bring up video stream...\n"); + } } } if (linphone_call_camera_enabled (call)) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 431d3e37c..93d0b8b80 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4711,7 +4711,7 @@ int linphone_core_get_device_rotation(LinphoneCore *lc ) { * **/ void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation) { -ms_message("%s : rotation=%d\n", __FUNCTION__, rotation); + ms_message("%s : rotation=%d\n", __FUNCTION__, rotation); lc->device_rotation = rotation; #ifdef VIDEO_ENABLED LinphoneCall *call=linphone_core_get_current_call(lc); From b6b0368a00d888ef0c114e63e5c29a0cdd6c2fb0 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 20 Mar 2013 12:36:12 +0100 Subject: [PATCH 034/177] add number of unread messages --- coreapi/chat.c | 1 + coreapi/linphonecore.h | 3 +- coreapi/message_storage.c | 48 +++++++++++++++++--- gtk/calllogs.c | 18 ++++++++ gtk/chat.c | 47 +++++++++++++++----- gtk/friendlist.c | 93 +++++++++++++++++++++++---------------- gtk/linphone.h | 2 +- 7 files changed, 155 insertions(+), 57 deletions(-) diff --git a/coreapi/chat.c b/coreapi/chat.c index 69893217d..c12bb3398 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -436,6 +436,7 @@ void linphone_chat_message_destroy(LinphoneChatMessage* msg) { if (msg->message) ms_free(msg->message); if (msg->external_body_url) ms_free(msg->external_body_url); if (msg->from) linphone_address_destroy(msg->from); + if (msg->to) linphone_address_destroy(msg->to); if (msg->custom_headers) sal_custom_header_free(msg->custom_headers); ms_free(msg); } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index de8a05afa..ab8836a5d 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -678,6 +678,7 @@ void linphone_chat_room_send_message2(LinphoneChatRoom *cr, LinphoneChatMessage* MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message); void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr); void linphone_chat_room_delete_history(LinphoneChatRoom *cr); +int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr); LinphoneCore* linphone_chat_room_get_lc(LinphoneChatRoom *cr); void linphone_chat_room_set_user_data(LinphoneChatRoom *cr, void * ud); void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr); @@ -685,6 +686,7 @@ void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr); LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessage* message); const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state); LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* message); +void linphone_chat_message_destroy(LinphoneChatMessage* msg); void linphone_chat_message_set_from(LinphoneChatMessage* message, const LinphoneAddress* from); const LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message); const LinphoneAddress* linphone_chat_message_get_to(const LinphoneChatMessage* message); @@ -1430,7 +1432,6 @@ void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp); int linphone_core_get_video_dscp(const LinphoneCore *lc); - #ifdef __cplusplus } #endif diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index c62fa1ddb..0c41c20d0 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -78,11 +78,12 @@ static int callback(void *data, int argc, char **argv, char **colName){ } void linphone_sql_request_message(sqlite3 *db,const char *stmt,LinphoneChatRoom *cr){ - char* errmsg; + char* errmsg=NULL; int ret; ret=sqlite3_exec(db,stmt,callback,cr,&errmsg); if(ret != SQLITE_OK) { printf("Error in creation: %s.\n", errmsg); + sqlite3_free(errmsg); } } @@ -99,7 +100,7 @@ void linphone_sql_request(sqlite3* db,const char *stmt){ void linphone_chat_message_store(LinphoneChatMessage *msg){ LinphoneCore *lc=linphone_chat_room_get_lc(msg->chat_room); if (lc->db){ - const char *peer=msg->chat_room->peer; + char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(msg->chat_room)); char *local_contact=linphone_address_as_string_uri_only(linphone_chat_message_get_local_address(msg)); char datebuf[26]; char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);", @@ -107,6 +108,7 @@ void linphone_chat_message_store(LinphoneChatMessage *msg){ linphone_sql_request(lc->db,buf); sqlite3_free(buf); ms_free(local_contact); + ms_free(peer); } } @@ -127,19 +129,45 @@ void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr){ if (lc->db==NULL) return ; + char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)); char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;", - read,cr->peer); + read,peer); linphone_sql_request(lc->db,buf); sqlite3_free(buf); + ms_free(peer); +} + +int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr){ + LinphoneCore *lc=linphone_chat_room_get_lc(cr); + int numrows=0; + + if (lc->db==NULL) return 0; + + char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)); + char *buf=sqlite3_mprintf("select count(*) from history where remoteContact = %Q and read = 0;",peer); + sqlite3_stmt *selectStatement; + int returnValue = sqlite3_prepare_v2(lc->db,buf,-1,&selectStatement,NULL); + if (returnValue == SQLITE_OK){ + if(sqlite3_step(selectStatement) == SQLITE_ROW){ + numrows= sqlite3_column_int(selectStatement, 0); + } + } + sqlite3_finalize(selectStatement); + sqlite3_free(buf); + ms_free(peer); + return numrows; } void linphone_chat_room_delete_history(LinphoneChatRoom *cr){ LinphoneCore *lc=cr->lc; if (lc->db==NULL) return ; - char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",cr->peer); + + char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)); + char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",peer); linphone_sql_request(lc->db,buf); sqlite3_free(buf); + ms_free(peer); } MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){ @@ -147,13 +175,14 @@ MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){ MSList *ret; if (lc->db==NULL) return NULL; - + char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)); cr->messages_hist = NULL; - char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",cr->peer,nb_message); + char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",peer,nb_message); linphone_sql_request_message(lc->db,buf,cr); sqlite3_free(buf); ret=cr->messages_hist; cr->messages_hist=NULL; + ms_free(peer); return ret; } @@ -162,12 +191,13 @@ void linphone_close_storage(sqlite3* db){ } void linphone_create_table(sqlite3* db){ - char* errmsg; + char* errmsg=NULL; int ret; ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);", 0,0,&errmsg); if(ret != SQLITE_OK) { printf("Error in creation: %s.\n", errmsg); + sqlite3_free(errmsg); } } @@ -216,4 +246,8 @@ void linphone_core_message_storage_init(LinphoneCore *lc){ void linphone_core_message_storage_close(LinphoneCore *lc){ } +int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr){ + return 0; +} + #endif diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 45a616119..ce4695dd2 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -33,10 +33,25 @@ static void fill_renderers(GtkTreeView *v){ gtk_tree_view_append_column (v,c); } +void call_log_selection_changed(GtkTreeView *v){ + GtkTreeSelection *select; + GtkTreeIter iter; + GtkTreeModel *model; + + select = gtk_tree_view_get_selection(v); + if (gtk_tree_selection_get_selected (select, &model, &iter)){ + GtkTreePath *path=gtk_tree_model_get_path(model,&iter); + gtk_tree_view_collapse_all(v); + gtk_tree_view_expand_row(v,path,TRUE); + gtk_tree_path_free(path); + } +} + void linphone_gtk_call_log_update(GtkWidget *w){ GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")); GtkTreeStore *store; const MSList *logs; + GtkTreeSelection *select; store=(GtkTreeStore*)gtk_tree_view_get_model(v); if (store==NULL){ @@ -44,6 +59,9 @@ void linphone_gtk_call_log_update(GtkWidget *w){ gtk_tree_view_set_model(v,GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"))); + select=gtk_tree_view_get_selection(v); + gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); + g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v); // gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), // create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); } diff --git a/gtk/chat.c b/gtk/chat.c index 6a65cd9fc..7f7e26a56 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -65,7 +65,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),idx); - linphone_gtk_create_chat_picture(FALSE); + //linphone_gtk_create_chat_picture(FALSE); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); g_object_set_data(G_OBJECT(w),"from_message",NULL); g_object_set_data(G_OBJECT(w),"cr",NULL); @@ -265,6 +265,15 @@ void linphone_gtk_send_text(){ } } +static void linphone_gtk_chat_message_destroy(LinphoneChatMessage *msg){ + linphone_chat_message_destroy(msg); +} + +void linphone_gtk_free_list(MSList *messages){ + ms_list_for_each(messages,(void (*)(void*))linphone_gtk_chat_message_destroy); + ms_list_free(messages); +} + void display_history_message(GtkWidget *chat_view,MSList *messages,const LinphoneAddress *with){ if(messages != NULL){ MSList *it; @@ -282,6 +291,7 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); ms_free(from_str); ms_free(with_str); + linphone_gtk_free_list(messages); } } @@ -306,7 +316,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.red = 56832; colorb.green = 60928; colorb.blue = 61952; - + with_str=linphone_address_as_string_uri_only(with); linphone_chat_room_mark_as_read(cr); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); @@ -354,12 +364,14 @@ LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){ GtkWidget *main_window=linphone_gtk_get_main_window (); LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr"); - char *from_str=linphone_address_as_string(linphone_chat_room_get_peer_address (cr2)); + const LinphoneAddress *from=linphone_chat_room_get_peer_address(cr2); + char *from_str=linphone_address_as_string_uri_only(from); char *uri_str=linphone_address_as_string(uri); + char *uri_only=linphone_address_as_string_uri_only(uri); MSList *messages=NULL; linphone_chat_room_mark_as_read(cr); - if(g_strcmp0(from_str,uri_str)!=0){ + if(g_strcmp0(from_str,uri_only)!=0){ GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); GtkTextIter start; GtkTextIter end; @@ -371,7 +383,7 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, udpate_tab_chat_header(chat_view,uri,cr); g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); - messages = linphone_chat_room_get_history(cr,NB_MSG_HIST); + messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str); display_history_message(chat_view,messages,uri); } @@ -394,15 +406,22 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); - GtkWidget *w; + GtkWidget *w; + gboolean send=TRUE; + char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); if(w!=NULL){ - linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w); + char *from_chatview=(char *)g_object_get_data(G_OBJECT(w),"from"); + if(g_strcmp0(from,from_chatview)==0){ + send=TRUE; + } else { + send=FALSE; + } + ms_free(from_chatview); } else { w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); - char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"from",from); } get_display_name(linphone_chat_message_get_from(msg)); @@ -419,9 +438,17 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } } #endif - linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), + if(send){ + linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), FALSE,room,msg,FALSE); - linphone_gtk_update_chat_picture(); + } else { + linphone_gtk_show_friends(); + //linphone_gtk_friend_list_update_message(msg); + } + ms_free(from); + //linphone_gtk_update_chat_picture(); + //TODO: update la zone de notification dans les contacts (problème : lors du refresh de la liste + //connaitre tous les contacts qui ont des messages non lus ... //gtk_window_present(GTK_WINDOW(w)); /*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/ } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index be6a4c3ce..e1012f7cd 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -32,7 +32,7 @@ enum{ FRIEND_ICON, FRIEND_CALL, FRIEND_CHAT, - FRIEND_CHAT_CONVERSATION, + FRIEND_NB_UNREAD_MSG, FRIEND_LIST_NCOL }; @@ -253,9 +253,11 @@ void linphone_gtk_chat_selected(GtkWidget *item){ GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch"); const LinphoneAddress *uri; gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); + gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); uri=linphone_friend_get_address(lf); - if(cr == NULL){ + if(cr==NULL){ cr=linphone_gtk_create_chatroom(uri); + gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1); } page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); g_object_set_data(G_OBJECT(friendlist),"from",linphone_address_as_string(uri)); @@ -269,6 +271,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){ linphone_gtk_create_chat_picture(FALSE); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); + gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,"",-1); } } @@ -541,7 +544,8 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ linphone_gtk_init_bookmark_icon(); store = gtk_list_store_new(FRIEND_LIST_NCOL,GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, - G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, G_TYPE_STRING); + G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, + G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model(GTK_TREE_VIEW(friendlist),GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); @@ -579,9 +583,13 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ gtk_tree_view_column_set_clickable(column,TRUE); gtk_tree_view_column_set_expand(column,TRUE); gtk_tree_view_column_set_max_width(column,60); + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_start(column,renderer,TRUE); + gtk_tree_view_column_add_attribute (column,renderer,"text",FRIEND_NB_UNREAD_MSG); + gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column); - /* Call column*/ renderer = gtk_cell_renderer_pixbuf_new(); column = gtk_tree_view_column_new_with_attributes (_("Call"),renderer,"pixbuf",FRIEND_CALL,NULL); @@ -669,6 +677,7 @@ void linphone_gtk_show_friends(void){ //const gchar *search=NULL; //gboolean lookup=FALSE; MSList *sorted; + LinphoneChatRoom *cr=NULL; linphone_gtk_show_directory_search(); @@ -693,6 +702,9 @@ void linphone_gtk_show_friends(void){ const char *name=linphone_address_get_display_name(f_uri); const char *display=name; char *escaped=NULL; + char buf[26]={0}; + int nbmsg=0; + /*if (lookup){ if (strstr(uri,search)==NULL){ ms_free(uri); @@ -709,9 +721,25 @@ void linphone_gtk_show_friends(void){ FRIEND_PRESENCE_IMG, send_subscribe ? create_status_picture(linphone_friend_get_status(lf)) : NULL, -1); + gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)),&iter,FRIEND_CHATROOM,&cr,-1); + if(cr!=NULL){ + nbmsg=linphone_chat_room_get_unread_messages_count(cr); + if(nbmsg != 0){ + sprintf(buf,"%i",nbmsg); + } + } else { + cr=linphone_gtk_create_chatroom(f_uri); + gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1); + nbmsg=linphone_chat_room_get_unread_messages_count(cr); + if(nbmsg != 0){ + sprintf(buf,"%i",nbmsg); + } + + } + gtk_list_store_set(store,&iter,FRIEND_CALL,create_call_picture(),-1); gtk_list_store_set(store,&iter,FRIEND_CHAT,create_chat_picture(),-1); - + gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,buf,-1); escaped=g_markup_escape_text(uri,-1); gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1); g_free(escaped); @@ -912,52 +940,41 @@ gboolean linphone_gtk_popup_contact_menu(GtkWidget *list, GdkEventButton *event) } gint get_col_number_from_tree_view_column (GtkTreeViewColumn *col){ - GList *cols; - gint num; - g_return_val_if_fail ( col != NULL, -1 ); - g_return_val_if_fail ( col->tree_view != NULL, -1 ); - cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(col->tree_view)); - num = g_list_index(cols, (gpointer) col); - g_list_free(cols); + GList *cols; + gint num; + g_return_val_if_fail ( col != NULL, -1 ); + g_return_val_if_fail ( col->tree_view != NULL, -1 ); + cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(col->tree_view)); + num = g_list_index(cols, (gpointer) col); + g_list_free(cols); - return num; -} - -int longueur_list (GtkTreeView *tree_view){ - GtkTreeIter iter; - int i=0; - GtkTreeModel *model=gtk_tree_view_get_model(tree_view); - if (gtk_tree_model_get_iter_first(model,&iter)) { - do{ - i++; - }while(gtk_tree_model_iter_next(model,&iter)); - } - return i; + return num; } static gint tree_view_get_cell_from_pos(GtkTreeView *view, guint x, guint y){ GtkTreeViewColumn *col = NULL; GList *node, *columns; gint colx = 0; - gint coly = longueur_list(view); - gint height=0; + GtkTreePath *path; + GtkTreeViewDropPosition pos; g_return_val_if_fail ( view != NULL, 0 ); columns = gtk_tree_view_get_columns(view); - for (node = columns; node != NULL && col == NULL; node = node->next){ - GtkTreeViewColumn *checkcol = (GtkTreeViewColumn*) node->data; - gtk_tree_view_column_cell_get_size(checkcol,NULL,NULL,NULL,NULL,&height); - if (x >= colx && x < (colx + checkcol->width) && y < (height+2)*coly){ - col = checkcol; - gint num = get_col_number_from_tree_view_column(col); + gtk_tree_view_get_dest_row_at_pos(view,x,y,&path,&pos); + if(path != NULL){ + for (node = columns; node != NULL && col == NULL; node = node->next){ + GtkTreeViewColumn *checkcol = (GtkTreeViewColumn*) node->data; + if (x >= colx && x < (colx + checkcol->width)){ + col = checkcol; + gint num = get_col_number_from_tree_view_column(col); return num; - } - else { - colx += checkcol->width; + } else { + colx += checkcol->width; } - } - g_list_free(columns); + } + } + g_list_free(columns); return 0; } diff --git a/gtk/linphone.h b/gtk/linphone.h index aaa021a28..a7d7da506 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -152,4 +152,4 @@ void linphone_gtk_monitor_usb(void); void linphone_gtk_unmonitor_usb(void); gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); - +void linphone_gtk_friend_list_update_message(LinphoneChatMessage *msg); From c5c826d8f46c7e9aa5655aef7a353d7e1a528ffa Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 20 Mar 2013 12:36:13 +0100 Subject: [PATCH 035/177] fix exosip dscp api detection --- configure.ac | 14 -------------- m4/exosip.m4 | 13 +++++++++++++ mediastreamer2 | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index 4957eeb58..7bc526bbb 100644 --- a/configure.ac +++ b/configure.ac @@ -444,19 +444,6 @@ fi dnl setup flags for exosip library LP_SETUP_EXOSIP -dnl check exosip support of DSCP in exosip -AC_MSG_CHECKING([for DSCP support in exosip]) -AC_TRY_COMPILE([#include ], - [int dscp=0;eXosip_set_option(EXOSIP_OPT_SET_DSCP,&dscp);], - has_exosip_dscp=yes, - has_exosip_dscp=no -) -AC_MSG_RESULT($has_exosip_dscp) -if test "$has_exosip_dscp" = "yes" ; then - AC_DEFINE( HAVE_EXOSIP_DSCP, 1, [Define if exosip dscp available] ) -fi - - if test "$console_ui" = "true" ; then dnl check gnu readline LP_CHECK_READLINE @@ -684,7 +671,6 @@ AC_ARG_ENABLE(msg-storage, [enable_msg_storage=auto] ) -echo "enable_msg_storage = $enable_msg_storage" AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue) if test x$enable_msg_storage != xfalse; then diff --git a/m4/exosip.m4 b/m4/exosip.m4 index 31769e00d..e7c72647d 100644 --- a/m4/exosip.m4 +++ b/m4/exosip.m4 @@ -20,6 +20,19 @@ EXOSIP_LIBS="$OSIP_LIBS -leXosip2 " CPPFLAGS_save=$CPPFLAGS CPPFLAGS="$OSIP_CFLAGS $CPPFLAGS" AC_CHECK_HEADER([eXosip2/eXosip.h], ,AC_MSG_ERROR([Could not find eXosip2 headers !])) + +dnl check exosip support of DSCP in exosip +AC_MSG_CHECKING([for DSCP support in exosip]) +AC_TRY_COMPILE([#include ], + [int dscp=0;eXosip_set_option(EXOSIP_OPT_SET_DSCP,&dscp);], + has_exosip_dscp=yes, + has_exosip_dscp=no +) +AC_MSG_RESULT($has_exosip_dscp) +if test "$has_exosip_dscp" = "yes" ; then + AC_DEFINE( HAVE_EXOSIP_DSCP, 1, [Define if exosip dscp available] ) +fi + CPPFLAGS=$CPPFLAGS_save diff --git a/mediastreamer2 b/mediastreamer2 index 45c9c6516..430cc1376 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 45c9c65168a9912bd2aa97344b396771ff1cdaf0 +Subproject commit 430cc1376d68b1a8d82799357abea9e3e1c536f8 From de40178c0229fc0fbbeb2643fbb0bd2271c4c12f Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 20 Mar 2013 12:48:02 +0100 Subject: [PATCH 036/177] fix dispaly unread messages --- gtk/chat.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 7f7e26a56..38efc1011 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -412,13 +412,12 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); if(w!=NULL){ - char *from_chatview=(char *)g_object_get_data(G_OBJECT(w),"from"); + char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); if(g_strcmp0(from,from_chatview)==0){ send=TRUE; } else { send=FALSE; - } - ms_free(from_chatview); + } } else { w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); @@ -445,7 +444,6 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, linphone_gtk_show_friends(); //linphone_gtk_friend_list_update_message(msg); } - ms_free(from); //linphone_gtk_update_chat_picture(); //TODO: update la zone de notification dans les contacts (problème : lors du refresh de la liste //connaitre tous les contacts qui ont des messages non lus ... From ba3a2f0549a9d6d5369d9379c9492df9f292754d Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 20 Mar 2013 14:57:03 +0100 Subject: [PATCH 037/177] fix received messages in chat --- gtk/chat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 38efc1011..69c4e832f 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -65,7 +65,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),idx); - //linphone_gtk_create_chat_picture(FALSE); + linphone_gtk_create_chat_picture(FALSE); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); g_object_set_data(G_OBJECT(w),"from_message",NULL); g_object_set_data(G_OBJECT(w),"cr",NULL); @@ -419,6 +419,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, send=FALSE; } } else { + send=FALSE; w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); g_object_set_data(G_OBJECT(friendlist),"from",from); @@ -438,6 +439,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } #endif if(send){ + linphone_chat_room_mark_as_read(room); linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), FALSE,room,msg,FALSE); } else { @@ -445,8 +447,6 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, //linphone_gtk_friend_list_update_message(msg); } //linphone_gtk_update_chat_picture(); - //TODO: update la zone de notification dans les contacts (problème : lors du refresh de la liste - //connaitre tous les contacts qui ont des messages non lus ... //gtk_window_present(GTK_WINDOW(w)); /*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/ } From dbc944a5f44bbfc7e7a4dd0aaed5e30e45cacaa2 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 20 Mar 2013 15:48:48 +0100 Subject: [PATCH 038/177] Do not define a variable in the middle of a block of code. --- coreapi/linphonecore.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 93d0b8b80..542241262 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2117,8 +2117,9 @@ void linphone_core_iterate(LinphoneCore *lc){ if (call->state==LinphoneCallIncomingReceived){ ms_message("incoming call ringing for %i seconds",elapsed); if (elapsed>lc->sip_conf.inc_timeout){ + LinphoneReason decline_reason; ms_message("incoming call timeout (%i)",lc->sip_conf.inc_timeout); - LinphoneReason decline_reason=lc->current_call ? LinphoneReasonBusy : LinphoneReasonDeclined; + decline_reason=lc->current_call ? LinphoneReasonBusy : LinphoneReasonDeclined; call->log->status=LinphoneCallMissed; call->reason=LinphoneReasonNotAnswered; linphone_core_decline_call(lc,call,decline_reason); From c113bd8c332d7473493f17c27d7cba0817a82592 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 21 Mar 2013 11:13:42 +0100 Subject: [PATCH 039/177] fix crash related to zrtp hello hash when adding video --- coreapi/linphonecall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index e9640701f..2770d4ada 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -271,7 +271,7 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall * l=make_codec_list(lc,lc->codecs_conf.video_codecs,0,NULL,-1); md->streams[1].payloads=l; // if ZRTP is enabled, put the hello hash into the audiostream's desc - if (call->videostream->ms.zrtp_context!=NULL){ + if (call->videostream && call->videostream->ms.zrtp_context!=NULL){ ortp_zrtp_get_hello_hash(call->videostream->ms.zrtp_context, md->streams[1].zrtp_hello_hash, sizeof(md->streams[1].zrtp_hello_hash)); From 1521d1f7f05f2e764ca936685878c65658dacdbd Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Mar 2013 10:56:44 +0100 Subject: [PATCH 040/177] change the way local interface is searched. --- coreapi/misc.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index 35a58e200..158ab0add 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1110,7 +1110,18 @@ static int get_local_ip_for_with_connect(int type, const char *dest, char *resul } int linphone_core_get_local_ip_for(int type, const char *dest, char *result){ + int err; strcpy(result,type==AF_INET ? "127.0.0.1" : "::1"); + + if (type==AF_INET) + dest="87.98.157.38"; /*a public IP address*/ + else dest="2a00:1450:8002::68"; + err=get_local_ip_for_with_connect(type,dest,result); + if (err==0) return 0; + + /* if the connect method failed, which happens when no default route is set, + * try to find 'the' running interface with getifaddrs*/ + #ifdef HAVE_GETIFADDRS if (dest==NULL) { /*we use getifaddrs for lookup of default interface */ @@ -1125,11 +1136,7 @@ int linphone_core_get_local_ip_for(int type, const char *dest, char *result){ } } #endif - /*else use connect to find the best local ip address */ - if (type==AF_INET) - dest="87.98.157.38"; /*a public IP address*/ - else dest="2a00:1450:8002::68"; - return get_local_ip_for_with_connect(type,dest,result); + return 0; } #ifndef WIN32 From 76e61b810d069db36232ede60cf507327b231fba Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Mar 2013 10:58:25 +0100 Subject: [PATCH 041/177] fix previous commit. --- coreapi/misc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index 158ab0add..738766746 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1113,9 +1113,11 @@ int linphone_core_get_local_ip_for(int type, const char *dest, char *result){ int err; strcpy(result,type==AF_INET ? "127.0.0.1" : "::1"); - if (type==AF_INET) - dest="87.98.157.38"; /*a public IP address*/ - else dest="2a00:1450:8002::68"; + if (dest==NULL){ + if (type==AF_INET) + dest="87.98.157.38"; /*a public IP address*/ + else dest="2a00:1450:8002::68"; + } err=get_local_ip_for_with_connect(type,dest,result); if (err==0) return 0; From 654662128fc0d9214c4a52f9242fb7973422c338 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Mar 2013 11:00:23 +0100 Subject: [PATCH 042/177] fix again --- coreapi/misc.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index 738766746..26cdbe224 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1125,18 +1125,17 @@ int linphone_core_get_local_ip_for(int type, const char *dest, char *result){ * try to find 'the' running interface with getifaddrs*/ #ifdef HAVE_GETIFADDRS - if (dest==NULL) { - /*we use getifaddrs for lookup of default interface */ - int found_ifs; - found_ifs=get_local_ip_with_getifaddrs(type,result,LINPHONE_IPADDR_SIZE); - if (found_ifs==1){ - return 0; - }else if (found_ifs<=0){ - /*absolutely no network on this machine */ - return -1; - } - } + /*we use getifaddrs for lookup of default interface */ + int found_ifs; + + found_ifs=get_local_ip_with_getifaddrs(type,result,LINPHONE_IPADDR_SIZE); + if (found_ifs==1){ + return 0; + }else if (found_ifs<=0){ + /*absolutely no network on this machine */ + return -1; + } #endif return 0; } From 132c497affbc47a3b657b4f76bde161cf3514895 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Mar 2013 12:05:48 +0100 Subject: [PATCH 043/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 430cc1376..dc277cd95 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 430cc1376d68b1a8d82799357abea9e3e1c536f8 +Subproject commit dc277cd95ec334066948c91dd9bf024c1ff1d933 From 824c0e89f2c34298c6c6e749e9dcfbff4265a73f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 16:34:09 +0100 Subject: [PATCH 044/177] Revert "Send ZRTP hello hash in SIP SDP." This reverts commit 71f31347fcddaa5f0e9e329a7320efe60bc7c281. Conflicts: coreapi/linphonecall.c mediastreamer2 --- coreapi/linphonecall.c | 41 +++++++++------------------------------ coreapi/linphonecore.c | 8 +------- coreapi/offeranswer.c | 1 - coreapi/sal.h | 3 +-- coreapi/sal_eXosip2_sdp.c | 28 +++----------------------- oRTP | 2 +- 6 files changed, 15 insertions(+), 68 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 2770d4ada..6c01c65bd 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -254,14 +254,6 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall * l=ms_list_append(l,pt); md->streams[0].payloads=l; - // if ZRTP is enabled, put the hello hash into the audiostream's desc - if (call->audiostream && call->audiostream->ms.zrtp_context!=NULL){ - ortp_zrtp_get_hello_hash(call->audiostream->ms.zrtp_context, - md->streams[0].zrtp_hello_hash, - sizeof(md->streams[0].zrtp_hello_hash)); - ms_message("Audio stream zrtp hash: %s", md->streams[0].zrtp_hello_hash); - } - if (call->params.has_video){ md->n_active_streams++; md->streams[1].rtp_port=call->video_port; @@ -270,13 +262,6 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall * md->streams[1].type=SalVideo; l=make_codec_list(lc,lc->codecs_conf.video_codecs,0,NULL,-1); md->streams[1].payloads=l; - // if ZRTP is enabled, put the hello hash into the audiostream's desc - if (call->videostream && call->videostream->ms.zrtp_context!=NULL){ - ortp_zrtp_get_hello_hash(call->videostream->ms.zrtp_context, - md->streams[1].zrtp_hello_hash, - sizeof(md->streams[1].zrtp_hello_hash)); - ms_message("Video stream zrtp hash: %s", md->streams[1].zrtp_hello_hash); - } } if (md->n_total_streams < md->n_active_streams) md->n_total_streams = md->n_active_streams; @@ -1309,20 +1294,6 @@ void linphone_call_init_video_stream(LinphoneCall *call){ void linphone_call_init_media_streams(LinphoneCall *call){ linphone_call_init_audio_stream(call); linphone_call_init_video_stream(call); - - // moved from linphone_call_start_media_streams, because ZRTP needs to be - // at least partially initialized so that the SDP can contain 'zrtp-hash' - if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) { - OrtpZrtpParams params; - /*will be set later when zrtp is activated*/ - call->current_params.media_encryption=LinphoneMediaEncryptionNone; - - params.zid_file=call->core->zrtp_secrets_cache; - audio_stream_enable_zrtp(call->audiostream,¶ms); - } else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){ - call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ? - LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone; - } } @@ -1765,10 +1736,16 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut call->playing_ringbacktone=send_ringbacktone; call->up_bw=linphone_core_get_upload_bandwidth(lc); - // ZRTP was initialized in linphone_call_init_media_streams with a - // partially iniitalized RtpSession, and now needs to get an update if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) { - ortp_zrtp_start_engine(call->audiostream->ms.zrtp_context,call->audiostream->ms.session); + OrtpZrtpParams params; + /*will be set later when zrtp is activated*/ + call->current_params.media_encryption=LinphoneMediaEncryptionNone; + + params.zid_file=lc->zrtp_secrets_cache; + audio_stream_enable_zrtp(call->audiostream,¶ms); + }else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){ + call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ? + LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone; } /*also reflect the change if the "wished" params, in order to avoid to propose SAVP or video again diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 542241262..0089dd0fb 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -3126,14 +3126,8 @@ int linphone_core_accept_call_with_params(LinphoneCore *lc, LinphoneCall *call, sal_call_set_local_media_description(call->op,call->localdesc); } - if (call->audiostream==NULL){ + if (call->audiostream==NULL) linphone_call_init_media_streams(call); - // the local media description must be regenerated after the audiostream - // is initialized, otherwise the ZRTP hello hash will not be available - linphone_call_make_local_media_description(lc,call); - sal_call_set_local_media_description(call->op,call->localdesc); - } - if (!was_ringing && call->audiostream->ms.ticker==NULL){ audio_stream_prepare_sound(call->audiostream,lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard); } diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c index eefe34d45..9823c24a6 100644 --- a/coreapi/offeranswer.c +++ b/coreapi/offeranswer.c @@ -261,7 +261,6 @@ static void initiate_incoming(const SalStreamDescription *local_cap, result->ice_completed = local_cap->ice_completed; memcpy(result->ice_candidates, local_cap->ice_candidates, sizeof(result->ice_candidates)); memcpy(result->ice_remote_candidates, local_cap->ice_remote_candidates, sizeof(result->ice_remote_candidates)); - memcpy(result->zrtp_hello_hash,local_cap->zrtp_hello_hash, sizeof(result->zrtp_hello_hash)); } /** diff --git a/coreapi/sal.h b/coreapi/sal.h index 5f38c15ab..25d8d20bc 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -140,7 +140,7 @@ typedef struct SalIceRemoteCandidate { } SalIceRemoteCandidate; #define SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES 2 -#define SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH 128 + #define SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN 256 #define SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN 256 @@ -172,7 +172,6 @@ typedef struct SalStreamDescription{ SalIceRemoteCandidate ice_remote_candidates[SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES]; char ice_ufrag[SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN]; char ice_pwd[SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN]; - char zrtp_hello_hash[SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH]; bool_t ice_mismatch; bool_t ice_completed; } SalStreamDescription; diff --git a/coreapi/sal_eXosip2_sdp.c b/coreapi/sal_eXosip2_sdp.c index 139446448..debd8550f 100644 --- a/coreapi/sal_eXosip2_sdp.c +++ b/coreapi/sal_eXosip2_sdp.c @@ -108,17 +108,6 @@ static int _sdp_message_get_a_ptime(sdp_message_t *sdp, int mline){ return 0; } -static char * _sdp_message_get_a_zrtp_hash(sdp_message_t *sdp, int mline){ - int i; - sdp_attribute_t *attr; - for (i=0;(attr=sdp_message_attribute_get(sdp,mline,i))!=NULL;i++){ - if (keywordcmp("zrtp-hash",attr->a_att_field)==0){ - return attr->a_att_value; - } - } - return NULL; -} - static int _sdp_message_get_mline_dir(sdp_message_t *sdp, int mline){ int i; sdp_attribute_t *attr; @@ -348,11 +337,6 @@ static void add_line(sdp_message_t *msg, int lineno, const SalStreamDescription int_2char(desc->bandwidth)); if (desc->ptime>0) sdp_message_a_attribute_add(msg,lineno,osip_strdup("ptime"), int_2char(desc->ptime)); - - // if the ZRTP hello hash is available, create an a attribute for it - if (desc->zrtp_hello_hash[0]) - sdp_message_a_attribute_add(msg,lineno,osip_strdup("zrtp-hash"), osip_strdup(desc->zrtp_hello_hash)); - strip_well_known_rtpmaps=ms_list_size(desc->payloads)>5; if (desc->payloads){ for(elem=desc->payloads;elem!=NULL;elem=elem->next){ @@ -449,7 +433,7 @@ static int payload_type_fill_from_rtpmap(PayloadType *pt, const char *rtpmap){ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ int i,j; - const char *mtype,*proto,*rtp_port,*rtp_addr,*number,*zrtp_info; + const char *mtype,*proto,*rtp_port,*rtp_addr,*number; const char *sess; sdp_bandwidth_t *sbw=NULL; sdp_attribute_t *attr; @@ -506,12 +490,7 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ stream->rtp_port=atoi(rtp_port); if (stream->rtp_port > 0) desc->n_active_streams++; - - // if the SDP contains a zrtp-hash, add it to the StreamDesc - zrtp_info = _sdp_message_get_a_zrtp_hash(msg, i); - if (zrtp_info != NULL) - strncpy(stream->zrtp_hello_hash, zrtp_info, sizeof(stream->zrtp_hello_hash)); - + stream->ptime=_sdp_message_get_a_ptime(msg,i); if (strcasecmp("audio", mtype) == 0){ stream->type=SalAudio; @@ -549,8 +528,7 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ for (j = 0; ((attr = sdp_message_attribute_get(msg, i, j)) != NULL); j++) { if ((keywordcmp("rtcp", attr->a_att_field) == 0) && (attr->a_att_value != NULL)) { char tmp[256]; - // added bounds check - int nb = sscanf(attr->a_att_value, "%d IN IP4 %256s", &stream->rtcp_port, tmp); + int nb = sscanf(attr->a_att_value, "%d IN IP4 %s", &stream->rtcp_port, tmp); if (nb == 1) { /* SDP rtcp attribute only contains the port */ } else if (nb == 2) { diff --git a/oRTP b/oRTP index c702c0ea0..dbb75fb00 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit c702c0ea0e66bbe1f27c79690003d9748b01560f +Subproject commit dbb75fb00c65ce0102385f235c1da2873e9f6c2e From 24e3c9258e240c425b7949571ea0793d0ba0312a Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Mar 2013 22:54:27 +0100 Subject: [PATCH 045/177] update mediastreamer2 and oRTP for bugfix regarding adaptive rate control in audio only. The rate control algorithm had a bug preventing him to enhance the quality was the network returns fine, and even worse it was setting the worse quality for the rest of the call. --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index dc277cd95..246292160 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit dc277cd95ec334066948c91dd9bf024c1ff1d933 +Subproject commit 2462921605f587a51f82bd439b85fea5bd759b0b diff --git a/oRTP b/oRTP index dbb75fb00..31d242e8c 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit dbb75fb00c65ce0102385f235c1da2873e9f6c2e +Subproject commit 31d242e8c544ed197f60630593515aef2fb580e9 From 222723656a3cd6538409252e0f6b35ae3ca4bf76 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 25 Mar 2013 09:57:30 +0100 Subject: [PATCH 046/177] Updated factory to use new package for CpuUtils (org.linphone.mediastream) --- java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 7b21ecaae..0b799f33e 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -21,7 +21,7 @@ package org.linphone.core; import java.io.File; import java.io.IOException; -import org.linphone.CpuUtils; +import org.linphone.mediastream.CpuUtils; import org.linphone.mediastream.Version; import android.util.Log; From 54f5ba2cda9b15e8d43cd801a51e10b7771ec303 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 25 Mar 2013 11:32:32 +0100 Subject: [PATCH 047/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 246292160..4b8d2b655 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 2462921605f587a51f82bd439b85fea5bd759b0b +Subproject commit 4b8d2b655acc8a329464e7806653dceb04ade445 From 1ba82ad289fccf07297d5411c483f332e639f281 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Tue, 26 Mar 2013 09:13:46 +0100 Subject: [PATCH 048/177] fix compilation issue with upnp --- coreapi/upnp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 2dfd7f39c..75d0ef9e2 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -338,7 +338,7 @@ UpnpContext* linphone_upnp_context_new(LinphoneCore *lc) { linphone_core_add_iterate_hook(lc, linphone_core_upnp_hook, lupnp); lupnp->upnp_igd_ctxt = NULL; - lupnp->upnp_igd_ctxt = upnp_igd_create(linphone_upnp_igd_callback, linphone_upnp_igd_print, lupnp); + lupnp->upnp_igd_ctxt = upnp_igd_create(linphone_upnp_igd_callback, linphone_upnp_igd_print, NULL, lupnp); if(lupnp->upnp_igd_ctxt == NULL) { lupnp->state = LinphoneUpnpStateKo; ms_error("Can't create uPnP IGD context"); From 1782284ee3e91b80470b089f6915cd343d06743b Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 21 Mar 2013 11:49:26 +0100 Subject: [PATCH 049/177] patch for gtk --- gtk/main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/main.c b/gtk/main.c index c6065241c..ae6c8a010 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -63,12 +63,15 @@ static void linphone_gtk_call_log_updated(LinphoneCore *lc, LinphoneCallLog *cl) static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cs, const char *msg); static void linphone_gtk_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t enabled, const char *token); static void linphone_gtk_transfer_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate); +void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data); static gboolean linphone_gtk_auto_answer(LinphoneCall *call); void linphone_gtk_status_icon_set_blinking(gboolean val); void _linphone_gtk_enable_video(gboolean val); +static gint main_window_x=0; +static gint main_window_y=0; static gboolean verbose=0; static gboolean auto_answer = 0; static gchar * addr_to_call = NULL; @@ -1371,11 +1374,20 @@ static GtkWidget *create_icon_menu(){ return menu; } +void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data){ + gtk_window_get_position(GTK_WINDOW(mw), &main_window_x, &main_window_y); +} + static void handle_icon_click() { GtkWidget *mw=linphone_gtk_get_main_window(); if (!gtk_window_is_active((GtkWindow*)mw)) { + if(!gtk_widget_is_drawable(mw)){ + //we only move if window was hidden. If it was simply behind the window stack, ie, drawable, we keep it as it was + gtk_window_move (GTK_WINDOW(mw), main_window_x, main_window_y); + } linphone_gtk_show_main_window(); } else { + linphone_gtk_save_main_window_position((GtkWindow*)mw, NULL, NULL); gtk_widget_hide(mw); } } From ccd8bbb69c37b855affe784e5868b250a5620932 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 21 Mar 2013 17:12:16 +0100 Subject: [PATCH 050/177] menu in call log view with call, chat and add contact --- coreapi/linphonefriend.h | 7 ++ gtk/call_logs.ui | 2 + gtk/calllogs.c | 167 +++++++++++++++++++++++++++++++++------ gtk/friendlist.c | 113 +++++++++++++++++--------- gtk/linphone.h | 1 + gtk/main.ui | 2 - 6 files changed, 225 insertions(+), 67 deletions(-) diff --git a/coreapi/linphonefriend.h b/coreapi/linphonefriend.h index ab75b7bf7..6eb2ab2a2 100644 --- a/coreapi/linphonefriend.h +++ b/coreapi/linphonefriend.h @@ -132,6 +132,13 @@ void linphone_friend_destroy(LinphoneFriend *lf); */ int linphone_friend_set_addr(LinphoneFriend *fr, const LinphoneAddress* address); +/** + * set the display name for this friend + * @param lf #LinphoneFriend object + * @param name + */ +int linphone_friend_set_name(LinphoneFriend *lf, const char *name); + /** * get address of this friend * @param lf #LinphoneFriend object diff --git a/gtk/call_logs.ui b/gtk/call_logs.ui index 34c6ba3b2..23184841a 100644 --- a/gtk/call_logs.ui +++ b/gtk/call_logs.ui @@ -82,7 +82,9 @@ True True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False + diff --git a/gtk/calllogs.c b/gtk/calllogs.c index ce4695dd2..2ca86beab 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -47,6 +47,145 @@ void call_log_selection_changed(GtkTreeView *v){ } } +void linphone_gtk_call_log_chat_selected(GtkWidget *w){ + GtkTreeSelection *select; + GtkTreeIter iter; + + select=gtk_tree_view_get_selection(GTK_TREE_VIEW(w)); + if (select!=NULL){ + GtkTreeModel *model=NULL; + if (gtk_tree_selection_get_selected (select,&model,&iter)){ + gpointer pla; + LinphoneAddress *la; + gtk_tree_model_get(model,&iter,2,&pla,-1); + la=(LinphoneAddress*)pla; + if (la!=NULL){ + linphone_gtk_tree_view_set_chat_conversation(la); + } + } + } +} + +void linphone_gtk_call_log_add_contact(GtkWidget *w){ + GtkTreeSelection *select; + GtkTreeIter iter; + + select=gtk_tree_view_get_selection(GTK_TREE_VIEW(w)); + if (select!=NULL){ + GtkTreeModel *model=NULL; + if (gtk_tree_selection_get_selected (select,&model,&iter)){ + gpointer pla; + LinphoneAddress *la; + LinphoneFriend *lf; + gtk_tree_model_get(model,&iter,2,&pla,-1); + la=(LinphoneAddress*)pla; + if (la!=NULL){ + char *uri=linphone_address_as_string(la); + lf=linphone_friend_new_with_addr(uri); + linphone_gtk_show_contact(lf); + ms_free(uri); + } + } + } +} + +static bool_t put_selection_to_uribar(GtkWidget *treeview){ + GtkTreeSelection *sel; + + sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); + if (sel!=NULL){ + GtkTreeModel *model=NULL; + GtkTreeIter iter; + if (gtk_tree_selection_get_selected (sel,&model,&iter)){ + gpointer pla; + LinphoneAddress *la; + char *tmp; + gtk_tree_model_get(model,&iter,2,&pla,-1); + la=(LinphoneAddress*)pla; + tmp=linphone_address_as_string (la); + gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp); + ms_free(tmp); + return TRUE; + } + } + return FALSE; +} + +static void linphone_gtk_call_selected(GtkTreeView *treeview){ + put_selection_to_uribar(GTK_WIDGET(treeview)); + linphone_gtk_start_call(linphone_gtk_get_widget(gtk_widget_get_toplevel(GTK_WIDGET(treeview)), + "start_call")); +} + +static GtkWidget *linphone_gtk_create_call_log_menu(GtkWidget *call_log){ + GtkWidget *menu=gtk_menu_new(); + GtkWidget *menu_item; + gchar *call_label=NULL; + gchar *text_label=NULL; + gchar *name=NULL; + GtkWidget *image; + GtkTreeSelection *select; + GtkTreeIter iter; + + select=gtk_tree_view_get_selection(GTK_TREE_VIEW(call_log)); + if (select!=NULL){ + GtkTreeModel *model=NULL; + if (gtk_tree_selection_get_selected (select,&model,&iter)){ + gpointer pla; + LinphoneAddress *la; + gtk_tree_model_get(model,&iter,2,&pla,-1); + la=(LinphoneAddress*)pla; + name=linphone_address_as_string(la); + call_label=g_strdup_printf(_("Call %s"),name); + text_label=g_strdup_printf(_("Send text to %s"),name); + g_free(name); + } + } + if (call_label){ + menu_item=gtk_image_menu_item_new_with_label(call_label); + image=gtk_image_new_from_stock(GTK_STOCK_NETWORK,GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image); + gtk_widget_show(image); + gtk_widget_show(menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); + g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_selected,call_log); + } + if (text_label){ + menu_item=gtk_image_menu_item_new_with_label(text_label); + image=gtk_image_new_from_stock(GTK_STOCK_NETWORK,GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image); + gtk_widget_show(image); + gtk_widget_show(menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); + g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_chat_selected,call_log); + } + + menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_ADD,NULL); + gtk_widget_show(menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); + g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_add_contact,call_log); + gtk_widget_show(menu); + gtk_menu_attach_to_widget(GTK_MENU(menu),call_log, NULL); + + if (call_label) g_free(call_label); + if (text_label) g_free(text_label); + return menu; +} + +gboolean linphone_gtk_call_log_popup_contact(GtkWidget *list, GdkEventButton *event){ + GtkWidget *m=linphone_gtk_create_call_log_menu(list); + gtk_menu_popup (GTK_MENU (m), NULL, NULL, NULL, NULL, + event ? event->button : 0, event ? event->time : gtk_get_current_event_time()); + return TRUE; +} + +gboolean linphone_gtk_call_log_button_pressed(GtkWidget *widget, GdkEventButton *event){ + if (event->button == 3 && event->type == GDK_BUTTON_PRESS){ + return linphone_gtk_call_log_popup_contact(widget, event); + } + return FALSE; +} + void linphone_gtk_call_log_update(GtkWidget *w){ GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")); GtkTreeStore *store; @@ -62,6 +201,7 @@ void linphone_gtk_call_log_update(GtkWidget *w){ select=gtk_tree_view_get_selection(v); gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v); + g_signal_connect(G_OBJECT(v),"button-press-event",(GCallback)linphone_gtk_call_log_button_pressed,NULL); // gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), // create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); } @@ -149,28 +289,6 @@ void linphone_gtk_call_log_update(GtkWidget *w){ } -static bool_t put_selection_to_uribar(GtkWidget *treeview){ - GtkTreeSelection *sel; - - sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); - if (sel!=NULL){ - GtkTreeModel *model=NULL; - GtkTreeIter iter; - if (gtk_tree_selection_get_selected (sel,&model,&iter)){ - gpointer pla; - LinphoneAddress *la; - char *tmp; - gtk_tree_model_get(model,&iter,2,&pla,-1); - la=(LinphoneAddress*)pla; - tmp=linphone_address_as_string (la); - gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp); - ms_free(tmp); - return TRUE; - } - } - return FALSE; -} - void linphone_gtk_history_row_activated(GtkWidget *treeview){ if (put_selection_to_uribar(treeview)){ GtkWidget *mw=linphone_gtk_get_main_window(); @@ -207,8 +325,6 @@ void linphone_gtk_call_log_response(GtkWidget *w, guint response_id){ gtk_widget_destroy(w); } - - GtkWidget * linphone_gtk_show_call_logs(void){ GtkWidget *mw=linphone_gtk_get_main_window(); @@ -223,5 +339,4 @@ GtkWidget * linphone_gtk_show_call_logs(void){ linphone_gtk_call_log_update(w); }else gtk_window_present(GTK_WINDOW(w)); return w; -} - +} \ No newline at end of file diff --git a/gtk/friendlist.c b/gtk/friendlist.c index e1012f7cd..9f5a935b8 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -195,38 +195,11 @@ void linphone_gtk_create_chat_picture(gboolean active){ GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); if (gtk_tree_model_get_iter_first(model,&iter)) { do{ - if(!active){ + //if(!active){ gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_chat_picture(),-1); - } else { - gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_active_chat_picture(),-1); - } - }while(gtk_tree_model_iter_next(model,&iter)); - } -} - -void linphone_gtk_update_chat_picture(){ - GtkTreeIter iter; - GtkListStore *store=NULL; - GtkWidget *w = linphone_gtk_get_main_window(); - GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); - GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); - GtkWidget *chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); - LinphoneFriend *lf=NULL; - char *uri=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); - store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist))); - if (gtk_tree_model_get_iter_first(model,&iter)) { - do{ - gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); - if(chat_view!=NULL){ - if(uri !=NULL) { - if(g_strcmp0(linphone_address_as_string(linphone_friend_get_address(lf)), - uri)==0){ - gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); - } else { - gtk_list_store_set(store,&iter,FRIEND_CHAT,create_chat_picture(),-1); - } - } - } + //} else { + // gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_active_chat_picture(),-1); + //} }while(gtk_tree_model_iter_next(model,&iter)); } } @@ -236,6 +209,66 @@ static gboolean grab_focus(GtkWidget *w){ return FALSE; } +void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la){ + GtkTreeIter iter; + GtkListStore *store=NULL; + GtkWidget *w = linphone_gtk_get_main_window(); + GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); + GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); + GtkWidget *chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + LinphoneFriend *lf=NULL; + LinphoneChatRoom *cr=NULL; + GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch"); + char *la_str=linphone_address_as_string(la); + + lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),la_str); + if(lf==NULL){ + cr=linphone_gtk_create_chatroom(la); + g_object_set_data(G_OBJECT(friendlist),"from",la_str); + if(chat_view==NULL){ + chat_view=linphone_gtk_init_chatroom(cr,la); + g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)chat_view); + } else { + linphone_gtk_load_chatroom(cr,la,chat_view); + } + gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view)); + linphone_gtk_create_chat_picture(FALSE); + g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry")); + } else { + store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist))); + if (gtk_tree_model_get_iter_first(model,&iter)) { + do{ + const LinphoneAddress *uri; + char *lf_str; + gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); + uri=linphone_friend_get_address(lf); + lf_str=linphone_address_as_string(uri); + if( g_strcmp0(lf_str,la_str)==0){ + gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); + if(cr==NULL){ + cr=linphone_gtk_create_chatroom(uri); + gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1); + } + g_object_set_data(G_OBJECT(friendlist),"from",linphone_address_as_string(uri)); + if(chat_view==NULL){ + chat_view=linphone_gtk_init_chatroom(cr,uri); + g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)chat_view); + } else { + linphone_gtk_load_chatroom(cr,uri,chat_view); + } + gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view)); + linphone_gtk_create_chat_picture(FALSE); + g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry")); + gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); + gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,"",-1); + break; + } + }while(gtk_tree_model_iter_next(model,&iter)); + } + } + +} + void linphone_gtk_chat_selected(GtkWidget *item){ GtkWidget *w=gtk_widget_get_toplevel(item); GtkTreeSelection *select; @@ -734,7 +767,6 @@ void linphone_gtk_show_friends(void){ if(nbmsg != 0){ sprintf(buf,"%i",nbmsg); } - } gtk_list_store_set(store,&iter,FRIEND_CALL,create_call_picture(),-1); @@ -743,7 +775,7 @@ void linphone_gtk_show_friends(void){ escaped=g_markup_escape_text(uri,-1); gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1); g_free(escaped); - linphone_gtk_update_chat_picture(); + //linphone_gtk_update_chat_picture(); //bi=linphone_friend_get_info(lf); /*if (bi!=NULL && bi->image_data!=NULL){ GdkPixbuf *pbuf= @@ -787,6 +819,7 @@ void linphone_gtk_contact_cancel(GtkWidget *button){ void linphone_gtk_contact_ok(GtkWidget *button){ GtkWidget *w=gtk_widget_get_toplevel(button); LinphoneFriend *lf=(LinphoneFriend*)g_object_get_data(G_OBJECT(w),"friend_ref"); + LinphoneFriend *lf2; char *fixed_uri=NULL; gboolean show_presence=FALSE,allow_presence=FALSE; const gchar *name,*uri; @@ -811,16 +844,20 @@ void linphone_gtk_contact_ok(GtkWidget *button){ LinphoneAddress* friend_address = linphone_address_new(fixed_uri); linphone_address_set_display_name(friend_address,name); linphone_friend_set_addr(lf,friend_address); - ms_free(fixed_uri); linphone_address_destroy(friend_address); linphone_friend_send_subscribe(lf,show_presence); linphone_friend_set_inc_subscribe_policy(lf,allow_presence==TRUE ? LinphoneSPAccept : LinphoneSPDeny); if (linphone_friend_in_list(lf)) { linphone_friend_done(lf); - }else{ - linphone_core_add_friend(linphone_gtk_get_core(),lf); + } else { + lf2=linphone_core_get_friend_by_address(linphone_gtk_get_core(),fixed_uri); + if(lf2==NULL){ + linphone_friend_set_name(lf,name); + linphone_core_add_friend(linphone_gtk_get_core(),lf); + } } + ms_free(fixed_uri); linphone_gtk_show_friends(); gtk_widget_destroy(w); } @@ -997,6 +1034,4 @@ gboolean linphone_gtk_contact_list_button_pressed(GtkWidget *widget, GdkEventBut void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf){ /*refresh the entire list*/ linphone_gtk_show_friends(); -} - - +} \ No newline at end of file diff --git a/gtk/linphone.h b/gtk/linphone.h index a7d7da506..ccdebea69 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -153,3 +153,4 @@ void linphone_gtk_unmonitor_usb(void); gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); void linphone_gtk_friend_list_update_message(LinphoneChatMessage *msg); +void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la); diff --git a/gtk/main.ui b/gtk/main.ui index e1c8c9129..0b27240e7 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -313,7 +313,6 @@ True False - label center @@ -368,7 +367,6 @@ True False - label True From 4cffe873661443f2a393df800aa6718341e6baf7 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 27 Mar 2013 10:45:06 +0100 Subject: [PATCH 051/177] fix compilation issue --- gtk/main.c | 3 ++- mediastreamer2 | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gtk/main.c b/gtk/main.c index ae6c8a010..b188782ab 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -69,9 +69,10 @@ void linphone_gtk_status_icon_set_blinking(gboolean val); void _linphone_gtk_enable_video(gboolean val); - +#ifndef HAVE_GTK_OSX static gint main_window_x=0; static gint main_window_y=0; +#endif static gboolean verbose=0; static gboolean auto_answer = 0; static gchar * addr_to_call = NULL; diff --git a/mediastreamer2 b/mediastreamer2 index 4b8d2b655..5a7ae95e0 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 4b8d2b655acc8a329464e7806653dceb04ade445 +Subproject commit 5a7ae95e0dbe5f485086d4635a655c893c9c44b1 From 1c6d3202e609ff1f688c06b44a79b83b30a6f071 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 27 Mar 2013 10:54:37 +0100 Subject: [PATCH 052/177] fix display name in call_log --- gtk/calllogs.c | 16 ++++++++++++---- po/README | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 2ca86beab..9d2714153 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -210,13 +210,14 @@ void linphone_gtk_call_log_update(GtkWidget *w){ for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){ LinphoneCallLog *cl=(LinphoneCallLog*)logs->data; GtkTreeIter iter, iter2; - LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); - char *addr= linphone_address_as_string_uri_only (la); + const LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); + char *addr= linphone_address_as_string(la); const char *display; gchar *logtxt, *headtxt, *minutes, *seconds; gchar quality[20]; const char *status=NULL; gchar *start_date=NULL; + LinphoneFriend *lf=NULL; int duration=linphone_call_log_get_duration(cl); time_t start_date_time=linphone_call_log_get_start_date(cl); @@ -229,12 +230,19 @@ void linphone_gtk_call_log_update(GtkWidget *w){ #else start_date=g_strdup(ctime(&start_date_time)); #endif + lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),addr); + if(lf != NULL){ + la=linphone_friend_get_address(lf); + display=linphone_address_get_display_name(la); + } else { + display=linphone_address_get_display_name(la); + } - display=linphone_address_get_display_name (la); if (display==NULL){ display=linphone_address_get_username (la); - if (display==NULL) + if (display==NULL){ display=linphone_address_get_domain (la); + } } if (linphone_call_log_get_quality(cl)!=-1){ snprintf(quality,sizeof(quality),"%.1f",linphone_call_log_get_quality(cl)); diff --git a/po/README b/po/README index adec33171..19a1dbd53 100644 --- a/po/README +++ b/po/README @@ -5,7 +5,7 @@ To add a translation file in linphone project you should first : - then add the file .po in the directory /po - run ./autogen.sh -Update the tranlation files +Update the translation files *************************** To update all the translation files, in the directory /po run the following command $ make update-po From 81475cbdae3c589390b2e40cb1fd2409b44ee810 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 27 Mar 2013 20:05:25 +0100 Subject: [PATCH 053/177] use git describe --always --- coreapi/Makefile.am | 2 +- mediastreamer2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index bef0613b5..91fc9bd22 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -1,6 +1,6 @@ GITVERSION_FILE=liblinphone_gitversion.h GITVERSION_FILE_TMP=liblinphone_gitversion.h.tmp -GITDESCRIBE=`git describe` +GITDESCRIBE=`git describe --always` GITREVISION=`git rev-parse HEAD` ECHO=/bin/echo diff --git a/mediastreamer2 b/mediastreamer2 index 5a7ae95e0..8596ed901 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 5a7ae95e0dbe5f485086d4635a655c893c9c44b1 +Subproject commit 8596ed9017c0d9b9c63c758d7628bac1fc07efd7 From 700b41b3ae972efc807603739ddc0bc6f4e26d8b Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Thu, 28 Mar 2013 14:31:41 +0100 Subject: [PATCH 054/177] Updated Hungarian translation. --- po/hu.po | 846 ++++++++++++++++++++++++++----------------------------- 1 file changed, 392 insertions(+), 454 deletions(-) diff --git a/po/hu.po b/po/hu.po index 819bb2210..54f7821a5 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,53 +1,49 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# +# Hungarian translation for Linphone. +# Copyright 2013. +# This file is distributed under the same license as the linphone package. +# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: Linphone\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-07 12:30+0100\n" -"PO-Revision-Date: 2007-12-14 11:12+0100\n" -"Last-Translator: \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"PO-Revision-Date: 2013-03-26 19:00+0100\n" +"Last-Translator: Viktor \n" +"Language-Team: \n" +"Language: Hungarian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"Plural-Forms: nplurals=1; plural=1 == 1 ? 0 : 1;\n" #: ../gtk/calllogs.c:82 msgid "n/a" -msgstr "" +msgstr "-" #: ../gtk/calllogs.c:85 -#, fuzzy msgid "Aborted" -msgstr "megszakítva" +msgstr "Megszakítva" #: ../gtk/calllogs.c:88 -#, fuzzy msgid "Missed" -msgstr "elhibázva" +msgstr "Nem fogadott" #: ../gtk/calllogs.c:91 -#, fuzzy msgid "Declined" -msgstr "line" +msgstr "Elutasítva" #: ../gtk/calllogs.c:97 #, c-format msgid "%i minute" msgid_plural "%i minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%i perc" #: ../gtk/calllogs.c:100 #, c-format msgid "%i second" msgid_plural "%i seconds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%i másodperc" #: ../gtk/calllogs.c:103 #, c-format @@ -55,6 +51,8 @@ msgid "" "%s\t%s\tQuality: %s\n" "%s\t%s %s\t" msgstr "" +"%s\t%s\tMinőség: %s\n" +"%s\t%s %s\t" #: ../gtk/calllogs.c:108 #, c-format @@ -62,14 +60,16 @@ msgid "" "%s\t%s\t\n" "%s\t%s" msgstr "" +"%s\t%s\t\n" +"%s\t%s" #: ../gtk/conference.c:38 ../gtk/main.ui.h:14 msgid "Conference" -msgstr "" +msgstr "Konferencia" #: ../gtk/conference.c:46 msgid "Me" -msgstr "" +msgstr "én" #: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 #, c-format @@ -78,38 +78,40 @@ msgstr "Nemtalálható a pixmap fájl: %s" #: ../gtk/main.c:88 msgid "log to stdout some debug information while running." -msgstr "" +msgstr "Futás közben némi hibakeresési információ az stdout-ra naplózása." #: ../gtk/main.c:95 msgid "path to a file to write logs into." -msgstr "" +msgstr "fájl elérési útja, melybe a naplók kerülnek." #: ../gtk/main.c:102 msgid "Start linphone with video disabled." -msgstr "" +msgstr "Linphone indítása, videó kikpacsolva. " #: ../gtk/main.c:109 msgid "Start only in the system tray, do not show the main interface." -msgstr "" +msgstr "Csak a tálcaikon indítása, ne mutassa a fő ablakot." #: ../gtk/main.c:116 msgid "address to call right now" -msgstr "" +msgstr "Cím azonnali híváshoz" #: ../gtk/main.c:123 msgid "if set automatically answer incoming calls" -msgstr "" +msgstr "Bekapcsolva automatikusan válaszol a bejövő hívásokra" #: ../gtk/main.c:130 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" +"Adjon meg egy munkakönyvtárat (ennek az installációs könyvtárnak kéne " +"lennie, pl. C:\\Program Files\\Linphone)" #: ../gtk/main.c:510 -#, fuzzy, c-format +#, c-format msgid "Call with %s" -msgstr "Chat-elés %s -el" +msgstr "Hívás %s -el" #: ../gtk/main.c:941 #, c-format @@ -119,6 +121,10 @@ msgid "" "list ?\n" "If you answer no, this person will be temporarily blacklisted." msgstr "" +"%s szeretné Önt hozzáadni partnerlistájához.\n" +"Szeretné megengedni neki, hogy lássa az Ön jelenlétét, illetve hozzá " +"szeretné adni a partnerlistához?\n" +"Ha nemmel válaszol, ez a személy átmenetileg tiltólistára kerül." #: ../gtk/main.c:1018 #, c-format @@ -126,11 +132,12 @@ msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" +"Kérem, adja meg jelszavát a következő felhasználónévhez: %s\n" +"tartomány %s:" #: ../gtk/main.c:1121 -#, fuzzy msgid "Call error" -msgstr "Linphone - Híváselőzmények" +msgstr "Hiba a hívás közben" #: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 msgid "Call ended" @@ -142,60 +149,59 @@ msgstr "Beérkező hívás" #: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 msgid "Answer" -msgstr "" +msgstr "Hívás fogadása" #: ../gtk/main.c:1131 ../gtk/main.ui.h:7 -#, fuzzy msgid "Decline" -msgstr "line" +msgstr "Elutasítás" #: ../gtk/main.c:1137 -#, fuzzy msgid "Call paused" -msgstr "megszakítva" +msgstr "Hívás várakoztatva" #: ../gtk/main.c:1137 -#, fuzzy, c-format +#, c-format msgid "by %s" -msgstr "Kapcsolatilista" +msgstr "a következő által: %s" #: ../gtk/main.c:1186 #, c-format msgid "%s proposed to start video. Do you accept ?" -msgstr "" +msgstr "%s szerené elidítani a videót. Elfogadja?" #: ../gtk/main.c:1348 msgid "Website link" -msgstr "" +msgstr "Internetes oldal" #: ../gtk/main.c:1388 msgid "Linphone - a video internet phone" -msgstr "" +msgstr "Linphone - internetes videó telefon" #: ../gtk/main.c:1480 #, c-format msgid "%s (Default)" -msgstr "" +msgstr "%s (Alapértelmezett)" #: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 #, c-format msgid "We are transferred to %s" -msgstr "" +msgstr "Át vagyunk irányítva ide: %s" #: ../gtk/main.c:1792 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" +"Hangkártya nincs érzékelve ezen a számítógépen.\n" +"Nem fog tudni hang hívásokat küldeni vagy fogadni." #: ../gtk/main.c:1896 msgid "A free SIP video-phone" msgstr "Egy ingyenes SIP video-telefon" #: ../gtk/friendlist.c:366 -#, fuzzy msgid "Add to addressbook" -msgstr "Címjegyzék" +msgstr "Hozzáadás címjegyzékhez" #: ../gtk/friendlist.c:540 msgid "Presence status" @@ -206,48 +212,46 @@ msgid "Name" msgstr "Név" #: ../gtk/friendlist.c:569 -#, fuzzy msgid "Call" -msgstr "Hivás előzmények" +msgstr "Hivás" #: ../gtk/friendlist.c:574 -#, fuzzy msgid "Chat" -msgstr "Chat szoba" +msgstr "Csevegés" #: ../gtk/friendlist.c:604 #, c-format msgid "Search in %s directory" -msgstr "" +msgstr "Keresés ebben a könyvtárban: %s" #: ../gtk/friendlist.c:762 msgid "Invalid sip contact !" -msgstr "" +msgstr "Érvénytelen sip partner !" #: ../gtk/friendlist.c:807 -#, fuzzy, c-format +#, c-format msgid "Call %s" -msgstr "Hivás előzmények" +msgstr "%s hívása" #: ../gtk/friendlist.c:808 #, c-format msgid "Send text to %s" -msgstr "" +msgstr "Szöveg küldése a következőnek: %s" #: ../gtk/friendlist.c:809 -#, fuzzy, c-format +#, c-format msgid "Edit contact '%s'" -msgstr "Kapcsolatinformációk szerkesztése" +msgstr "Kapcsolatinformációk szerkesztése: '%s'" #: ../gtk/friendlist.c:810 #, c-format msgid "Delete contact '%s'" -msgstr "" +msgstr "'%s' partner törlése" #: ../gtk/friendlist.c:852 #, c-format msgid "Add new contact from %s directory" -msgstr "" +msgstr "Új partner hozzáadása ebből a könyvtárból: %s" #: ../gtk/propertybox.c:373 msgid "Rate (Hz)" @@ -279,76 +283,78 @@ msgstr "Hozzáférés" #: ../gtk/propertybox.c:764 msgid "English" -msgstr "" +msgstr "angol" #: ../gtk/propertybox.c:765 msgid "French" -msgstr "" +msgstr "francia" #: ../gtk/propertybox.c:766 msgid "Swedish" -msgstr "" +msgstr "svéd" #: ../gtk/propertybox.c:767 msgid "Italian" -msgstr "" +msgstr "olasz" #: ../gtk/propertybox.c:768 msgid "Spanish" -msgstr "" +msgstr "spanyol" #: ../gtk/propertybox.c:769 msgid "Brazilian Portugese" -msgstr "" +msgstr "brazil-portugál" #: ../gtk/propertybox.c:770 msgid "Polish" -msgstr "" +msgstr "lengyel" #: ../gtk/propertybox.c:771 msgid "German" -msgstr "" +msgstr "német" #: ../gtk/propertybox.c:772 msgid "Russian" -msgstr "" +msgstr "orosz" #: ../gtk/propertybox.c:773 msgid "Japanese" -msgstr "" +msgstr "japán" #: ../gtk/propertybox.c:774 msgid "Dutch" -msgstr "" +msgstr "holland" #: ../gtk/propertybox.c:775 msgid "Hungarian" -msgstr "" +msgstr "magyar" #: ../gtk/propertybox.c:776 msgid "Czech" -msgstr "" +msgstr "cseh" #: ../gtk/propertybox.c:777 msgid "Chinese" -msgstr "" +msgstr "egyszerúsített kínai" #: ../gtk/propertybox.c:778 msgid "Traditional Chinese" -msgstr "" +msgstr "tradícionális kínai" #: ../gtk/propertybox.c:779 msgid "Norwegian" -msgstr "" +msgstr "norvég" #: ../gtk/propertybox.c:780 msgid "Hebrew" -msgstr "" +msgstr "héber" #: ../gtk/propertybox.c:847 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" +"Újra kell indítania a linphone-t, hogy az új nyelv kiválasztása érvényre " +"jusson. " #: ../gtk/propertybox.c:933 msgid "None" @@ -356,11 +362,11 @@ msgstr "Nincs" #: ../gtk/propertybox.c:937 msgid "SRTP" -msgstr "" +msgstr "SRTP" #: ../gtk/propertybox.c:943 msgid "ZRTP" -msgstr "" +msgstr "ZRTP" #: ../gtk/update.c:80 #, c-format @@ -368,125 +374,123 @@ msgid "" "A more recent version is availalble from %s.\n" "Would you like to open a browser to download it ?" msgstr "" +"Elérhető egy újabb verzió a következőn: %s.\n" +"Szeretné, hogy a letöltéshez egy új böngésző ablak nyíljon?" #: ../gtk/update.c:91 msgid "You are running the lastest version." -msgstr "" +msgstr "Ön a legfrissebb verziót használja." #: ../gtk/buddylookup.c:85 msgid "Firstname, Lastname" -msgstr "" +msgstr "Utónév, Családnév" #: ../gtk/buddylookup.c:160 msgid "Error communicating with server." -msgstr "" +msgstr "Hiba a kiszolgálóval történő kommunikáció során." #: ../gtk/buddylookup.c:164 -#, fuzzy msgid "Connecting..." -msgstr "Kapcsolódás" +msgstr "Kapcsolódás..." #: ../gtk/buddylookup.c:168 -#, fuzzy msgid "Connected" -msgstr "Kapcsolódva." +msgstr "Kapcsolódva" #: ../gtk/buddylookup.c:172 msgid "Receiving data..." -msgstr "" +msgstr "Adatok fogadása..." #: ../gtk/buddylookup.c:180 #, c-format msgid "Found %i contact" msgid_plural "Found %i contacts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Találat: %i partner" #: ../gtk/setupwizard.c:34 msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" +"Üdvözöljük !\n" +"Ez a varázsló segít Önnek, hogy sip fiókot használjon hívásaihoz." #: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" -msgstr "" +msgstr "Fiók létrehozása a linphone.org -on" #: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" -msgstr "" +msgstr "Már rendelkezem linphone.org fiókkal, azt szeretném használni" #: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" -msgstr "" +msgstr "Már rendelkezem sip fiókkal, azt szeretném használni" #: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" -msgstr "" +msgstr "Adja meg linphone.org felhasználónevét" #: ../gtk/setupwizard.c:92 -#, fuzzy msgid "Username:" -msgstr "felhasználónév:" +msgstr "Felhasználónév:" #: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 -#, fuzzy msgid "Password:" -msgstr "jelszó:" +msgstr "Jelszó:" #: ../gtk/setupwizard.c:114 msgid "Enter your account informations" -msgstr "" +msgstr "Írja be fiókinformációit" #: ../gtk/setupwizard.c:121 -#, fuzzy msgid "Username*" -msgstr "felhasználónév:" +msgstr "Felhasználónév*" #: ../gtk/setupwizard.c:122 -#, fuzzy msgid "Password*" -msgstr "jelszó:" +msgstr "Jelszó*" #: ../gtk/setupwizard.c:125 msgid "Domain*" -msgstr "" +msgstr "Tartomány" #: ../gtk/setupwizard.c:126 msgid "Proxy" -msgstr "" +msgstr "Proxy" #: ../gtk/setupwizard.c:298 msgid "(*) Required fields" -msgstr "" +msgstr "(*) Mező kitöltése szükséges" #: ../gtk/setupwizard.c:299 -#, fuzzy msgid "Username: (*)" -msgstr "felhasználónév:" +msgstr "Felhasználónév: (*)" #: ../gtk/setupwizard.c:301 -#, fuzzy msgid "Password: (*)" -msgstr "jelszó:" +msgstr "Jelszó: (*)" #: ../gtk/setupwizard.c:303 msgid "Email: (*)" -msgstr "" +msgstr "E-mail: (*)" #: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" -msgstr "" +msgstr "Jelszó megerősítése: (*)" #: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" +"Hiba, a fiók nincs érvényesítve. Valaki már használja ezt a felhasználónevet " +"vagy a kiszolgáló nem elérhető.\n" +"Kérjük, lépjen vissza és próbálja újra." #: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." -msgstr "" +msgstr "Köszönjük! Az Ön fiókját beállítottuk és használatra kész." #: ../gtk/setupwizard.c:388 msgid "" @@ -494,105 +498,103 @@ msgid "" "email.\n" "Then come back here and press Next button." msgstr "" +"Kérjük, érvényesítse fiókját az általunk elektronikus levélben küldött " +"hivatkozásra kattintva.\n" +"Azután térjen vissza ide és kattintson a Következő gombra." #: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" -msgstr "" +msgstr "A fiók beállítása varázsló üdvözli Önt" #: ../gtk/setupwizard.c:569 msgid "Account setup assistant" -msgstr "" +msgstr "Fiók beállítása varázsló" #: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" -msgstr "" +msgstr "Az Ön fiókjának beállítása (1/1 lépés)" #: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" -msgstr "" +msgstr "Adja meg sip felhasználónevét (1/2 lépés)" #: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" -msgstr "" +msgstr "Adja meg a fiókinformációt (1/2 lépés)" #: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" -msgstr "" +msgstr "Érvényesítés (2/2 lépés)" #: ../gtk/setupwizard.c:598 msgid "Error" -msgstr "" +msgstr "Hiba" #: ../gtk/setupwizard.c:602 msgid "Terminating" -msgstr "" +msgstr "Befejezés" #: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 -#, fuzzy, c-format +#, c-format msgid "Call #%i" -msgstr "Hivás előzmények" +msgstr "Hívás #%i" #: ../gtk/incall_view.c:154 #, c-format msgid "Transfer to call #%i with %s" -msgstr "" +msgstr "Átirányítás #%i híváshoz ezzel: %s " #: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 msgid "Not used" -msgstr "" +msgstr "Nem használt" #: ../gtk/incall_view.c:220 msgid "ICE not activated" -msgstr "" +msgstr "ICE nincs aktiválva" #: ../gtk/incall_view.c:222 -#, fuzzy msgid "ICE failed" -msgstr "Hívás elutasítva" +msgstr "ICE nem sikerült" #: ../gtk/incall_view.c:224 msgid "ICE in progress" -msgstr "" +msgstr "ICE folyamatban" #: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" -msgstr "" +msgstr "Átmegy egy vagy több NAT-on" #: ../gtk/incall_view.c:228 -#, fuzzy msgid "Direct" -msgstr "Átirányítva idw %s..." +msgstr "Közvetlen" #: ../gtk/incall_view.c:230 msgid "Through a relay server" -msgstr "" +msgstr "Közvetítő kiszolgálón keresztül" #: ../gtk/incall_view.c:238 msgid "uPnP not activated" -msgstr "" +msgstr "uPnP nincs aktiválva" #: ../gtk/incall_view.c:240 -#, fuzzy msgid "uPnP in progress" -msgstr "Stun keresés folyamatban..." +msgstr "uPnP folyamatban" #: ../gtk/incall_view.c:242 -#, fuzzy msgid "uPnp not available" -msgstr "Nem érhető el információ" +msgstr "uPnP nem elérhető" #: ../gtk/incall_view.c:244 msgid "uPnP is running" -msgstr "" +msgstr "uPnP fut" #: ../gtk/incall_view.c:246 -#, fuzzy msgid "uPnP failed" -msgstr "Hívás elutasítva" +msgstr "uPnP nem sikerült" #: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 msgid "Direct or through server" -msgstr "" +msgstr "közvetlen vagy kiszolgálón keresztül" #: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format @@ -600,115 +602,111 @@ msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" +"letöltés: %f\n" +"feltöltés: %f (kbit/mp)" #: ../gtk/incall_view.c:286 #, c-format msgid "%.3f seconds" -msgstr "" +msgstr "%.3f másodperc" #: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 msgid "Hang up" -msgstr "" +msgstr "Befejezés" #: ../gtk/incall_view.c:477 -#, fuzzy msgid "Calling..." -msgstr "Kapcsolatilista" +msgstr "Hívás folyamatban..." #: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 msgid "00::00::00" -msgstr "" +msgstr "00::00::00" #: ../gtk/incall_view.c:491 -#, fuzzy msgid "Incoming call" -msgstr "Beérkező hívás" +msgstr "Beérkező hívás" #: ../gtk/incall_view.c:528 msgid "good" -msgstr "" +msgstr "jó" #: ../gtk/incall_view.c:530 msgid "average" -msgstr "" +msgstr "közepes" #: ../gtk/incall_view.c:532 msgid "poor" -msgstr "" +msgstr "gyenge" #: ../gtk/incall_view.c:534 msgid "very poor" -msgstr "" +msgstr "nagyon gyenge" #: ../gtk/incall_view.c:536 msgid "too bad" -msgstr "" +msgstr "rossz" #: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 msgid "unavailable" -msgstr "" +msgstr "nem elérhető" #: ../gtk/incall_view.c:652 msgid "Secured by SRTP" -msgstr "" +msgstr "SRTP-vel titkosítva" #: ../gtk/incall_view.c:658 #, c-format msgid "Secured by ZRTP - [auth token: %s]" -msgstr "" +msgstr "ZRTP-vel titkosítva - [hitelesítési jel: %s]" #: ../gtk/incall_view.c:664 msgid "Set unverified" -msgstr "" +msgstr "Beállítás ellenőrizetlenként" #: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 msgid "Set verified" -msgstr "" +msgstr "Beállítás ellenőrzöttként" #: ../gtk/incall_view.c:685 msgid "In conference" -msgstr "" +msgstr "Konferencián" #: ../gtk/incall_view.c:685 -#, fuzzy msgid "In call" -msgstr "Kapcsolatilista" +msgstr "vonalban" #: ../gtk/incall_view.c:719 -#, fuzzy msgid "Paused call" -msgstr "Kapcsolatilista" +msgstr "Várakoztatott hívás" #: ../gtk/incall_view.c:732 #, c-format msgid "%02i::%02i::%02i" -msgstr "" +msgstr "%02i::%02i::%02i" #: ../gtk/incall_view.c:749 -#, fuzzy msgid "Call ended." -msgstr "Hívás vége" +msgstr "Hívás vége." #: ../gtk/incall_view.c:779 msgid "Transfer in progress" -msgstr "" +msgstr "Átvitel folyamatban" #: ../gtk/incall_view.c:782 msgid "Transfer done." -msgstr "" +msgstr "Átvitel befejezve." #: ../gtk/incall_view.c:785 -#, fuzzy msgid "Transfer failed." -msgstr "Hívás elutasítva" +msgstr "Az átvitel sikertelen." #: ../gtk/incall_view.c:829 msgid "Resume" -msgstr "" +msgstr "Visszatérés" #: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 msgid "Pause" -msgstr "" +msgstr "Várakoztatás" #: ../gtk/incall_view.c:901 #, c-format @@ -716,115 +714,109 @@ msgid "" "Recording into\n" "%s %s" msgstr "" +"Felvétel a következőbe\n" +"%s %s" #: ../gtk/incall_view.c:901 msgid "(Paused)" -msgstr "" +msgstr "(Várakoztatva)" #: ../gtk/loginframe.c:93 #, c-format msgid "Please enter login information for %s" -msgstr "" +msgstr "Kérem, adja meg a bejelentkezési információt %s -hoz" #: ../gtk/main.ui.h:1 -#, fuzzy msgid "Callee name" -msgstr "Hívás vége" +msgstr "Hívott neve" #: ../gtk/main.ui.h:2 -#, fuzzy msgid "Send" -msgstr "Hang" +msgstr "Küld" #: ../gtk/main.ui.h:3 msgid "End conference" -msgstr "" +msgstr "Konferencia vége" #: ../gtk/main.ui.h:4 msgid "label" -msgstr "" +msgstr "címke" #: ../gtk/main.ui.h:8 msgid "Record this call to an audio file" -msgstr "" +msgstr "Beszélgetés felvétele hangfájlba" #: ../gtk/main.ui.h:9 msgid "Video" -msgstr "" +msgstr "Videó" #: ../gtk/main.ui.h:11 msgid "Mute" -msgstr "" +msgstr "Elnémítás" #: ../gtk/main.ui.h:12 msgid "Transfer" -msgstr "" +msgstr "Átvitel" #: ../gtk/main.ui.h:15 -#, fuzzy msgid "In call" -msgstr "Beérkező hívás" +msgstr "vonalban" #: ../gtk/main.ui.h:16 -#, fuzzy msgid "Duration" -msgstr "Információk" +msgstr "Időtartam" #: ../gtk/main.ui.h:17 msgid "Call quality rating" -msgstr "" +msgstr "Hívásminőség" #: ../gtk/main.ui.h:18 msgid "_Options" -msgstr "" +msgstr "_Beállítások" #: ../gtk/main.ui.h:19 msgid "Always start video" -msgstr "" +msgstr "Videó indítása mindig" #: ../gtk/main.ui.h:20 -#, fuzzy msgid "Enable self-view" -msgstr "Video engedélyezés" +msgstr "Saját nézet" #: ../gtk/main.ui.h:21 -#, fuzzy msgid "_Help" -msgstr "Help" +msgstr "_Segítség" #: ../gtk/main.ui.h:22 msgid "Show debug window" -msgstr "" +msgstr "Hibakeresési ablak mutatása" #: ../gtk/main.ui.h:23 msgid "_Homepage" -msgstr "" +msgstr "_Honlap" #: ../gtk/main.ui.h:24 msgid "Check _Updates" -msgstr "" +msgstr "Frissítések keresése" #: ../gtk/main.ui.h:25 msgid "Account assistant" -msgstr "" +msgstr "Fiók varázsló" #: ../gtk/main.ui.h:26 -#, fuzzy msgid "SIP address or phone number:" -msgstr "Gépeld ide a sip címet vagy a telefonszámot" +msgstr "Adja meg a SIP címet vagy a telefonszámot:" #: ../gtk/main.ui.h:27 msgid "Initiate a new call" -msgstr "" +msgstr "Új hívás kezdeményezése" #: ../gtk/main.ui.h:28 -#, fuzzy msgid "Contacts" -msgstr "Kapcsolódás" +msgstr "Partnerek" #: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 msgid "Add" -msgstr "" +msgstr "Hozzáadás" #: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 msgid "Edit" @@ -832,95 +824,85 @@ msgstr "Szerkesztés" #: ../gtk/main.ui.h:31 msgid "Search" -msgstr "" +msgstr "Keresés" #: ../gtk/main.ui.h:32 -#, fuzzy msgid "Add contacts from directory" -msgstr "Kapcsolatiinformáció" +msgstr "Partnerek hozzáadása könyvtárból" #: ../gtk/main.ui.h:33 -#, fuzzy msgid "Add contact" -msgstr "Kapcsolatinformációk szerkesztése" +msgstr "Partner hozzáadása" #: ../gtk/main.ui.h:34 -#, fuzzy msgid "Recent calls" -msgstr "Beérkező hívás" +msgstr "Legutóbbi hívások" #: ../gtk/main.ui.h:35 -#, fuzzy msgid "My current identity:" -msgstr "SIP azonosító:" +msgstr "Jelenlegi identitásom:" #: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 -#, fuzzy msgid "Username" -msgstr "felhasználónév:" +msgstr "Felhasználónév" #: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 -#, fuzzy msgid "Password" -msgstr "jelszó:" +msgstr "Jelszó" #: ../gtk/main.ui.h:38 msgid "Internet connection:" -msgstr "" +msgstr "Internet kapcsolat:" #: ../gtk/main.ui.h:39 -#, fuzzy msgid "Automatically log me in" -msgstr "Automatikus valós hostnév megállapítása" +msgstr "Jelentkeztessen be automatikusan" #: ../gtk/main.ui.h:40 -#, fuzzy msgid "Login information" -msgstr "Kapcsolatiinformáció" +msgstr "Bejelentkezési információ" #: ../gtk/main.ui.h:41 -#, fuzzy msgid "Welcome !" -msgstr "Kapcsolatilista" +msgstr "Üdvözöljük !" #: ../gtk/main.ui.h:42 msgid "All users" -msgstr "" +msgstr "Minden felhasználó" #: ../gtk/main.ui.h:43 -#, fuzzy msgid "Online users" msgstr "Elérhető" #: ../gtk/main.ui.h:44 msgid "ADSL" -msgstr "" +msgstr "ADSL" #: ../gtk/main.ui.h:45 msgid "Fiber Channel" -msgstr "" +msgstr "Fiber csatorna" #: ../gtk/main.ui.h:46 -#, fuzzy msgid "Default" -msgstr "SIP azonosító:" +msgstr "Alapértelmezett" #: ../gtk/main.ui.h:47 msgid "Delete" -msgstr "" +msgstr "Törlés" #: ../gtk/about.ui.h:1 -#, fuzzy msgid "About linphone" -msgstr "linphone" +msgstr "Linphone névjegy" #: ../gtk/about.ui.h:2 msgid "(C) Belledonne Communications,2010\n" -msgstr "" +msgstr "(C) Belledonne Communications,2010\n" #: ../gtk/about.ui.h:4 msgid "An internet video phone using the standard SIP (rfc3261) protocol." msgstr "" +"Internetes videó telefon, mely a szabványos SIP (rfc3261) protokolt " +"használja." #: ../gtk/about.ui.h:5 msgid "" @@ -936,342 +918,325 @@ msgid "" "cs: Petr Pisar \n" "hu: anonymous\n" msgstr "" +"francia: Simon Morlat\n" +"angol: Simon Morlat és Delphine Perreau\n" +"olasz: Alberto Zanoni \n" +"német: Jean-Jacques Sarton \n" +"svéd: Daniel Nylander \n" +"spanyol: Jesus Benitez \n" +"japán: YAMAGUCHI YOSHIYA \n" +"brazil-portugál: Rafael Caesar Lenzi \n" +"lengyel: Robert Nasiadek \n" +"cseh: Petr Pisar \n" +"magyar: anonymous és Barczi Viktor \n" #: ../gtk/contact.ui.h:2 -#, fuzzy msgid "SIP Address" -msgstr "Sip cím:" +msgstr "SIP cím" #: ../gtk/contact.ui.h:3 msgid "Show this contact presence status" -msgstr "" +msgstr "A partner jelenlétének mutatása" #: ../gtk/contact.ui.h:4 msgid "Allow this contact to see my presence status" -msgstr "" +msgstr "Megengedem ennek a partnernek, hogy lássa a jelenlétemet" #: ../gtk/contact.ui.h:5 -#, fuzzy msgid "Contact information" -msgstr "Kapcsolatiinformáció" +msgstr "Partner információ" #: ../gtk/log.ui.h:1 msgid "Linphone debug window" -msgstr "" +msgstr "Linphone Hibakereső Ablak" #: ../gtk/log.ui.h:2 msgid "Scroll to end" -msgstr "" +msgstr "Görgetés a végéhez" #: ../gtk/password.ui.h:1 -#, fuzzy msgid "Linphone - Authentication required" -msgstr "Hitelesítést kértek" +msgstr "Linphone - Hitelesítés szükséges" #: ../gtk/password.ui.h:2 msgid "Please enter the domain password" -msgstr "" +msgstr "Kérem adja meg a tartomány jelszavát" #: ../gtk/password.ui.h:3 msgid "UserID" -msgstr "" +msgstr "Felhasználó azonosító" #: ../gtk/call_logs.ui.h:1 -#, fuzzy msgid "Call history" -msgstr "Linphone - Híváselőzmények" +msgstr "Híváselőzmények" #: ../gtk/call_logs.ui.h:2 msgid "Clear all" -msgstr "" +msgstr "Mind törlése" #: ../gtk/call_logs.ui.h:3 -#, fuzzy msgid "Call back" -msgstr "Hivás előzmények" +msgstr "Visszahívás" #: ../gtk/sip_account.ui.h:1 msgid "Linphone - Configure a SIP account" -msgstr "" +msgstr "Linphone - SIP fiók beállítása" #: ../gtk/sip_account.ui.h:2 -#, fuzzy msgid "Your SIP identity:" -msgstr "SIP azonosító:" +msgstr "Az Ön SIP azonosítója:" #: ../gtk/sip_account.ui.h:3 msgid "Looks like sip:@" -msgstr "" +msgstr "Így néz ki: sip:@" #: ../gtk/sip_account.ui.h:4 msgid "sip:" msgstr "sip:" #: ../gtk/sip_account.ui.h:5 -#, fuzzy msgid "SIP Proxy address:" -msgstr "SIP Proxy:" +msgstr "SIP Proxy cím:" #: ../gtk/sip_account.ui.h:6 msgid "Looks like sip:" -msgstr "" +msgstr "Így néz ki: sip:" #: ../gtk/sip_account.ui.h:7 msgid "Route (optional):" msgstr "Út (nem kötelező):" #: ../gtk/sip_account.ui.h:8 -#, fuzzy msgid "Registration duration (sec):" -msgstr "Regisztrálási Időköz:" +msgstr "Regisztrálási Időköz (mp):" #: ../gtk/sip_account.ui.h:9 msgid "Register" -msgstr "" +msgstr "Regisztráció" #: ../gtk/sip_account.ui.h:10 -#, fuzzy msgid "Publish presence information" -msgstr "Jelenléti információ közlése:" +msgstr "Jelenléti információ közlése" #: ../gtk/sip_account.ui.h:11 msgid "Configure a SIP account" -msgstr "" +msgstr "SIP fiók beállítása" #: ../gtk/parameters.ui.h:1 msgid "default soundcard" -msgstr "" +msgstr "alapértelmezett hangkártya" #: ../gtk/parameters.ui.h:2 msgid "a sound card" -msgstr "" +msgstr "egy hangkártya" #: ../gtk/parameters.ui.h:3 msgid "default camera" -msgstr "" +msgstr "alapértelmezett kamera" #: ../gtk/parameters.ui.h:4 msgid "CIF" -msgstr "" +msgstr "CIF" #: ../gtk/parameters.ui.h:5 -#, fuzzy msgid "Audio codecs" -msgstr "Audio kodekek" +msgstr "Audió kódekek" #: ../gtk/parameters.ui.h:6 -#, fuzzy msgid "Video codecs" -msgstr "Audio kodekek" +msgstr "Videó kódekek" #: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 msgid "C" -msgstr "" +msgstr "C" #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" -msgstr "" +msgstr "SIP (UDP)" #: ../gtk/parameters.ui.h:9 msgid "SIP (TCP)" -msgstr "" +msgstr "SIP (TCP)" #: ../gtk/parameters.ui.h:10 msgid "SIP (TLS)" -msgstr "" +msgstr "SIP (TLS)" #: ../gtk/parameters.ui.h:11 msgid "Settings" -msgstr "" +msgstr "Beállítások" #: ../gtk/parameters.ui.h:12 msgid "Set Maximum Transmission Unit:" -msgstr "" +msgstr "Maximum Továbbítási Egység beállítása:" #: ../gtk/parameters.ui.h:13 msgid "Send DTMFs as SIP info" -msgstr "" +msgstr "DTMF küldése SIP infóként" #: ../gtk/parameters.ui.h:14 msgid "Use IPv6 instead of IPv4" -msgstr "" +msgstr "IPv6 használata IPv4 helyett" #: ../gtk/parameters.ui.h:15 -#, fuzzy msgid "Transport" -msgstr "Kapcsolatilista" +msgstr "Átvitel" #: ../gtk/parameters.ui.h:16 msgid "Media encryption type" -msgstr "" +msgstr "Média titkosítás típusa" #: ../gtk/parameters.ui.h:17 msgid "Video RTP/UDP:" -msgstr "" +msgstr "Videó RTP/UDP:" #: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" -msgstr "" +msgstr "Audió RTP/UDP:" #: ../gtk/parameters.ui.h:19 msgid "DSCP fields" -msgstr "" +msgstr "DSCP mezők" #: ../gtk/parameters.ui.h:20 msgid "Fixed" -msgstr "" +msgstr "Javítva" #: ../gtk/parameters.ui.h:21 msgid "Tunnel" -msgstr "" +msgstr "Alagút" #: ../gtk/parameters.ui.h:22 msgid "Media encryption is mandatory" -msgstr "" +msgstr "Média titkosítás kötelező" #: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" -msgstr "" +msgstr "Hálózati protokoll és port" #: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" -msgstr "" +msgstr "Közvetlen Internet kapcsolat" #: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" -msgstr "" +msgstr "NAT / tűzfal mögött (adja meg az átjáró IP címét)" #: ../gtk/parameters.ui.h:26 -#, fuzzy msgid "Public IP address:" -msgstr "Sip cím:" +msgstr "Publikus IP cím:" #: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +msgstr "NAT / tűzfal mögött (STUN használata a feloldáshoz)" #: ../gtk/parameters.ui.h:28 msgid "Behind NAT / Firewall (use ICE)" -msgstr "" +msgstr "NAT / tűzfal mögött (ICE használata)" #: ../gtk/parameters.ui.h:29 msgid "Behind NAT / Firewall (use uPnP)" -msgstr "" +msgstr "NAT / tűzfal mögött (uPnP használata)" #: ../gtk/parameters.ui.h:30 -#, fuzzy msgid "Stun server:" -msgstr "Hang eszköz" +msgstr "STUN kiszolgáló:" #: ../gtk/parameters.ui.h:31 -#, fuzzy msgid "NAT and Firewall" -msgstr "Kapcsolatilista" +msgstr "NAT és tűzfal" #: ../gtk/parameters.ui.h:32 -#, fuzzy msgid "Network settings" -msgstr "Hálózat" +msgstr "Hálózati beállítások" #: ../gtk/parameters.ui.h:33 -#, fuzzy msgid "Ring sound:" msgstr "Csengőhang:" #: ../gtk/parameters.ui.h:34 msgid "ALSA special device (optional):" -msgstr "" +msgstr "Különleges ALSA eszköz (nem kötelező):" #: ../gtk/parameters.ui.h:35 -#, fuzzy msgid "Capture device:" msgstr "Felvevő hang eszköz:" #: ../gtk/parameters.ui.h:36 -#, fuzzy msgid "Ring device:" -msgstr "Csengőhang forrás:" +msgstr "Csengőhang eszköz:" #: ../gtk/parameters.ui.h:37 -#, fuzzy msgid "Playback device:" msgstr "Lejátszó hang eszköz:" #: ../gtk/parameters.ui.h:38 msgid "Enable echo cancellation" -msgstr "" +msgstr "Visszhang-elnyomás engedélyezése" #: ../gtk/parameters.ui.h:39 -#, fuzzy msgid "Audio" -msgstr "Kapcsolatilista" +msgstr "Audió" #: ../gtk/parameters.ui.h:40 -#, fuzzy msgid "Video input device:" -msgstr "Hang eszköz" +msgstr "Videó bemeneti eszköz:" #: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" -msgstr "" +msgstr "Kívánt videó felbontás:" #: ../gtk/parameters.ui.h:42 -#, fuzzy msgid "Video" -msgstr "Kapcsolatilista" +msgstr "Videó" #: ../gtk/parameters.ui.h:43 msgid "Multimedia settings" -msgstr "" +msgstr "Multimédia beállítások" #: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" -msgstr "" +msgstr "Ez a rész határozza meg az Ön SIP címét, amikor nem használ SIP fiókot" #: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" -msgstr "" +msgstr "Az Ön megjelenített neve (pl. Kis József):" #: ../gtk/parameters.ui.h:46 -#, fuzzy msgid "Your username:" -msgstr "felhasználónév:" +msgstr "Az Ön felhasználóneve:" #: ../gtk/parameters.ui.h:47 -#, fuzzy msgid "Your resulting SIP address:" -msgstr "Saját sip cím:" +msgstr "Az Ön így keletkezett SIP címe:" #: ../gtk/parameters.ui.h:48 -#, fuzzy msgid "Default identity" -msgstr "SIP azonosító:" +msgstr "Alapértelmezett identitás" #: ../gtk/parameters.ui.h:49 msgid "Wizard" -msgstr "" +msgstr "Varázsló" #: ../gtk/parameters.ui.h:52 msgid "Remove" msgstr "Eltávolítás" #: ../gtk/parameters.ui.h:53 -#, fuzzy msgid "Proxy accounts" -msgstr "Kapcsolatilista" +msgstr "Proxy fiókok" #: ../gtk/parameters.ui.h:54 msgid "Erase all passwords" -msgstr "" +msgstr "Minden kulcsszó törlése" #: ../gtk/parameters.ui.h:55 -#, fuzzy msgid "Privacy" -msgstr "Kapcsolatilista" +msgstr "Titoktartás" #: ../gtk/parameters.ui.h:56 msgid "Manage SIP Accounts" -msgstr "" +msgstr "SIP fiókok beállítása" #: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" @@ -1282,80 +1247,72 @@ msgid "Disable" msgstr "Tiltás" #: ../gtk/parameters.ui.h:59 -#, fuzzy msgid "Codecs" -msgstr "Kapcsolatilista" +msgstr "Kódekek" #: ../gtk/parameters.ui.h:60 msgid "0 stands for \"unlimited\"" -msgstr "" +msgstr "A 0 jelentése \"végtelen\"" #: ../gtk/parameters.ui.h:61 -#, fuzzy msgid "Upload speed limit in Kbit/sec:" -msgstr "Feltöltési sávszélesség (kbit/sec):" +msgstr "Feltöltési sebesség korlát (kbit/mp):" #: ../gtk/parameters.ui.h:62 -#, fuzzy msgid "Download speed limit in Kbit/sec:" -msgstr "Letöltési sávszélesség (kbit/sec):" +msgstr "Letöltési sebesség korlát (kbit/mp):" #: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" -msgstr "" +msgstr "Alkalmazkodó mérték-szabályozás engedélyezése" #: ../gtk/parameters.ui.h:64 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" +"Az alkalmazkodó mérték-szabályozás egy módszer, mely erőteljesen próbálja " +"megállapítani a rendelkezésre álló sávszélességet hívás alatt." #: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" -msgstr "" +msgstr "Sávszélesség szabályozása" #: ../gtk/parameters.ui.h:66 -#, fuzzy msgid "Codecs" -msgstr "Kodekek" +msgstr "Kódekek" #: ../gtk/parameters.ui.h:67 -#, fuzzy msgid "Language" -msgstr "Kapcsolatilista" +msgstr "Nyelv" #: ../gtk/parameters.ui.h:68 msgid "Show advanced settings" -msgstr "" +msgstr "Haladó beállítások megjelenítése" #: ../gtk/parameters.ui.h:69 -#, fuzzy msgid "Level" -msgstr "Kapcsolatilista" +msgstr "Szint" #: ../gtk/parameters.ui.h:70 -#, fuzzy msgid "User interface" -msgstr "felhasználónév:" +msgstr "Felhasználói környezet" #: ../gtk/parameters.ui.h:71 -#, fuzzy msgid "Done" -msgstr "Elveszítve" +msgstr "Kész" #: ../gtk/buddylookup.ui.h:1 -#, fuzzy msgid "Search contacts in directory" -msgstr "Kapcsolatiinformáció" +msgstr "Partnerek keresése könyvtárban" #: ../gtk/buddylookup.ui.h:2 msgid "Add to my list" -msgstr "" +msgstr "Hozzáadása a listámhoz" #: ../gtk/buddylookup.ui.h:3 -#, fuzzy msgid "Search somebody" -msgstr "Kapcsolatilista" +msgstr "Keres valakit" #: ../gtk/waiting.ui.h:1 msgid "Linphone" @@ -1363,12 +1320,11 @@ msgstr "Linphone" #: ../gtk/waiting.ui.h:2 msgid "Please wait" -msgstr "" +msgstr "Kérem várjon" #: ../gtk/dscp_settings.ui.h:1 -#, fuzzy msgid "Dscp settings" -msgstr "Hálózat" +msgstr "DSCP beállítások" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" @@ -1376,80 +1332,75 @@ msgstr "SIP" #: ../gtk/dscp_settings.ui.h:3 msgid "Audio RTP stream" -msgstr "" +msgstr "Audió RTP folyam" #: ../gtk/dscp_settings.ui.h:4 msgid "Video RTP stream" -msgstr "" +msgstr "Videó RTP folyam" #: ../gtk/dscp_settings.ui.h:5 msgid "Set DSCP values (in hexadecimal)" -msgstr "" +msgstr "DSCP értékek beállítása (hexadecimális)" #: ../gtk/call_statistics.ui.h:1 -#, fuzzy msgid "Call statistics" -msgstr "Hivás előzmények" +msgstr "Hívási statisztika" #: ../gtk/call_statistics.ui.h:2 -#, fuzzy msgid "Audio codec" -msgstr "Audio kodekek" +msgstr "Audió kódek" #: ../gtk/call_statistics.ui.h:3 -#, fuzzy msgid "Video codec" -msgstr "Audio kodekek" +msgstr "Videó kódek" #: ../gtk/call_statistics.ui.h:4 msgid "Audio IP bandwidth usage" -msgstr "" +msgstr "Audió IP sávszélesség használat" #: ../gtk/call_statistics.ui.h:5 msgid "Audio Media connectivity" -msgstr "" +msgstr "Audió média kapcsolat" #: ../gtk/call_statistics.ui.h:6 msgid "Video IP bandwidth usage" -msgstr "" +msgstr "Videó IP sávszélesség használat" #: ../gtk/call_statistics.ui.h:7 msgid "Video Media connectivity" -msgstr "" +msgstr "Videó média kapcsolat" #: ../gtk/call_statistics.ui.h:8 -#, fuzzy msgid "Round trip time" -msgstr "Hang beállítások" +msgstr "Körbeérés ideje" #: ../gtk/call_statistics.ui.h:9 -#, fuzzy msgid "Call statistics and information" -msgstr "Kapcsolatiinformáció" +msgstr "Hívási statisztika és információ" #: ../gtk/tunnel_config.ui.h:1 msgid "Configure VoIP tunnel" -msgstr "" +msgstr "VoIP alagút beállítása" #: ../gtk/tunnel_config.ui.h:2 msgid "Host" -msgstr "" +msgstr "Hoszt" #: ../gtk/tunnel_config.ui.h:3 msgid "Port" -msgstr "" +msgstr "Port" #: ../gtk/tunnel_config.ui.h:6 msgid "Configure tunnel" -msgstr "" +msgstr "Alagút beállítása" #: ../gtk/tunnel_config.ui.h:9 msgid "Configure http proxy (optional)" -msgstr "" +msgstr "http proxy beállítása (nem kötelező)" #: ../gtk/keypad.ui.h:1 msgid "D" -msgstr "" +msgstr "D" #: ../gtk/keypad.ui.h:2 msgid "#" @@ -1465,23 +1416,23 @@ msgstr "*" #: ../gtk/keypad.ui.h:6 msgid "9" -msgstr "" +msgstr "9" #: ../gtk/keypad.ui.h:7 msgid "8" -msgstr "" +msgstr "8" #: ../gtk/keypad.ui.h:8 msgid "7" -msgstr "" +msgstr "7" #: ../gtk/keypad.ui.h:9 msgid "B" -msgstr "" +msgstr "B" #: ../gtk/keypad.ui.h:10 msgid "6" -msgstr "" +msgstr "6" #: ../gtk/keypad.ui.h:11 msgid "5" @@ -1489,19 +1440,19 @@ msgstr "5" #: ../gtk/keypad.ui.h:12 msgid "4" -msgstr "" +msgstr "4" #: ../gtk/keypad.ui.h:13 msgid "A" -msgstr "" +msgstr "A" #: ../gtk/keypad.ui.h:14 msgid "3" -msgstr "" +msgstr "3" #: ../gtk/keypad.ui.h:15 msgid "2" -msgstr "" +msgstr "2" #: ../gtk/keypad.ui.h:16 msgid "1" @@ -1562,49 +1513,44 @@ msgid "Contacting" msgstr "Kapcsolódás" #: ../coreapi/linphonecore.c:2439 -#, fuzzy msgid "Could not call" -msgstr "nem sikerült hívni" +msgstr "Nem sikerült hívni" #: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" -msgstr "" +msgstr "Elnézést, elértük a egyidejű hívások maximális számát" #: ../coreapi/linphonecore.c:2731 -#, fuzzy msgid "is contacting you" -msgstr "kapcsolatba lép veled." +msgstr "kapcsolatba lépett veled." #: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." -msgstr "" +msgstr "és automatikus választ kért." #: ../coreapi/linphonecore.c:2732 msgid "." -msgstr "" +msgstr "." #: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." -msgstr "" +msgstr "A hívási jellemzők módosítása..." #: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Kapcsolódva." #: ../coreapi/linphonecore.c:3166 -#, fuzzy msgid "Call aborted" -msgstr "megszakítva" +msgstr "Hívás megszakítva" #: ../coreapi/linphonecore.c:3351 -#, fuzzy msgid "Could not pause the call" -msgstr "nem sikerült hívni" +msgstr "Nem sikerült várakoztatni a hívást" #: ../coreapi/linphonecore.c:3356 -#, fuzzy msgid "Pausing the current call..." -msgstr "nem sikerült hívni" +msgstr "Jelenlegi hívás várakoztatásának aktiválása..." #: ../coreapi/misc.c:148 msgid "" @@ -1636,7 +1582,7 @@ msgstr "Stun keresés folyamatban..." #: ../coreapi/misc.c:630 msgid "ICE local candidates gathering in progress..." -msgstr "" +msgstr "ICE helyi jelentkezők begyűjtése folyamatban..." #: ../coreapi/friend.c:33 msgid "Online" @@ -1647,21 +1593,18 @@ msgid "Busy" msgstr "Foglalt" #: ../coreapi/friend.c:39 -#, fuzzy msgid "Be right back" -msgstr "Legyen igazad" +msgstr "Mindjárt visszajön" #: ../coreapi/friend.c:42 msgid "Away" msgstr "Nem elérhető" #: ../coreapi/friend.c:45 -#, fuzzy msgid "On the phone" -msgstr "Telefonál" +msgstr "Vonalban" #: ../coreapi/friend.c:48 -#, fuzzy msgid "Out to lunch" msgstr "Ebédelni ment" @@ -1670,95 +1613,94 @@ msgid "Do not disturb" msgstr "Ne zavarj" #: ../coreapi/friend.c:54 -#, fuzzy msgid "Moved" -msgstr "Kodekek" +msgstr "Elment" #: ../coreapi/friend.c:57 msgid "Using another messaging service" -msgstr "" +msgstr "Másik üzenő szolgáltatás használata" #: ../coreapi/friend.c:60 -#, fuzzy msgid "Offline" -msgstr "Elérhető" +msgstr "Nem elérhető" #: ../coreapi/friend.c:63 msgid "Pending" -msgstr "" +msgstr "Függőben" #: ../coreapi/friend.c:66 msgid "Unknown-bug" -msgstr "" +msgstr "Ismeretlen programhiba" #: ../coreapi/proxy.c:204 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" +"Az Ön által megadott SIP proxy cím érvénytelen. \"sip:\"-tal kell kezdődnie, " +"ezt egy hosztnév követi." #: ../coreapi/proxy.c:210 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" +"Az Ön által megadott SIP identitás érvénytelen.\n" +"Így kéne kinéznie: sip:felhasznalonev@proxytartomany, például sip:" +"aladar@pelda.hu" #: ../coreapi/proxy.c:1068 -#, fuzzy, c-format +#, c-format msgid "Could not login as %s" -msgstr "Nemtalálható a pixmap fájl: %s" +msgstr "Nem sikerült belépni ezzel: %s" #: ../coreapi/callbacks.c:283 -#, fuzzy msgid "Remote ringing." -msgstr "Távoli szolgáltatások" +msgstr "Távoli csengés." #: ../coreapi/callbacks.c:303 -#, fuzzy msgid "Remote ringing..." -msgstr "Távoli szolgáltatások" +msgstr "Távoli csengés..." #: ../coreapi/callbacks.c:314 msgid "Early media." msgstr "Korai médiák." #: ../coreapi/callbacks.c:365 -#, fuzzy, c-format +#, c-format msgid "Call with %s is paused." -msgstr "Chat-elés %s -el" +msgstr "A hívás a következővel: %s várakoztatva" #: ../coreapi/callbacks.c:378 #, c-format msgid "Call answered by %s - on hold." -msgstr "" +msgstr "%s fogadta a hívást - várakoztatva." #: ../coreapi/callbacks.c:389 -#, fuzzy msgid "Call resumed." -msgstr "Hívás vége" +msgstr "Hívás visszatért" #: ../coreapi/callbacks.c:394 -#, fuzzy, c-format +#, c-format msgid "Call answered by %s." -msgstr "" -"Hívás vagy\n" -"Válasz" +msgstr "%s válaszolt a hívásra." #: ../coreapi/callbacks.c:409 msgid "Incompatible, check codecs or security settings..." msgstr "" +"Nem kompatibilis, ellenőrizze a kódek- vagy a biztonsági beállításokat..." #: ../coreapi/callbacks.c:457 msgid "We have been resumed." -msgstr "" +msgstr "Visszatértünk." #: ../coreapi/callbacks.c:466 msgid "We are paused by other party." -msgstr "" +msgstr "Megállítva a másik fél által." #: ../coreapi/callbacks.c:472 msgid "Call is updated by remote." -msgstr "" +msgstr "A hívás távolról frissítve." #: ../coreapi/callbacks.c:541 msgid "Call terminated." @@ -1782,27 +1724,24 @@ msgid "Call declined." msgstr "Hívás elutasítva" #: ../coreapi/callbacks.c:568 -#, fuzzy msgid "No response." -msgstr "időtúllépés után nincs válasz" +msgstr "Nincs válasz." #: ../coreapi/callbacks.c:572 msgid "Protocol error." -msgstr "" +msgstr "Protokol hiba." #: ../coreapi/callbacks.c:588 -#, fuzzy msgid "Redirected" -msgstr "Átirányítva idw %s..." +msgstr "Átirányítva" #: ../coreapi/callbacks.c:624 msgid "Incompatible media parameters." -msgstr "" +msgstr "Nem kompatibilis médiajellemzők." #: ../coreapi/callbacks.c:630 -#, fuzzy msgid "Call failed." -msgstr "Hívás elutasítva" +msgstr "Nem sikerült a hívás." #: ../coreapi/callbacks.c:733 #, c-format @@ -1810,9 +1749,9 @@ msgid "Registration on %s successful." msgstr "A regisztáció a %s -n sikerült." #: ../coreapi/callbacks.c:734 -#, fuzzy, c-format +#, c-format msgid "Unregistration on %s done." -msgstr "A regisztáció a %s -n sikerült." +msgstr "A kiregisztrálás kész a következőn: %s ." #: ../coreapi/callbacks.c:754 msgid "no response timeout" @@ -1824,16 +1763,15 @@ msgid "Registration on %s failed: %s" msgstr "A regisztáció a %s -n nem sikerült: %s" #: ../coreapi/linphonecall.c:129 -#, fuzzy, c-format +#, c-format msgid "Authentication token is %s" -msgstr "Hitelesítési információ" +msgstr "Hitelesítési jel: %s" #: ../coreapi/linphonecall.c:2314 -#, fuzzy, c-format +#, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." -msgstr[0] "Van %i elhibázott hivás." -msgstr[1] "Van %i elhibázott hivás." +msgstr[0] "Van %i nem fogadott hivás." #~ msgid "Chat with %s" #~ msgstr "Chat-elés %s -el" From 12a6e42e5a4f2d7239ca0b527e334841e9bba9ff Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 2 Apr 2013 15:23:29 +0200 Subject: [PATCH 055/177] Allow uPnP 1.0 uuid --- coreapi/upnp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 75d0ef9e2..ec7d1f9c6 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -31,7 +31,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define UPNP_CORE_READY_CHECK 1 #define UPNP_CORE_RETRY_DELAY 4 #define UPNP_CALL_RETRY_DELAY 1 -#define UPNP_UUID_LEN 32 +#define UPNP_UUID_LEN 128 #define UPNP_UUID_LEN_STR UPNP_TOSTRING(UPNP_UUID_LEN) /* * uPnP Definitions @@ -1236,7 +1236,7 @@ static void linphone_upnp_config_list_port_bindings_cb(const char *entry, struct bool_t valid = TRUE; UpnpPortBinding *port; - ret = sscanf(entry, "%"UPNP_UUID_LEN_STR"s-%3s-%i-%i", device_id, protocol_str, &external_port, &local_port); + ret = sscanf(entry, "%"UPNP_UUID_LEN_STR"[^-]-%3s-%i-%i", device_id, protocol_str, &external_port, &local_port); if(ret == 4) { // Handle only wanted device bindings if(device_id != NULL && strcmp(cookie->device_id, device_id) != 0) { From 00c725bcebe3436146feda79297785ffd7a702cd Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Apr 2013 15:41:14 +0200 Subject: [PATCH 056/177] Use correct mode parameter to fopen() call ("r+" instead of "rw"). --- coreapi/lpconfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index db4e5de5c..dd3de63db 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -215,7 +215,7 @@ LpConfig * lp_config_new(const char *filename){ if (filename!=NULL){ ms_message("Using (r/w) config information from %s", filename); lpconfig->filename=ortp_strdup(filename); - lpconfig->file=fopen(filename,"rw"); + lpconfig->file=fopen(filename,"r+"); if (lpconfig->file!=NULL){ struct stat fileStat; lp_config_parse(lpconfig,lpconfig->file); From 1736d38e98260bd8441a90e549260ddda8d2243d Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 3 Apr 2013 18:15:59 +0200 Subject: [PATCH 057/177] javadoc enhancements --- coreapi/linphonecore.h | 62 +++- .../org/linphone/core/CallDirection.java | 10 +- .../org/linphone/core/LinphoneAddress.java | 29 +- .../org/linphone/core/LinphoneAuthInfo.java | 2 +- .../org/linphone/core/LinphoneCallLog.java | 20 +- .../org/linphone/core/LinphoneCore.java | 310 +++++++++++++++--- .../linphone/core/LinphoneCoreFactory.java | 6 + .../org/linphone/core/LinphoneCoreImpl.java | 21 +- 8 files changed, 385 insertions(+), 75 deletions(-) diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index ab8836a5d..241813790 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -47,12 +47,29 @@ typedef struct _LinphoneCore LinphoneCore; struct _LpConfig; -struct _LCSipTransports{ +/** + * Linphone core SIP transport ports. + * Use with #linphone_core_set_sip_transports + * @ingroup initializing + */ +typedef struct _LCSipTransports{ + /** + * udp port to listening on, negative value if not set + * */ int udp_port; + /** + * tcp port to listening on, negative value if not set + * */ int tcp_port; + /** + * dtls port to listening on, negative value if not set + * */ int dtls_port; + /** + * tls port to listening on, negative value if not set + * */ int tls_port; -}; +} LCSipTransports; typedef struct _LCSipTransports LCSipTransports; @@ -934,7 +951,12 @@ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const Linpho int linphone_core_defer_call_update(LinphoneCore *lc, LinphoneCall *call); int linphone_core_accept_call_update(LinphoneCore *lc, LinphoneCall *call, const LinphoneCallParams *params); - +/** + * @ingroup media_parameters + * Get default call parameters reflecting current linphone core configuration + * @param LinphoneCore object + * @return LinphoneCallParams + */ LinphoneCallParams *linphone_core_create_default_call_parameters(LinphoneCore *lc); LinphoneCall *linphone_core_get_call_by_remote_address(LinphoneCore *lc, const char *remote_address); @@ -982,16 +1004,23 @@ const MSList *linphone_core_get_video_codecs(const LinphoneCore *lc); int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs); bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const PayloadType *pt); - +/** + * Enable payload type + * @param linphone core + * @param pt payload type to enable, can be retrieve from #linphone_core_find_payload_type + * @param TRUE if enabled + * @return 0 if succed + * + */ int linphone_core_enable_payload_type(LinphoneCore *lc, PayloadType *pt, bool_t enable); /** - * Wildcard value used by #linphone_core_find_payload_type to ignore rate in search algirithm + * Wildcard value used by #linphone_core_find_payload_type to ignore rate in search algorithm * @ingroup media_parameters */ #define LINPHONE_FIND_PAYLOAD_IGNORE_RATE -1 /** - * Wildcard value used by #linphone_core_find_payload_type to ignore channel in search algirithm + * Wildcard value used by #linphone_core_find_payload_type to ignore channel in search algorithm * @ingroup media_parameters */ #define LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS -1 @@ -1370,7 +1399,13 @@ void linphone_core_refresh_registers(LinphoneCore* lc); /* Path to the file storing secrets cache */ void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file); const char *linphone_core_get_zrtp_secrets_file(LinphoneCore *lc); - +/** + * Search from the list of current calls if a remote address match uri + * @ingroup call_control + * @param lc + * @param uri which should match call remote uri + * @return LinphoneCall or NULL is no match is found + */ const LinphoneCall* linphone_core_find_call_from_uri(LinphoneCore *lc, const char *uri); int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call); @@ -1385,8 +1420,19 @@ int linphone_core_terminate_conference(LinphoneCore *lc); int linphone_core_get_conference_size(LinphoneCore *lc); int linphone_core_start_conference_recording(LinphoneCore *lc, const char *path); int linphone_core_stop_conference_recording(LinphoneCore *lc); - +/** + * Get the maximum number of simultaneous calls Linphone core can manage at a time. All new call above this limit are declined with a busy answer + * @ingroup initializing + * @param lc core + * @return max number of simultaneous calls + */ int linphone_core_get_max_calls(LinphoneCore *lc); +/** + * Set the maximum number of simultaneous calls Linphone core can manage at a time. All new call above this limit are declined with a busy answer + * @ingroup initializing + * @param lc core + * @param max number of simultaneous calls + */ void linphone_core_set_max_calls(LinphoneCore *lc, int max); bool_t linphone_core_sound_resources_locked(LinphoneCore *lc); diff --git a/java/common/org/linphone/core/CallDirection.java b/java/common/org/linphone/core/CallDirection.java index 142708cc2..40a5e32d9 100644 --- a/java/common/org/linphone/core/CallDirection.java +++ b/java/common/org/linphone/core/CallDirection.java @@ -18,9 +18,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; - +/** + * Enum representing the direction of a call. +**/ public class CallDirection { + /** + * outgoing calls* + * */ public static CallDirection Outgoing = new CallDirection("CallOutgoing"); + /** + * incoming calls + */ public static CallDirection Incoming = new CallDirection("Callincoming"); private String mStringValue; private CallDirection(String aStringValue) { diff --git a/java/common/org/linphone/core/LinphoneAddress.java b/java/common/org/linphone/core/LinphoneAddress.java index b2a2c9380..fe5164b01 100644 --- a/java/common/org/linphone/core/LinphoneAddress.java +++ b/java/common/org/linphone/core/LinphoneAddress.java @@ -39,21 +39,48 @@ public interface LinphoneAddress { */ public String getUserName(); /** - * + * Domain name * @return null if not set */ public String getDomain(); + /** + * Port as String + * @return null if not set + */ public String getPort(); + /** + * Port as integer value. + * @return negative value if not set if not set + */ public int getPortInt(); /** * set display name * @param name */ public void setDisplayName(String name); + /** + * set user name + * @param username + */ public void setUserName(String username); + /** + * set domain name + * @param domain + */ public void setDomain(String domain); + /** + * set port as String + * @param port, null if not set + */ public void setPort(String port); + /** + * set port as int + * @param port, negative value if not set + */ public void setPortInt(int port); + /** + * Removes address's tags and uri headers so that it is displayable to the user. + **/ public void clean(); /** diff --git a/java/common/org/linphone/core/LinphoneAuthInfo.java b/java/common/org/linphone/core/LinphoneAuthInfo.java index ed8a84017..0213720eb 100644 --- a/java/common/org/linphone/core/LinphoneAuthInfo.java +++ b/java/common/org/linphone/core/LinphoneAuthInfo.java @@ -20,7 +20,7 @@ package org.linphone.core; /** * Object holding authentication information. * In most case, authentication information consists of a username and password. Sometimes, a userid is required by proxy, and realm can be useful to discriminate different SIP domains. - *
This object is instanciated using {@link LinphoneCoreFactory#createAuthInfo(String, String, String)}. + *
This object is instantiated using either {@link LinphoneCoreFactory#createAuthInfo(String, String, String)} or {@link LinphoneCoreFactory#createAuthInfo(String, String, String, String, String)}. *
*Once created and filled, a LinphoneAuthInfo must be added to the LinphoneCore in order to become known and used automatically when needed. *Use {@link LinphoneCore#addAuthInfo(LinphoneAuthInfo)} for that purpose. diff --git a/java/common/org/linphone/core/LinphoneCallLog.java b/java/common/org/linphone/core/LinphoneCallLog.java index 2e839234f..f1dd742b3 100644 --- a/java/common/org/linphone/core/LinphoneCallLog.java +++ b/java/common/org/linphone/core/LinphoneCallLog.java @@ -24,7 +24,11 @@ package org.linphone.core; import java.util.Vector; - +/** + * Object representing a call log. + * + * +**/ public interface LinphoneCallLog { /** * Represents call status @@ -91,26 +95,30 @@ public interface LinphoneCallLog { public CallDirection getDirection(); /** * get status of this call - * @return + * @return CallStatus */ public CallStatus getStatus(); /** - * @return a human readble String with the start date/time of the call + * A human readable String with the start date/time of the call + * @return String */ public String getStartDate(); /** - * @return a timestamp of the start date/time of the call in milliseconds since January 1st 1970 + * A timestamp of the start date/time of the call in milliseconds since January 1st 1970 + * @return long */ public long getTimestamp(); /** - * @return the call duration, in seconds + * The call duration, in seconds + * @return int */ public int getCallDuration(); /** - * @return the call id from signaling + * Call id from signaling + * @return int */ public int getCallId(); } diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index ab25520a4..144b7dfe2 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -20,6 +20,9 @@ package org.linphone.core; import java.util.Vector; +import org.linphone.core.LinphoneCall.State; +import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; + /** * Linphone core main object created by method {@link LinphoneCoreFactory#createLinphoneCore(LinphoneCoreListener, String, String, Object)}. * @@ -172,11 +175,22 @@ public interface LinphoneCore { } /** - * Signaling transports ports. + * Linphone core SIP transport ports. + * Use with {@link LinphoneCore#setSignalingTransportPorts(Transports)} + * @ingroup initializing */ static public class Transports { + /** + * udp port to listening on, negative value if not set + * */ public int udp; + /** + * tcp port to listening on, negative value if not set + * */ public int tcp; + /** + * tls port to listening on, negative value if not set + * */ public int tls; public Transports() {}; @@ -389,10 +403,10 @@ public interface LinphoneCore { public LinphoneCall invite(String destination)throws LinphoneCoreException; /** * Initiates an outgoing call given a destination LinphoneAddress - *
The LinphoneAddress can be constructed directly using linphone_address_new(), or created by linphone_core_interpret_url(). The application doesn't own a reference to the returned LinphoneCall object. Use linphone_call_ref() to safely keep the LinphoneCall pointer valid within your application. + *
The LinphoneAddress can be constructed directly using {@link LinphoneCoreFactory#createLinphoneAddress} , or created {@link LinphoneCore#interpretUrl(String)}. . * @param to the destination of the call (sip address). - * @return LinphoneCall - * @throws LinphoneCoreException + * @return linphone call + * @throws LinphoneCoreException if linphone call cannot be created */ public LinphoneCall invite(LinphoneAddress to)throws LinphoneCoreException; /** @@ -402,6 +416,8 @@ public interface LinphoneCore { public void terminateCall(LinphoneCall aCall); /** * Declines an incoming call, providing a reason for declining it. + * @param call the LinphoneCall, must be in the {@link LinphoneCall.State#IncomingReceived} state. + * @param reason the reason for rejecting the call: {@link Reason#Declined} or {@link Reason#Busy} */ public void declineCall(LinphoneCall aCall, Reason reason); /** @@ -417,7 +433,7 @@ public interface LinphoneCore { public LinphoneAddress getRemoteAddress(); /** * - * @return TRUE if there is a call running or pending. + * @return true if there is a call running or pending. */ public boolean isIncall(); /** @@ -482,8 +498,6 @@ public interface LinphoneCore { */ public void deferCallUpdate(LinphoneCall aCall) throws LinphoneCoreException; - public void startRinging(); - /** * @return a list of LinphoneCallLog */ @@ -499,7 +513,7 @@ public interface LinphoneCore { */ public void setNetworkReachable(boolean isReachable); /** - * + * Get network state has known by {@link LinphoneCore} * @return if false, there is no network connection. */ public boolean isNetworkReachable(); @@ -541,16 +555,16 @@ public interface LinphoneCore { /** * Initiate a dtmf signal if in call - * @param number + * @param send dtmf ['0'..'9'] | '#', '*' */ void sendDtmf(char number); /** * Initiate a dtmf signal to the speaker if not in call. * Sending of the DTMF is done in another function. - * @param number + * @param dtmf ['0'..'9'] | '#', '*' * @param duration in ms , -1 for unlimited */ - void playDtmf(char number,int duration); + void playDtmf(char dtmf,int duration); /** * stop current dtmf */ @@ -560,23 +574,43 @@ public interface LinphoneCore { * remove all call logs */ void clearCallLogs(); - /*** - * get payload type from mime type, clock rate, and number of channels.- - * - * return null if not found - */ + + + + + /** + * Get payload type from mime type and clock rate + * + * This function searches in audio and video codecs for the given payload type name and clockrate. + * @param mime payload mime type (I.E SPEEX, PCMU, VP8) + * @param clockRate (I.E 8000, 16000, 90000, ...) + * @param channels number of channels + * @return Returns null if not found. + */ PayloadType findPayloadType(String mime, int clockRate, int channels); /*** * get payload type from mime type and clock rate.. - * - * return null if not found + * Same as @{link {@link #findPayloadType(String, int, int)} but ignoring channels params + * @param mime payload mime type (I.E SPEEX, PCMU, VP8) + * @param clockRate (I.E 8000, 16000, 90000, ...) + * @return null if not found */ PayloadType findPayloadType(String mime, int clockRate); + + /*** + * get payload type from mime type + * Same as @{link {@link #findPayloadType(String, int, int)} but ignoring channels and clock rate params + * @param mime payload mime type (I.E SPEEX, PCMU, VP8) + * @return null if not found + */ + PayloadType findPayloadType(String mime); + /** - * not implemented yet - * @param pt - * @param enable - * @throws LinphoneCoreException + * Enable payload type + * @param pt payload type to enable, can be retrieve from {@link #findPayloadType} + * @param true if enabled + * @exception LinphoneCoreException + * */ void enablePayloadType(PayloadType pt, boolean enable) throws LinphoneCoreException; /** @@ -595,10 +629,11 @@ public interface LinphoneCore { */ boolean isEchoLimiterEnabled(); /** - * @param transports used for signaling (TCP, UDP and TLS) + * Set transport ports linphone core will listen on + * @param local transports ports used for signaling (TCP, UDP and TLS) */ void setSignalingTransportPorts(Transports transports); - /** + /**Get * @return transports used for signaling (TCP, UDP, TLS) */ Transports getSignalingTransportPorts(); @@ -632,12 +667,36 @@ public interface LinphoneCore { * @return {@link LinphoneChatRoom} where messaging can take place. */ LinphoneChatRoom createChatRoom(String to); - + /** + * Set the native video window id where the video is to be displayed. + * On Android, it must be of type {@link AndroidVideoWindowImpl} + * @param video window of type {@link AndroidVideoWindowImpl} + **/ void setVideoWindow(Object w); + /** + * Set the native video window id where the video preview is to be displayed. + * On Android, it must of type {@link SurfaceView} + * @param video window of type {@link SurfaceView} + **/ void setPreviewWindow(Object w); + /** + * Tells the core the device current orientation. This can be used by capture filters + * on mobile devices to select between portrait/landscape mode and to produce properly + * oriented images. The exact meaning of the value in rotation if left to each device + * specific implementations. + *@param rotation . Android supported values are 0, 90, 180 and 270. + * + **/ void setDeviceRotation(int rotation); - + /** + * Sets the active video device. + * + * @param id of the video device as returned by {@link AndroidCameraConfiguration#retrieveCameras} + **/ void setVideoDevice(int id); + /** + * Returns the id of the currently active video device as found in {@link AndroidCameraConfiguration#retrieveCameras}. + **/ int getVideoDevice(); /** @@ -665,6 +724,7 @@ public interface LinphoneCore { */ void setStunServer(String stun_server); /** + * Get STUN server * @return stun server address if previously set. */ String getStunServer(); @@ -678,11 +738,35 @@ public interface LinphoneCore { * @return previously set firewall policy. */ FirewallPolicy getFirewallPolicy(); - + /** + * Initiates an outgoing call given a destination LinphoneAddress + * + * @param addr the destination of the call {@link #LinphoneAddress }. + * @param params call parameters {@link #LinphoneCallParams } + * + *
The LinphoneAddress can be constructed directly using {@link LinphoneCoreFactory#createLinphoneAddress} , or created {@link LinphoneCore#interpretUrl(String)}. . + * + * @return a {@link #LinphoneCall LinphoneCall} object + * @throws LinphoneCoreException in case of failure + **/ LinphoneCall inviteAddressWithParams(LinphoneAddress destination, LinphoneCallParams params) throws LinphoneCoreException ; - + /** + * Updates a running call according to supplied call parameters or parameters changed in the LinphoneCore. + * + * In this version this is limited to the following use cases: + * - setting up/down the video stream according to the video parameter of the {@link LinphoneCallParams} (see {@link LinphoneCallParams#enableVideo} ). + * - changing the size of the transmitted video after calling {@link LinphoneCore#setPreferredVideoSize(VideoSize)} + * + * In case no changes are requested through the {@link LinphoneCallParams} argument, then this argument can be omitted and set to null. + * @param call the {@link LinphoneCall} to be updated + * @param params the new {@link LinphoneCallParams call parameters} to use. (may be NULL) + * @return 0 if successful, -1 otherwise. + **/ int updateCall(LinphoneCall call, LinphoneCallParams params); - + /** + * Get default call parameters reflecting current linphone core configuration + * @return LinphoneCallParams + */ LinphoneCallParams createDefaultCallParameters(); /** @@ -694,7 +778,7 @@ public interface LinphoneCore { /** * gets the path to a wav file used for ringing. * - * @param null if not set + * @return null if not set */ String getRing(); @@ -706,7 +790,18 @@ public interface LinphoneCore { void setRootCA(String path); void setUploadBandwidth(int bw); - + /** + * Sets maximum available download bandwidth + * + * + * This is IP bandwidth, in kbit/s. + * This information is used signaled to other parties during + * calls (within SDP messages) so that the remote end can have + * sufficient knowledge to properly configure its audio & video + * codec output bitrate to not overflow available bandwidth. + * + * @param bw the bandwidth in kbits/s, 0 for infinite + */ void setDownloadBandwidth(int bw); /** @@ -720,9 +815,20 @@ public interface LinphoneCore { * @param ptime packetization interval in milliseconds */ void setUploadPtime(int ptime); - + /** + * Sets the preferred video size. + * + * This applies only to the stream that is captured and sent to the remote party, + * since we accept all standard video size on the receive path. + * @param vSize + * + **/ void setPreferredVideoSize(VideoSize vSize); - + /** + * get current preferred video size for sending. + * @return video size + * + **/ VideoSize getPreferredVideoSize(); /** @@ -766,13 +872,18 @@ public interface LinphoneCore { void adjustSoftwareVolume(int i); /** - * Pause a call. + * Pauses a call. If a music file has been setup using {@link LinphoneCore#setPlayFile(String)}, + * this file will be played to the remote user. + * **/ boolean pauseCall(LinphoneCall call); /** * Resume a call. **/ boolean resumeCall(LinphoneCall call); + /** + * Pause all currently running calls. + **/ boolean pauseAllCalls(); void setZrtpSecretsCache(String file); @@ -783,33 +894,75 @@ public interface LinphoneCore { **/ boolean isInConference(); /** - * Connect the local user to the conference. + * Moves the local participant inside the conference. + * + * Makes the local participant to join the conference. + * Typically, the local participant is by default always part of the conference when joining an active call into a conference. + * However, by calling {@link #leaveConference()} and {@link #enterConference()} the application can decide to temporarily + * move out and in the local participant from the conference. + * + * @returns true if successful **/ boolean enterConference(); /** - * Disconnect the local user from the conference. + * Moves the local participant out of the conference. + * When the local participant is out of the conference, the remote participants can continue to talk normally. **/ void leaveConference(); /** - * Add an established call to the conference. The LinphoneCore is able to manage one client based conference. + * Merge a call into a conference. + * + * If this is the first call that enters the conference, the virtual conference will be created automatically. + * If the local user was actively part of the call (ie not in paused state), then the local user is automatically entered into the conference. + * If the call was in paused state, then it is automatically resumed when entering into the conference. + * @param call an established call, either in {@link LinphoneCall.State#StreamsRunning} or {@link LinphoneCall.State#Paused} state. + * **/ void addToConference(LinphoneCall call); /** - * Remove an established call from the conference. - **/ + * Remove a call from the conference. + * @param call a call that has been previously merged into the conference. + * + * After removing the remote participant belonging to the supplied call, the call becomes a normal call in paused state. + * If one single remote participant is left alone together with the local user in the conference after the removal, then the conference is + * automatically transformed into a simple call in StreamsRunning state. + * The conference's resources are then automatically destroyed. + * + * In other words, unless {@link #leaveConference()} is explicitely called, the last remote participant of a conference is automatically + * put in a simple call in running state. + * + **/ void removeFromConference(LinphoneCall call); + /** + * Add all calls into a conference. + * + * Merge all established calls (either in {@link LinphoneCall.State#StreamsRunning} or {@link LinphoneCall.State#Paused}) into a conference. + * + **/ void addAllToConference(); /** - * Terminate the conference, all users are disconnected. + * Terminates the conference and the calls associated with it. + * + * All the calls that were merged to the conference are terminated, and the conference resources are destroyed. + * **/ void terminateConference(); + /** + * Returns the number of participants to the conference, including the local participant. + * + * Typically, after merging two calls into the conference, there is total of 3 participants: + * the local participant (or local user), and two remote participants that were the destinations of the two previously establised calls. + * + * @returns the number of participants to the conference + **/ int getConferenceSize(); /** * Request recording of the conference into a supplied file path. * The format is wav. + * @param path where to write recording file **/ void startConferenceRecording(String path); @@ -817,22 +970,60 @@ public interface LinphoneCore { * Stop recording of the conference. **/ void stopConferenceRecording(); - + /** + * Terminates all the calls. + */ void terminateAllCalls(); /** * Returns all calls. + * @return an array with all call currently handle by Linphone core **/ LinphoneCall[] getCalls(); + /** + * Get number of calls currently handled by Linphone core + * @returns number of calls + * */ int getCallsNb(); - + /** + * Performs a simple call transfer to the specified destination. + * + * @param call The current local call remains active and thus can be later paused or terminated. + * @param referTo The remote call party endpoint is expected to issue a new call to this specified destination. + **/ void transferCall(LinphoneCall call, String referTo); + /** + * Transfer a call to destination of another running call. This is used for "attended transfer" scenarios. + * The transfered call is supposed to be in paused state, so that it is able to accept the transfer immediately. + * The destination call is a call previously established to introduce the transfered person. + * This method will send a transfer request to the transfered person. The phone of the transfered is then + * expected to automatically call to the destination of the transfer. The receiver of the transfer will then automatically + * close the call with us (the 'dest' call). + * @param call a running call you want to transfer + * @param dest a running call whose remote person will receive the transfer + **/ void transferCallToAnother(LinphoneCall callToTransfer, LinphoneCall destination); - + /** + * Search from the list of current calls if a remote address match uri + * @param uri which should match call remote uri + * @return LinphoneCall or NULL is no match is found + */ LinphoneCall findCallFromUri(String uri); - + /** + * Get the maximum number of simultaneous calls Linphone core can manage at a time. All new call above this limit are declined with a busy answer + * @return max number of simultaneous calls + */ int getMaxCalls(); + /** + * Set the maximum number of simultaneous calls Linphone core can manage at a time. All new call above this limit are declined with a busy answer + * @param max number of simultaneous calls + */ void setMaxCalls(int max); + /** + * @deprecated + * @param uri + * @return + */ boolean isMyself(String uri); /** @@ -884,15 +1075,31 @@ public interface LinphoneCore { void tunnelAddServerAndMirror(String host, int port, int udpMirrorPort, int roundTripDelay); boolean isTunnelAvailable(); - + /** + * Returns an unmodifiable list of entered proxy configurations. + * @return list of proxy config + **/ LinphoneProxyConfig[] getProxyConfigList(); - + /** + * Sets the default policy for video. + * This policy defines whether: + * @param autoInitiate video shall be initiated by default for outgoing calls + * @param autoAccept video shall be accepter by default for incoming calls + **/ void setVideoPolicy(boolean autoInitiate, boolean autoAccept); - + /** Set static picture to be used when "Static picture" is the video device + * @param path to the static picture file + * */ void setStaticPicture(String path); - + /** + * Sets the user agent string used in SIP messages. + * @param user agent name + * @param user agent version + **/ void setUserAgent(String name, String version); - + /** + * Set the number of cores used for media processing + * */ void setCpuCount(int count); /** @@ -961,7 +1168,10 @@ public interface LinphoneCore { * Once this time is elapsed (ringing included), the call is automatically hung up. **/ void setInCallTimeout(int timeout); - + /** + * Allow to control microphone level: + * @param gain in db + **/ void setMicrophoneGain(float gain); /** diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index ea325057e..5e8637999 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -48,6 +48,12 @@ abstract public class LinphoneCoreFactory { } return theLinphoneCoreFactory; } + /** + * create {@link LinphoneAuthInfo} + * @param username + * @param userid user id as set in auth header + * @param passwd + * */ abstract public LinphoneAuthInfo createAuthInfo(String username,String password, String realm); /** * create {@link LinphoneAuthInfo} diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 5a52f7559..0b4c984d6 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -745,12 +745,6 @@ class LinphoneCoreImpl implements LinphoneCore { deferCallUpdate(nativePtr, getCallPtr(aCall)); } - public synchronized void startRinging() { - if (!contextInitialized()) return; - if (Hacks.needGalaxySAudioHack()) { - mAudioManager.setMode(MODE_RINGTONE); - } - } private native void setVideoPolicy(long nativePtr, boolean autoInitiate, boolean autoAccept); public synchronized void setVideoPolicy(boolean autoInitiate, boolean autoAccept) { @@ -801,10 +795,17 @@ class LinphoneCoreImpl implements LinphoneCore { public String getVersion() { return getVersion(nativePtr); } - + /** + * Wildcard value used by #linphone_core_find_payload_type to ignore rate in search algorithm + */ + static int FIND_PAYLOAD_IGNORE_RATE = -1; + /** + * Wildcard value used by #linphone_core_find_payload_type to ignore channel in search algorithm + */ + static int FIND_PAYLOAD_IGNORE_CHANNELS = -1; @Override public synchronized PayloadType findPayloadType(String mime, int clockRate) { - return findPayloadType(mime, clockRate, 1); + return findPayloadType(mime, clockRate, FIND_PAYLOAD_IGNORE_CHANNELS); } private native void removeFriend(long ptr, long lf); @@ -908,4 +909,8 @@ class LinphoneCoreImpl implements LinphoneCore { public void stopConferenceRecording() { stopConferenceRecording(nativePtr); } + @Override + public PayloadType findPayloadType(String mime) { + return findPayloadType(mime, FIND_PAYLOAD_IGNORE_RATE); + } } From 12577918593030541fd4d7b12e5881347e0eafb4 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 4 Apr 2013 08:23:33 +0200 Subject: [PATCH 058/177] fix compilation issue --- coreapi/linphonecore.h | 1 - 1 file changed, 1 deletion(-) diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 241813790..fefd050e7 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -71,7 +71,6 @@ typedef struct _LCSipTransports{ int tls_port; } LCSipTransports; -typedef struct _LCSipTransports LCSipTransports; /** * Object that represents a SIP address. From 2692dca3c728118be6f87a9527ec6c588dad258c Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 4 Apr 2013 16:30:32 +0200 Subject: [PATCH 059/177] Automatically adding friends in the address book Display missed call in recent calls tab Notification for chat message --- gtk/calllogs.c | 82 ++++++++++++++++++++++++------- gtk/chat.c | 92 ++++++++++++++++++++++++++-------- gtk/friendlist.c | 123 +++++++++++++++++++++++++++++----------------- gtk/incall_view.c | 9 ++-- gtk/linphone.h | 4 +- gtk/main.c | 2 +- gtk/main.ui | 121 +++++++++++++++++++++++++++++---------------- 7 files changed, 299 insertions(+), 134 deletions(-) diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 9d2714153..481c8d3d3 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -19,7 +19,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "linphone.h" - static void fill_renderers(GtkTreeView *v){ GtkTreeViewColumn *c; GtkCellRenderer *r; @@ -36,14 +35,16 @@ static void fill_renderers(GtkTreeView *v){ void call_log_selection_changed(GtkTreeView *v){ GtkTreeSelection *select; GtkTreeIter iter; - GtkTreeModel *model; + GtkTreeModel *model=NULL; select = gtk_tree_view_get_selection(v); - if (gtk_tree_selection_get_selected (select, &model, &iter)){ - GtkTreePath *path=gtk_tree_model_get_path(model,&iter); - gtk_tree_view_collapse_all(v); - gtk_tree_view_expand_row(v,path,TRUE); - gtk_tree_path_free(path); + if (select!=NULL){ + if (gtk_tree_selection_get_selected (select, &model, &iter)){ + GtkTreePath *path=gtk_tree_model_get_path(model,&iter); + gtk_tree_view_collapse_all(v); + gtk_tree_view_expand_row(v,path,TRUE); + gtk_tree_path_free(path); + } } } @@ -91,19 +92,18 @@ void linphone_gtk_call_log_add_contact(GtkWidget *w){ static bool_t put_selection_to_uribar(GtkWidget *treeview){ GtkTreeSelection *sel; - + sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (sel!=NULL){ GtkTreeModel *model=NULL; GtkTreeIter iter; if (gtk_tree_selection_get_selected (sel,&model,&iter)){ - gpointer pla; - LinphoneAddress *la; char *tmp; - gtk_tree_model_get(model,&iter,2,&pla,-1); - la=(LinphoneAddress*)pla; - tmp=linphone_address_as_string (la); - gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp); + LinphoneAddress *la; + gtk_tree_model_get(model,&iter,2,&la,-1); + tmp=linphone_address_as_string(la); + if(tmp!=NULL) + gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp); ms_free(tmp); return TRUE; } @@ -159,7 +159,6 @@ static GtkWidget *linphone_gtk_create_call_log_menu(GtkWidget *call_log){ gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_chat_selected,call_log); } - menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_ADD,NULL); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item); @@ -186,25 +185,74 @@ gboolean linphone_gtk_call_log_button_pressed(GtkWidget *widget, GdkEventButton return FALSE; } +void linphone_gtk_call_log_clear_missed_call(){ + GtkWidget *mw=linphone_gtk_get_main_window(); + GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(mw,"viewswitch")); + GtkWidget *page=gtk_notebook_get_nth_page(notebook,0); + GtkWidget *box=gtk_hbox_new(FALSE,0); + GtkWidget *image=gtk_image_new_from_stock(GTK_STOCK_REFRESH,GTK_ICON_SIZE_MENU); + GtkWidget *l; + + l=gtk_label_new("Recent calls"); + gtk_box_pack_start(GTK_BOX(box),image,FALSE,FALSE,0); + gtk_box_pack_start(GTK_BOX(box),l,FALSE,FALSE,0); + gtk_notebook_set_tab_label(notebook,page,box); + gtk_widget_show_all(box); +} + +gboolean linphone_gtk_call_log_reset_missed_call(GtkWidget *w, GdkEvent *event,gpointer user_data){ + linphone_core_reset_missed_calls_count(linphone_gtk_get_core()); + linphone_gtk_call_log_clear_missed_call(); + return TRUE; +} + +void linphone_gtk_call_log_display_missed_call(int nb){ + GtkWidget *mw=linphone_gtk_get_main_window(); + GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(mw,"viewswitch")); + GtkWidget *page=gtk_notebook_get_nth_page(notebook,0); + GtkWidget *ebox=gtk_event_box_new(); + GtkWidget *box=gtk_hbox_new(FALSE,0); + GtkWidget *image=gtk_image_new_from_stock(GTK_STOCK_REFRESH,GTK_ICON_SIZE_MENU); + GtkWidget *l; + gchar *buf; + + buf=g_markup_printf_escaped(_("Recent calls (%i)"),nb); + l=gtk_label_new(NULL); + gtk_label_set_markup(GTK_LABEL(l),buf); + gtk_box_pack_start(GTK_BOX(box),image,FALSE,FALSE,0); + gtk_box_pack_start(GTK_BOX(box),l,FALSE,FALSE,0); + gtk_container_add(GTK_CONTAINER(ebox),box); + gtk_notebook_set_tab_label(notebook,page,ebox); + gtk_widget_add_events(ebox,GDK_BUTTON_PRESS_MASK); + g_signal_connect(G_OBJECT(ebox),"button_press_event",(GCallback)linphone_gtk_call_log_reset_missed_call,NULL); + gtk_widget_show_all(ebox); +} + void linphone_gtk_call_log_update(GtkWidget *w){ GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")); GtkTreeStore *store; const MSList *logs; GtkTreeSelection *select; + GtkWidget *notebook=linphone_gtk_get_widget(w,"viewswitch"); + gint nb; store=(GtkTreeStore*)gtk_tree_view_get_model(v); if (store==NULL){ - store=gtk_tree_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER); + store=gtk_tree_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER,G_TYPE_STRING); gtk_tree_view_set_model(v,GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"))); select=gtk_tree_view_get_selection(v); gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v); + g_signal_connect(G_OBJECT(notebook),"focus-tab",(GCallback)linphone_gtk_call_log_reset_missed_call,NULL); g_signal_connect(G_OBJECT(v),"button-press-event",(GCallback)linphone_gtk_call_log_button_pressed,NULL); // gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), // create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); } + nb=linphone_core_get_missed_calls_count(linphone_gtk_get_core()); + if(nb > 0) + linphone_gtk_call_log_display_missed_call(nb); gtk_tree_store_clear (store); for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){ @@ -237,7 +285,6 @@ void linphone_gtk_call_log_update(GtkWidget *w){ } else { display=linphone_address_get_display_name(la); } - if (display==NULL){ display=linphone_address_get_username (la); if (display==NULL){ @@ -294,7 +341,6 @@ void linphone_gtk_call_log_update(GtkWidget *w){ g_free(logtxt); g_free(headtxt); } - } void linphone_gtk_history_row_activated(GtkWidget *treeview){ diff --git a/gtk/chat.c b/gtk/chat.c index 69c4e832f..9c0f64bbb 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -61,10 +61,9 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch"); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *w=g_object_get_data(G_OBJECT(friendlist),"chatview"); - int idx = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"idx")); g_return_if_fail(w!=NULL); - gtk_notebook_remove_page(GTK_NOTEBOOK(nb),idx); + gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); linphone_gtk_create_chat_picture(FALSE); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); g_object_set_data(G_OBJECT(w),"from_message",NULL); @@ -74,7 +73,8 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { } const char* get_display_name(const LinphoneAddress *from){ - const char *display=linphone_address_get_display_name(from); + const char *display; + display=linphone_address_get_display_name(from); if (display==NULL || display[0]=='\0') { display=linphone_address_get_username(from); } @@ -92,7 +92,7 @@ GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr,const LinphoneAddress *ur gtk_button_set_relief(GTK_BUTTON(b),GTK_RELIEF_NONE); gtk_widget_set_size_request(b,25,20); g_signal_connect_swapped(G_OBJECT(b),"clicked",G_CALLBACK(linphone_gtk_quit_chatroom),cr); - l=gtk_label_new (get_display_name(uri)); + l=gtk_label_new(get_display_name(uri)); gtk_box_pack_start (GTK_BOX(w),i,FALSE,FALSE,0); gtk_box_pack_start (GTK_BOX(w),l,FALSE,FALSE,0); gtk_box_pack_end(GTK_BOX(w),b,TRUE,TRUE,0); @@ -131,7 +131,12 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, char *from_message=(char *)g_object_get_data(G_OBJECT(w),"from_message"); GList *list=g_object_get_data(G_OBJECT(w),"list"); time_t t; - + char buf[80]; + time_t tnow; + struct tm *tm; + int tnow_day; + int tnow_year; + gtk_text_buffer_get_start_iter(buffer,&begin); gtk_text_buffer_get_end_iter(buffer,&iter); off=gtk_text_iter_get_offset(&iter); @@ -162,15 +167,22 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, } case LinphoneChatMessageStateDelivered: { - struct tm *tm=localtime(&t); - char buf[80]; + tnow=time(NULL); + tm=gmtime(&tnow); + tnow_day=tm->tm_yday; + tnow_year=tm->tm_year; + tm=gmtime(&t); + if(tnow_day != tm->tm_yday || (tnow_day == tm->tm_yday && tnow_year != tm->tm_year)) { + strftime(buf,80,"%a %x, %H:%M",tm); + } else { strftime(buf,80,"%H:%M",tm); - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1, - "right","small","italic","font_grey",me ? "bg":NULL,NULL); - break; + } + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1, + "right","small","italic","font_grey",me ? "bg":NULL,NULL); + break; } case LinphoneChatMessageStateNotDelivered: - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Error",-1, + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Message not sent",-1, "right","small","italic","font_grey",me ? "bg":NULL,NULL); break; default : gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Sending ..",-1, @@ -202,6 +214,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag GtkTextIter iter; GtkTextIter end; GtkTextIter start; + gchar *result; gtk_text_buffer_get_iter_at_line(b,&iter, GPOINTER_TO_INT(g_list_nth_data(list,0))); @@ -217,7 +230,6 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag GPOINTER_TO_INT(g_list_nth_data(list,0)),0); gtk_text_buffer_delete(b,&start,&end); gtk_text_buffer_get_iter_at_line(b,&iter,GPOINTER_TO_INT(g_list_nth_data(list,0))); - gchar *result; switch (state) { case LinphoneChatMessageStateInProgress: result="Sending "; @@ -295,6 +307,29 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon } } +void linphone_gtk_chat_add_contact(const LinphoneAddress *addr){ + //LinphoneAddress *addr=(LinphoneAddress *)data; + LinphoneFriend *lf=NULL; + char *uri=linphone_address_as_string(addr); + lf=linphone_friend_new_with_addr(uri); + ms_free(uri); + char *fixed_uri=NULL; + gboolean show_presence=FALSE; + + linphone_friend_set_inc_subscribe_policy(lf,LinphoneSPDeny); + linphone_friend_send_subscribe(lf,show_presence); + + linphone_core_interpret_friend_uri(linphone_gtk_get_core(),uri,&fixed_uri); + if (fixed_uri==NULL){ + linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !")); + return ; + } + linphone_friend_set_addr(lf,addr); + linphone_core_add_friend(linphone_gtk_get_core(),lf); + ms_free(fixed_uri); + linphone_gtk_show_friends(); +} + GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with){ GtkWidget *chat_view=linphone_gtk_create_widget("main","chatroom_frame"); GtkWidget *main_window=linphone_gtk_get_main_window (); @@ -312,7 +347,6 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres color.red = 32512; color.green = 32512; color.blue = 32512; - colorb.red = 56832; colorb.green = 60928; colorb.blue = 61952; @@ -321,12 +355,12 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres linphone_chat_room_mark_as_read(cr); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); + gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text),FALSE); gtk_notebook_append_page(notebook,chat_view,create_tab_chat_header(cr,with)); idx = gtk_notebook_page_num(notebook, chat_view); gtk_notebook_set_current_page(notebook, idx); gtk_widget_show(chat_view); g_object_set_data(G_OBJECT(chat_view),"cr",cr); - g_object_set_data(G_OBJECT(chat_view),"idx",GINT_TO_POINTER(idx)); g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); g_object_set_data(G_OBJECT(chat_view),"list",list); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), @@ -369,18 +403,25 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, char *uri_str=linphone_address_as_string(uri); char *uri_only=linphone_address_as_string_uri_only(uri); MSList *messages=NULL; - + linphone_chat_room_mark_as_read(cr); if(g_strcmp0(from_str,uri_only)!=0){ GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); GtkTextIter start; GtkTextIter end; GtkTextBuffer *text_buffer; + GtkWidget *cb; text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); gtk_text_buffer_delete (text_buffer, &start, &end); udpate_tab_chat_header(chat_view,uri,cr); + cb=linphone_gtk_get_widget(chat_view,"contact_bar"); + if(!linphone_gtk_friend_list_is_contact(uri)){ + gtk_widget_show(cb); + } else { + gtk_widget_hide(cb); + } g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); @@ -389,6 +430,7 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, } ms_free(from_str); ms_free(uri_str); + ms_free(uri_only); } void linphone_gtk_chat_destroyed(GtkWidget *w){ @@ -408,18 +450,27 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *w; gboolean send=TRUE; - + GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch"); char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); + w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); if(w!=NULL){ char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); if(g_strcmp0(from,from_chatview)==0){ send=TRUE; } else { + if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ + //linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w); + linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); + } send=FALSE; } } else { send=FALSE; + if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ + //linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w); + linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); + } w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); g_object_set_data(G_OBJECT(friendlist),"from",from); @@ -439,14 +490,13 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } #endif if(send){ - linphone_chat_room_mark_as_read(room); + if(gtk_notebook_get_current_page(notebook)!=gtk_notebook_page_num(notebook,w)){ + linphone_gtk_show_friends(); + } linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), FALSE,room,msg,FALSE); } else { linphone_gtk_show_friends(); - //linphone_gtk_friend_list_update_message(msg); } - //linphone_gtk_update_chat_picture(); - //gtk_window_present(GTK_WINDOW(w)); - /*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/ + //linphone_gtk_update_chat_picture(); } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 9f5a935b8..3997e29f3 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -32,7 +32,6 @@ enum{ FRIEND_ICON, FRIEND_CALL, FRIEND_CHAT, - FRIEND_NB_UNREAD_MSG, FRIEND_LIST_NCOL }; @@ -76,17 +75,23 @@ static GdkPixbuf *create_call_picture(){ return pixbuf; } +static GdkPixbuf *create_unread_msg(){ + GdkPixbuf *pixbuf; + pixbuf = create_pixbuf("active_chat.png"); + return pixbuf; +} + static GdkPixbuf *create_chat_picture(){ GdkPixbuf *pixbuf; pixbuf = create_pixbuf("chat.png"); return pixbuf; } -static GdkPixbuf *create_active_chat_picture(){ +/*static GdkPixbuf *create_active_chat_picture(){ GdkPixbuf *pixbuf; pixbuf = create_pixbuf("active_chat.png"); return pixbuf; -} +}*/ /* void linphone_gtk_set_friend_status(GtkWidget *friendlist , LinphoneFriend * fid, const gchar *url, const gchar *status, const gchar *img){ GtkTreeIter iter; @@ -110,6 +115,16 @@ void linphone_gtk_set_friend_status(GtkWidget *friendlist , LinphoneFriend * fid } } */ + +gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr){ + LinphoneFriend *lf; + char *addr_str=linphone_address_as_string(addr); + lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),addr_str); + if(lf == NULL){ + return FALSE; + } return TRUE; +} + static void linphone_gtk_set_selection_to_uri_bar(GtkTreeView *treeview){ GtkTreeSelection *select; GtkTreeIter iter; @@ -156,28 +171,51 @@ void linphone_gtk_remove_contact(GtkWidget *button){ GtkTreeIter iter; GtkTreeModel *model; LinphoneFriend *lf=NULL; + LinphoneChatRoom *cr=NULL; select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list"))); if (gtk_tree_selection_get_selected (select, &model, &iter)) { gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); linphone_core_remove_friend(linphone_gtk_get_core(),lf); + gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); + linphone_chat_room_delete_history(cr); linphone_gtk_show_friends(); } } void linphone_gtk_delete_history(GtkWidget *button){ - GtkWidget *w=gtk_widget_get_toplevel(button); + GtkWidget *w=linphone_gtk_get_main_window(); GtkTreeSelection *select; GtkTreeIter iter; GtkTreeModel *model; + GtkWidget *chat_view; LinphoneFriend *lf=NULL; - select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list"))); + GtkWidget *friendlist; + + friendlist=linphone_gtk_get_widget(w,"contact_list"); + chat_view=(GtkWidget *)g_object_get_data(G_OBJECT(friendlist),"chatview"); + select = gtk_tree_view_get_selection(GTK_TREE_VIEW(friendlist)); if (gtk_tree_selection_get_selected (select, &model, &iter)) { LinphoneChatRoom *cr; gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); - cr=linphone_core_get_chat_room(linphone_gtk_get_core(),linphone_friend_get_address(lf)); + gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); linphone_chat_room_delete_history(cr); + if(chat_view!=NULL){ + char *from=g_object_get_data(G_OBJECT(friendlist),"from"); + char *addr=linphone_address_as_string(linphone_friend_get_address(lf)); + if(g_strcmp0(from,addr)==0){ + GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); + GtkTextIter start; + GtkTextIter end; + GtkTextBuffer *text_buffer; + + text_buffer=gtk_text_view_get_buffer(text_view); + gtk_text_buffer_get_bounds(text_buffer, &start, &end); + gtk_text_buffer_delete (text_buffer, &start, &end); + g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); + } + } linphone_gtk_show_friends(); } } @@ -209,7 +247,7 @@ static gboolean grab_focus(GtkWidget *w){ return FALSE; } -void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la){ +void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la){ GtkTreeIter iter; GtkListStore *store=NULL; GtkWidget *w = linphone_gtk_get_main_window(); @@ -240,7 +278,7 @@ void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la){ do{ const LinphoneAddress *uri; char *lf_str; - gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1); + gtk_tree_model_get(model, &iter,FRIEND_ID , &lf, -1); uri=linphone_friend_get_address(lf); lf_str=linphone_address_as_string(uri); if( g_strcmp0(lf_str,la_str)==0){ @@ -259,14 +297,30 @@ void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la){ gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view)); linphone_gtk_create_chat_picture(FALSE); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry")); - gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); - gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,"",-1); break; } }while(gtk_tree_model_iter_next(model,&iter)); } + } +} + +void linphone_gtk_notebook_tab_select(GtkNotebook *notebook,GtkWidget *page,guint page_num, gpointer data){ + GtkWidget *w=linphone_gtk_get_main_window(); + GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); + GtkWidget *chat_view; + LinphoneChatRoom *cr=NULL; + const LinphoneAddress *addr=(const LinphoneAddress *)data; + chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + if(page != NULL){ + notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch"); + if(gtk_notebook_page_num(notebook,page)==gtk_notebook_page_num(notebook,chat_view)){ + cr=linphone_core_get_chat_room(linphone_gtk_get_core(),addr); + if(cr!=NULL){ + linphone_chat_room_mark_as_read(cr); + linphone_gtk_show_friends(); + } + } } - } void linphone_gtk_chat_selected(GtkWidget *item){ @@ -303,8 +357,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){ gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,page)); linphone_gtk_create_chat_picture(FALSE); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); - gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1); - gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,"",-1); + g_signal_connect(G_OBJECT(notebook),"switch_page",(GCallback)linphone_gtk_notebook_tab_select,(gpointer)uri); } } @@ -577,8 +630,7 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ linphone_gtk_init_bookmark_icon(); store = gtk_list_store_new(FRIEND_LIST_NCOL,GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, - G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, - G_TYPE_STRING, G_TYPE_STRING); + G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF); gtk_tree_view_set_model(GTK_TREE_VIEW(friendlist),GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); @@ -588,7 +640,7 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(friendlist),friend_search_func,NULL,NULL); gtk_tree_view_set_search_column(GTK_TREE_VIEW(friendlist),FRIEND_NAME); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store),FRIEND_NAME,friend_sort,NULL,NULL); - + /*Name and presence column*/ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Presence status"), @@ -599,6 +651,7 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ g_signal_connect_swapped(G_OBJECT(column),"clicked",(GCallback)on_presence_column_clicked,GTK_TREE_MODEL(store)); gtk_tree_view_column_set_clickable(column,TRUE); gtk_tree_view_column_set_visible(column,linphone_gtk_get_ui_config_int("friendlist_status",1)); + gtk_tree_view_column_set_min_width(column,50); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column,renderer,TRUE); @@ -616,11 +669,6 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ gtk_tree_view_column_set_clickable(column,TRUE); gtk_tree_view_column_set_expand(column,TRUE); gtk_tree_view_column_set_max_width(column,60); - - renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_column_pack_start(column,renderer,TRUE); - gtk_tree_view_column_add_attribute (column,renderer,"text",FRIEND_NB_UNREAD_MSG); - gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column); /* Call column*/ @@ -641,7 +689,7 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){ gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(friendlist),FRIEND_SIP_ADDRESS); #endif - gtk_widget_set_size_request(friendlist,200,100); + gtk_widget_set_size_request(friendlist,200,120); /*gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget( gtk_widget_get_toplevel(friendlist),"show_category")),0);*/ } @@ -713,7 +761,6 @@ void linphone_gtk_show_friends(void){ LinphoneChatRoom *cr=NULL; linphone_gtk_show_directory_search(); - if (gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist))==NULL){ linphone_gtk_friend_list_init(friendlist); } @@ -735,7 +782,7 @@ void linphone_gtk_show_friends(void){ const char *name=linphone_address_get_display_name(f_uri); const char *display=name; char *escaped=NULL; - char buf[26]={0}; + //char buf[26]={0}; int nbmsg=0; /*if (lookup){ @@ -752,26 +799,13 @@ void linphone_gtk_show_friends(void){ gtk_list_store_append(store,&iter); gtk_list_store_set(store,&iter,FRIEND_NAME, display,FRIEND_ID,lf, FRIEND_PRESENCE_IMG, send_subscribe ? create_status_picture(linphone_friend_get_status(lf)) : NULL, - -1); - - gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)),&iter,FRIEND_CHATROOM,&cr,-1); - if(cr!=NULL){ - nbmsg=linphone_chat_room_get_unread_messages_count(cr); - if(nbmsg != 0){ - sprintf(buf,"%i",nbmsg); - } - } else { - cr=linphone_gtk_create_chatroom(f_uri); - gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1); - nbmsg=linphone_chat_room_get_unread_messages_count(cr); - if(nbmsg != 0){ - sprintf(buf,"%i",nbmsg); - } + FRIEND_CHAT,create_chat_picture(),FRIEND_CALL,create_call_picture(),-1); + cr=linphone_gtk_create_chatroom(f_uri); + gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1); + nbmsg=linphone_chat_room_get_unread_messages_count(cr); + if(nbmsg != 0){ + gtk_list_store_set(store,&iter,FRIEND_CHAT,create_unread_msg(),-1); } - - gtk_list_store_set(store,&iter,FRIEND_CALL,create_call_picture(),-1); - gtk_list_store_set(store,&iter,FRIEND_CHAT,create_chat_picture(),-1); - gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,buf,-1); escaped=g_markup_escape_text(uri,-1); gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1); g_free(escaped); @@ -823,6 +857,7 @@ void linphone_gtk_contact_ok(GtkWidget *button){ char *fixed_uri=NULL; gboolean show_presence=FALSE,allow_presence=FALSE; const gchar *name,*uri; + LinphoneAddress* friend_address; if (lf==NULL){ lf=linphone_friend_new(); if (linphone_gtk_get_ui_config_int("use_subscribe_notify",1)==1){ @@ -841,7 +876,7 @@ void linphone_gtk_contact_ok(GtkWidget *button){ linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !")); return ; } - LinphoneAddress* friend_address = linphone_address_new(fixed_uri); + friend_address = linphone_address_new(fixed_uri); linphone_address_set_display_name(friend_address,name); linphone_friend_set_addr(lf,friend_address); linphone_address_destroy(friend_address); diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 0a64a1041..4ab0bd72e 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -431,8 +431,6 @@ void linphone_gtk_remove_in_call_view(LinphoneCall *call){ int idx; g_return_if_fail(w!=NULL); idx=gtk_notebook_page_num(GTK_NOTEBOOK(nb),w); - gtk_notebook_remove_page (GTK_NOTEBOOK(nb),idx); - gtk_widget_destroy(w); if (in_conf){ linphone_gtk_unset_from_conference(call); } @@ -444,12 +442,13 @@ void linphone_gtk_remove_in_call_view(LinphoneCall *call){ /*show the conference*/ gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb), g_object_get_data(G_OBJECT(main_window),"conf_frame"))); - }else gtk_notebook_set_current_page(GTK_NOTEBOOK(nb), 0); + }else gtk_notebook_prev_page(GTK_NOTEBOOK(nb)); }else{ /*show the active call*/ - gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb), - linphone_call_get_user_pointer(call))); + gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb), linphone_call_get_user_pointer(call))); } + gtk_notebook_remove_page (GTK_NOTEBOOK(nb),idx); + gtk_widget_destroy(w); } static void display_peer_name_in_label(GtkWidget *label, const LinphoneAddress *from){ diff --git a/gtk/linphone.h b/gtk/linphone.h index ccdebea69..00484a04f 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -152,5 +152,5 @@ void linphone_gtk_monitor_usb(void); void linphone_gtk_unmonitor_usb(void); gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); -void linphone_gtk_friend_list_update_message(LinphoneChatMessage *msg); -void linphone_gtk_tree_view_set_chat_conversation(LinphoneAddress *la); +void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la); +gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr); \ No newline at end of file diff --git a/gtk/main.c b/gtk/main.c index b188782ab..e3699757f 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1726,6 +1726,7 @@ static void linphone_gtk_init_main_window(){ linphone_gtk_load_identities(); linphone_gtk_set_my_presence(linphone_core_get_presence_info(linphone_gtk_get_core())); linphone_gtk_show_friends(); + linphone_core_reset_missed_calls_count(linphone_gtk_get_core()); main_window=linphone_gtk_get_main_window(); linphone_gtk_call_log_update(main_window); @@ -1748,7 +1749,6 @@ static void linphone_gtk_init_main_window(){ linphone_gtk_check_menu_items(); } - void linphone_gtk_log_handler(OrtpLogLevel lev, const char *fmt, va_list args){ if (verbose){ const char *lname="undef"; diff --git a/gtk/main.ui b/gtk/main.ui index 0b27240e7..5875bc844 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -104,6 +104,41 @@ True False + + + True + False + + + True + False + + + True + True + 0 + + + + + True + True + True + False + + + False + False + 1 + + + + + False + True + 0 + + True @@ -120,7 +155,7 @@ True True - 0 + 1 @@ -192,7 +227,8 @@ False False - 1 + end + 2 @@ -794,6 +830,8 @@ False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 660 + 450 True @@ -1042,6 +1080,7 @@ False False + 6 end 1 @@ -1247,49 +1286,11 @@ 0 - - - True - False - end - - - gtk-clear - True - True - True - False - True - - - - False - False - 0 - - - - - - - - - - - False - True - end - 1 - - True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False @@ -1375,7 +1376,7 @@ False False 5 - 2 + 0 @@ -1401,14 +1402,47 @@ False False - 3 + 1 False False - end + 1 + + + + + True + False + end + + + gtk-clear + True + True + True + False + True + + + + False + False + 0 + + + + + + + + + + + False + True 2 @@ -1428,6 +1462,7 @@ True False + True From ca5daeab3376200f72d681492bff907a36bf1c7a Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 4 Apr 2013 16:49:46 +0200 Subject: [PATCH 060/177] Fix tab click --- gtk/calllogs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 481c8d3d3..7daa1b011 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -201,6 +201,9 @@ void linphone_gtk_call_log_clear_missed_call(){ } gboolean linphone_gtk_call_log_reset_missed_call(GtkWidget *w, GdkEvent *event,gpointer user_data){ + GtkWidget *mw=linphone_gtk_get_main_window(); + GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(mw,"viewswitch")); + gtk_notebook_set_current_page(notebook,0); linphone_core_reset_missed_calls_count(linphone_gtk_get_core()); linphone_gtk_call_log_clear_missed_call(); return TRUE; From 4d9f81bd1c30b3a84f28e9659b9065b517721a92 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 4 Apr 2013 16:44:46 +0200 Subject: [PATCH 061/177] Fix upnp binding loop when not getting provided port --- coreapi/upnp.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index ec7d1f9c6..71a3c9d2a 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -553,9 +553,8 @@ int linphone_upnp_context_send_add_port_binding(UpnpContext *lupnp, UpnpPortBind mapping.local_port = port->local_port; mapping.local_host = port->local_addr; if(port->external_port == -1) - mapping.remote_port = rand()%(0xffff - 1024) + 1024; - else - mapping.remote_port = port->external_port; + port->external_port = rand()%(0xffff - 1024) + 1024; + mapping.remote_port = port->external_port; mapping.remote_host = ""; snprintf(description, 128, "%s %s at %s:%d", PACKAGE_NAME, @@ -877,7 +876,7 @@ void linphone_upnp_update_port_binding(UpnpContext *lupnp, UpnpPortBinding **por } } if(*port_mapping == NULL) { - *port_mapping = linphone_upnp_port_binding_new_or_collect(lupnp->pending_bindings, protocol, port, port); + *port_mapping = linphone_upnp_port_binding_new_or_collect(lupnp->pending_bindings, protocol, port, -1); } // Get addresses @@ -1107,8 +1106,8 @@ void linphone_upnp_port_binding_log(int level, const char *msg, const UpnpPortBi bool_t linphone_upnp_port_binding_equal(const UpnpPortBinding *port1, const UpnpPortBinding *port2) { return port1->protocol == port2->protocol && - port1->local_port == port2->local_port && - port1->external_port == port2->external_port; + port1->local_port == port2->local_port && + (port1->external_port == -1 || port2->external_port == -1 || port1->external_port == port2->external_port); } UpnpPortBinding *linphone_upnp_port_binding_equivalent_in_list(MSList *list, const UpnpPortBinding *port) { From c42f7ec0904969b090fc752aa0dc2506b1a21952 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 4 Apr 2013 17:06:01 +0200 Subject: [PATCH 062/177] remove some features in the interface change date --- gtk/chat.c | 9 +-------- gtk/main.ui | 40 ++-------------------------------------- 2 files changed, 3 insertions(+), 46 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 9c0f64bbb..cf6d61c98 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -237,7 +237,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag case LinphoneChatMessageStateDelivered: { time_t t=time(NULL); - struct tm *tm=localtime(&t); + struct tm *tm=gmtime(&t); char buf[80]; strftime(buf,80,"%H:%M",tm); result=buf; @@ -410,18 +410,11 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, GtkTextIter start; GtkTextIter end; GtkTextBuffer *text_buffer; - GtkWidget *cb; text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); gtk_text_buffer_delete (text_buffer, &start, &end); udpate_tab_chat_header(chat_view,uri,cr); - cb=linphone_gtk_get_widget(chat_view,"contact_bar"); - if(!linphone_gtk_friend_list_is_contact(uri)){ - gtk_widget_show(cb); - } else { - gtk_widget_hide(cb); - } g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); diff --git a/gtk/main.ui b/gtk/main.ui index 5875bc844..347a402ea 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -104,41 +104,6 @@ True False - - - True - False - - - True - False - - - True - True - 0 - - - - - True - True - True - False - - - False - False - 1 - - - - - False - True - 0 - - True @@ -155,7 +120,7 @@ True True - 1 + 0 @@ -227,8 +192,7 @@ False False - end - 2 + 1 From 622c8f30d2a96740d25a7d410a3e8cdd85839083 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 5 Apr 2013 12:16:05 +0200 Subject: [PATCH 063/177] fix sending of PUBLISH requests (was not set to the proxy address actually) --- coreapi/proxy.c | 1 + coreapi/sal_eXosip2_presence.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 5546102ba..42c21f01b 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -792,6 +792,7 @@ int linphone_proxy_config_send_publish(LinphoneProxyConfig *proxy, LinphoneOnlineStatus presence_mode){ int err; SalOp *op=sal_op_new(proxy->lc->sal); + sal_op_set_route(op,proxy->reg_proxy); err=sal_publish(op,linphone_proxy_config_get_identity(proxy), linphone_proxy_config_get_identity(proxy),linphone_online_status_to_sal(presence_mode)); if (proxy->publish_op!=NULL) diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index 356d2a9fb..ffa7ed920 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -635,7 +635,7 @@ int sal_publish(SalOp *op, const char *from, const char *to, SalPresenceStatus p mk_presence_body (presence_mode, from, buf, sizeof (buf), presence_style); - i = eXosip_build_publish(&pub,from, to, NULL, "presence", "300", + i = eXosip_build_publish(&pub,from, to, sal_op_get_route(op), "presence", "300", presence_style ? "application/xpidf+xml" : "application/pidf+xml", buf); if (i<0){ ms_warning("Failed to build publish request."); From d630e0a99decbed3e9a5437b680801dd236beb40 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 5 Apr 2013 12:45:00 +0200 Subject: [PATCH 064/177] Don't include xml2lpc and lpc2xml in android.mk --- build/android/Android-no-neon.mk | 2 -- build/android/Android.mk | 7 ------- build/android/lpc2xml.mk | 1 + build/android/xml2lpc.mk | 1 + 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/build/android/Android-no-neon.mk b/build/android/Android-no-neon.mk index d0c87b4f8..d8e75ca0b 100644 --- a/build/android/Android-no-neon.mk +++ b/build/android/Android-no-neon.mk @@ -21,7 +21,6 @@ LOCAL_PATH:= $(call my-dir)/../../coreapi - include $(CLEAR_VARS) include $(linphone-root-dir)/submodules/linphone/build/android/common.mk @@ -43,4 +42,3 @@ include $(BUILD_SHARED_LIBRARY) $(call import-module,android/cpufeatures) - diff --git a/build/android/Android.mk b/build/android/Android.mk index 7fb75d0a4..10fba32dd 100755 --- a/build/android/Android.mk +++ b/build/android/Android.mk @@ -39,10 +39,3 @@ include $(BUILD_SHARED_LIBRARY) $(call import-module,android/cpufeatures) - -ifeq ($(BUILD_REMOTE_PROVISIONING),1) - -include $(linphone-root-dir)/submodules/linphone/build/android/xml2lpc.mk -include $(linphone-root-dir)/submodules/linphone/build/android/lpc2xml.mk - -endif diff --git a/build/android/lpc2xml.mk b/build/android/lpc2xml.mk index f7858f94d..b5757ad99 100644 --- a/build/android/lpc2xml.mk +++ b/build/android/lpc2xml.mk @@ -40,6 +40,7 @@ LOCAL_C_INCLUDES = \ LOCAL_SHARED_LIBRARIES = \ libxml2 \ + liblinphonenoneon \ liblinphone \ LOCAL_MODULE := liblpc2xml diff --git a/build/android/xml2lpc.mk b/build/android/xml2lpc.mk index 32bfb38c3..449251cc8 100644 --- a/build/android/xml2lpc.mk +++ b/build/android/xml2lpc.mk @@ -40,6 +40,7 @@ LOCAL_C_INCLUDES = \ LOCAL_SHARED_LIBRARIES = \ libxml2 \ + liblinphonenoneon \ liblinphone \ LOCAL_MODULE := libxml2lpc From fe1f6272324192e625a983808baa1dc8de17ccbb Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 5 Apr 2013 18:24:07 +0200 Subject: [PATCH 065/177] set mtu to 1300 because mtu detection is absolutely not reliable. This is making a lot of problems with video packets especially. --- coreapi/linphonecore.c | 2 +- mediastreamer2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 0089dd0fb..7b4d6a998 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -463,7 +463,7 @@ static void net_config_read (LinphoneCore *lc) linphone_core_set_firewall_policy(lc,tmp); tmp=lp_config_get_int(lc->config,"net","nat_sdp_only",0); lc->net_conf.nat_sdp_only=tmp; - tmp=lp_config_get_int(lc->config,"net","mtu",0); + tmp=lp_config_get_int(lc->config,"net","mtu",1300); linphone_core_set_mtu(lc,tmp); tmp=lp_config_get_int(lc->config,"net","download_ptime",0); linphone_core_set_download_ptime(lc,tmp); diff --git a/mediastreamer2 b/mediastreamer2 index 8596ed901..f6c51a11f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 8596ed9017c0d9b9c63c758d7628bac1fc07efd7 +Subproject commit f6c51a11f1ef1156c6f768b8466698a2305a2188 From 03734b6bf5f52b6a366a5e9f2444cb1c00a0b165 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Mon, 8 Apr 2013 12:59:42 +0200 Subject: [PATCH 066/177] change unread messages picture chnage time for time change --- coreapi/message_storage.c | 1 + coreapi/sal_eXosip2.c | 1 + gtk/chat.c | 11 +++++------ pixmaps/active_chat.png | Bin 3103 -> 3415 bytes 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 0c41c20d0..8ba642b68 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -66,6 +66,7 @@ static void create_chat_message(char **argv, void *data){ for(j=0;j<12;j++) { if(strcmp(tmp2,months[j])==0) ret.tm_mon=j; } + ret.tm_isdst=-1; } new_message->time=argv[5]!=NULL ? mktime(&ret) : time(NULL); new_message->state=atoi(argv[7]); diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 2ea0f9aff..b86fc26e0 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1798,6 +1798,7 @@ static void text_received(Sal *sal, eXosip_event_t *ev){ for(j=0;j<12;j++) { if(strcmp(tmp2,months[j])==0) ret.tm_mon=j; } + ret.tm_isdst=-1; }else ms_warning("No date header in SIP MESSAGE, we don't know when it was sent."); content_type= osip_message_get_content_type(ev->request); diff --git a/gtk/chat.c b/gtk/chat.c index cf6d61c98..9bcf0bb8b 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -168,10 +168,10 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, case LinphoneChatMessageStateDelivered: { tnow=time(NULL); - tm=gmtime(&tnow); + tm=localtime(&tnow); tnow_day=tm->tm_yday; tnow_year=tm->tm_year; - tm=gmtime(&t); + tm=localtime(&t); if(tnow_day != tm->tm_yday || (tnow_day == tm->tm_yday && tnow_year != tm->tm_year)) { strftime(buf,80,"%a %x, %H:%M",tm); } else { @@ -237,7 +237,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag case LinphoneChatMessageStateDelivered: { time_t t=time(NULL); - struct tm *tm=gmtime(&t); + struct tm *tm=localtime(&t); char buf[80]; strftime(buf,80,"%H:%M",tm); result=buf; @@ -450,10 +450,10 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, if(w!=NULL){ char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); if(g_strcmp0(from,from_chatview)==0){ + linphone_chat_room_mark_as_read(room); send=TRUE; } else { if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ - //linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w); linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); } send=FALSE; @@ -461,7 +461,6 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } else { send=FALSE; if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ - //linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w); linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); } w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); @@ -469,6 +468,7 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, g_object_set_data(G_OBJECT(friendlist),"from",from); } get_display_name(linphone_chat_message_get_from(msg)); + #ifdef HAVE_GTK_OSXs /* Notified when a new message is sent */ linphone_gtk_status_icon_set_blinking(TRUE); @@ -491,5 +491,4 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, } else { linphone_gtk_show_friends(); } - //linphone_gtk_update_chat_picture(); } diff --git a/pixmaps/active_chat.png b/pixmaps/active_chat.png index e428845d55648e21ab59ad6c9d94e48b7e8a70ea..d82b7c595c8a90fddb3c313be4bd9c6c524b0af4 100644 GIT binary patch delta 677 zcmV;W0$Tl_7}pxGzY2c>f=NU{RCwCVRbNO`Q5^ox_1e8H-8F<|u7Uc{LqQStVh@I- zL7*WNJ@_L1c?hWpst0>4DC(_25Co>ih(Z&I>_x1mlL&$+v_h*%CexQ~y0-3hp0B55 zy1VHdK|lB&4u^Ao=ljF&2$J~MrEK(|Iq?AA^9L~-9)tYxth#^6B`Ad8Vefe7(Yq5U zb=TnZy+D3VwBjNRJohWLwfB|Jn?3WM9l`|4(Qv@?y1mqg_{5 zni&xqd&LR`1X6$CE~6`Dy{+ZW49RpRx~{|NbgnIzQI4CwN7yt!ftCx`V46wbX9#lu z%63-6REuxTPJR0T0BKB~_VzNTS~7WNUooM80)j#-VtdyJ&kp<&?n{FpX=8j!q%F%r zwusAQ0v%URqU-$vb{#u~%f}m_nK8WRybUWBI?;6GkZym=q&Ej9;jeG$7J`6I-^eVZ z(eG^BzLfyD=iI|57l&D5>&aTFO0AO0{rEUNiN_s-XsmI;sQ@=_wV^UxgO}WUg(f1l zO#1rzY+o&NX)7DA_8<@lFc=I%*L4_% zf%^J-0Kn+zC?b&vgb)xyEKBtF)ly23gp?A^&CMds=uGJD?j}k4{eBJ&4RO8xtVUMj zHBCcLPY)Is7g1MNCpMh8OdDRWmxf`WwY62``~4k?|N4*5rTz>6c>+{F&e}*B00000 LNkvXXu0mjfl!8b} delta 362 zcmV-w0hRvO8lM=jzY2c=N=ZaPRCwCdl`)ROFc3xmShk!rP6OL5$3WV2G*l^a1MZX~ zP^6;a0+A9aRM1j$0Hn~6CXr{GRm8%QC`3V8OKvQWM}GhNo0u764}mv~w=|J|EpE44 zCZb*k5fQAl_?S-d<@>*i>0XmKjyVVdxUP%7dNDH&`#q#mn9qOb^zj6GMdlX z49DZKT@xC}zp87vT6bu2gJ`$g;e0-K9z2;$;QM}4FQja5!Z(69g?$VFz*;-5h55&6 zofaN~ivfr}O0*z-KBR;!_z`KZai{eHg(02kWB6|-2`r~m)}07*qo IM6N<$f~JM4GXMYp From ffb950b2a646e73c2c3052725f54cd87c8162d93 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 8 Apr 2013 13:56:44 +0200 Subject: [PATCH 067/177] update ms2 and ortp for call quality indicator improvements. --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index f6c51a11f..d9ce543de 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f6c51a11f1ef1156c6f768b8466698a2305a2188 +Subproject commit d9ce543dee40d7cb7da55e50c6716a25f53ea2ba diff --git a/oRTP b/oRTP index 31d242e8c..35f5efbfb 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 31d242e8c544ed197f60630593515aef2fb580e9 +Subproject commit 35f5efbfbf7814bd0403249431a6b94d6c4286b4 From d421f2410dbaf972bbd621f92be77b1ce8833fee Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Mon, 8 Apr 2013 14:09:45 +0200 Subject: [PATCH 068/177] fix unread messages --- gtk/chat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/chat.c b/gtk/chat.c index 9bcf0bb8b..a61afcf21 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -450,7 +450,6 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, if(w!=NULL){ char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); if(g_strcmp0(from,from_chatview)==0){ - linphone_chat_room_mark_as_read(room); send=TRUE; } else { if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ @@ -485,6 +484,8 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, if(send){ if(gtk_notebook_get_current_page(notebook)!=gtk_notebook_page_num(notebook,w)){ linphone_gtk_show_friends(); + } else { + linphone_chat_room_mark_as_read(room); } linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), FALSE,room,msg,FALSE); From 9b7ac9b79375f845edd0e8366e602863a223d2c0 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 9 Apr 2013 10:02:59 +0200 Subject: [PATCH 069/177] Fix upnp forgotten retain --- coreapi/upnp.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/coreapi/upnp.c b/coreapi/upnp.c index 71a3c9d2a..0922dad59 100644 --- a/coreapi/upnp.c +++ b/coreapi/upnp.c @@ -29,8 +29,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define UPNP_REMOVE_MAX_RETRY 4 #define UPNP_SECTION_NAME "uPnP" #define UPNP_CORE_READY_CHECK 1 -#define UPNP_CORE_RETRY_DELAY 4 -#define UPNP_CALL_RETRY_DELAY 1 +#define UPNP_CORE_RETRY_DELAY 10 +#define UPNP_CALL_RETRY_DELAY 3 #define UPNP_UUID_LEN 128 #define UPNP_UUID_LEN_STR UPNP_TOSTRING(UPNP_UUID_LEN) /* @@ -876,7 +876,7 @@ void linphone_upnp_update_port_binding(UpnpContext *lupnp, UpnpPortBinding **por } } if(*port_mapping == NULL) { - *port_mapping = linphone_upnp_port_binding_new_or_collect(lupnp->pending_bindings, protocol, port, -1); + *port_mapping = linphone_upnp_port_binding_new_or_collect(lupnp->pending_bindings, protocol, port, port); } // Get addresses @@ -1053,11 +1053,17 @@ UpnpPortBinding *linphone_upnp_port_binding_new_with_parameters(upnp_igd_ip_prot UpnpPortBinding *linphone_upnp_port_binding_new_or_collect(MSList *list, upnp_igd_ip_protocol protocol, int local_port, int external_port) { UpnpPortBinding *tmp_binding; UpnpPortBinding *end_binding; - end_binding = linphone_upnp_port_binding_new_with_parameters(protocol, local_port, external_port); + + // Seek an binding with same protocol and local port + end_binding = linphone_upnp_port_binding_new_with_parameters(protocol, local_port, -1); tmp_binding = linphone_upnp_port_binding_equivalent_in_list(list, end_binding); - if(tmp_binding != NULL) { + + // Must be not attached to any struct + if(tmp_binding != NULL && tmp_binding->ref == 1) { linphone_upnp_port_binding_release(end_binding); - end_binding = tmp_binding; + end_binding = linphone_upnp_port_binding_retain(tmp_binding); + } else { + end_binding->external_port = external_port; } return end_binding; } @@ -1104,6 +1110,7 @@ void linphone_upnp_port_binding_log(int level, const char *msg, const UpnpPortBi } } +// Return true if the binding are equivalent. (Note external_port == -1 means "don't care") bool_t linphone_upnp_port_binding_equal(const UpnpPortBinding *port1, const UpnpPortBinding *port2) { return port1->protocol == port2->protocol && port1->local_port == port2->local_port && From 50410790fb12e3405ea7040b4341ab131698bbc4 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 9 Apr 2013 10:49:08 +0200 Subject: [PATCH 070/177] Updated translation file Clear missed call Add picture for unread messages --- gtk/calllogs.c | 6 +- gtk/chat.c | 7 +- gtk/friendlist.c | 46 +++--- gtk/incall_view.c | 8 +- gtk/linphone.h | 30 ++-- gtk/main.c | 4 +- po/cs.po | 342 ++++++++++++++++++++------------------- po/de.po | 339 +++++++++++++++++++------------------- po/es.po | 348 ++++++++++++++++++++------------------- po/fr.po | 402 ++++++++++++++++++++++++---------------------- po/he.po | 352 +++++++++++++++++++++------------------- po/hu.po | 360 +++++++++++++++++++++-------------------- po/it.po | 344 ++++++++++++++++++++------------------- po/ja.po | 341 ++++++++++++++++++++------------------- po/nb_NO.po | 344 ++++++++++++++++++++------------------- po/nl.po | 341 ++++++++++++++++++++------------------- po/pl.po | 341 ++++++++++++++++++++------------------- po/pt_BR.po | 341 ++++++++++++++++++++------------------- po/ru.po | 348 ++++++++++++++++++++------------------- po/sr.po | 348 ++++++++++++++++++++------------------- po/sv.po | 344 ++++++++++++++++++++------------------- po/zh_CN.po | 344 ++++++++++++++++++++------------------- po/zh_TW.po | 344 ++++++++++++++++++++------------------- 23 files changed, 3157 insertions(+), 2867 deletions(-) diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 7daa1b011..466541006 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -61,7 +61,7 @@ void linphone_gtk_call_log_chat_selected(GtkWidget *w){ gtk_tree_model_get(model,&iter,2,&pla,-1); la=(LinphoneAddress*)pla; if (la!=NULL){ - linphone_gtk_tree_view_set_chat_conversation(la); + linphone_gtk_friend_list_set_chat_conversation(la); } } } @@ -192,8 +192,9 @@ void linphone_gtk_call_log_clear_missed_call(){ GtkWidget *box=gtk_hbox_new(FALSE,0); GtkWidget *image=gtk_image_new_from_stock(GTK_STOCK_REFRESH,GTK_ICON_SIZE_MENU); GtkWidget *l; + const gchar*text=gtk_label_get_text(GTK_LABEL(linphone_gtk_get_widget(mw,"label3"))); - l=gtk_label_new("Recent calls"); + l=gtk_label_new(text); gtk_box_pack_start(GTK_BOX(box),image,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(box),l,FALSE,FALSE,0); gtk_notebook_set_tab_label(notebook,page,box); @@ -359,6 +360,7 @@ void linphone_gtk_history_row_selected(GtkWidget *treeview){ void linphone_gtk_clear_call_logs(GtkWidget *button){ linphone_core_clear_call_logs (linphone_gtk_get_core()); + linphone_gtk_call_log_clear_missed_call(); linphone_gtk_call_log_update(gtk_widget_get_toplevel(button)); } diff --git a/gtk/chat.c b/gtk/chat.c index a61afcf21..4fa1c917c 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -64,7 +64,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); - linphone_gtk_create_chat_picture(FALSE); + linphone_gtk_friend_list_update_chat_picture(); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); g_object_set_data(G_OBJECT(w),"from_message",NULL); g_object_set_data(G_OBJECT(w),"cr",NULL); @@ -385,6 +385,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL); entry = linphone_gtk_get_widget(chat_view,"text_entry"); g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,NULL); + g_signal_connect(G_OBJECT(notebook),"switch_page",(GCallback)linphone_gtk_notebook_tab_select,NULL); ms_free(with_str); return chat_view; } @@ -404,13 +405,13 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, char *uri_only=linphone_address_as_string_uri_only(uri); MSList *messages=NULL; - linphone_chat_room_mark_as_read(cr); if(g_strcmp0(from_str,uri_only)!=0){ GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview")); GtkTextIter start; GtkTextIter end; GtkTextBuffer *text_buffer; - + + linphone_chat_room_mark_as_read(cr); text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); gtk_text_buffer_delete (text_buffer, &start, &end); diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 3997e29f3..8f73c2fcb 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -87,11 +87,6 @@ static GdkPixbuf *create_chat_picture(){ return pixbuf; } -/*static GdkPixbuf *create_active_chat_picture(){ - GdkPixbuf *pixbuf; - pixbuf = create_pixbuf("active_chat.png"); - return pixbuf; -}*/ /* void linphone_gtk_set_friend_status(GtkWidget *friendlist , LinphoneFriend * fid, const gchar *url, const gchar *status, const gchar *img){ GtkTreeIter iter; @@ -226,18 +221,22 @@ static void linphone_gtk_call_selected(GtkTreeView *treeview){ "start_call")); } -void linphone_gtk_create_chat_picture(gboolean active){ +void linphone_gtk_friend_list_update_chat_picture(){ GtkTreeIter iter; GtkWidget *w = linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); + LinphoneChatRoom *cr=NULL; + int nbmsg=0; if (gtk_tree_model_get_iter_first(model,&iter)) { do{ - //if(!active){ + gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); + nbmsg=linphone_chat_room_get_unread_messages_count(cr); + if(nbmsg != 0){ + gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_unread_msg(),-1); + } else { gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_chat_picture(),-1); - //} else { - // gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_active_chat_picture(),-1); - //} + } }while(gtk_tree_model_iter_next(model,&iter)); } } @@ -247,7 +246,7 @@ static gboolean grab_focus(GtkWidget *w){ return FALSE; } -void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la){ +void linphone_gtk_friend_list_set_chat_conversation(const LinphoneAddress *la){ GtkTreeIter iter; GtkListStore *store=NULL; GtkWidget *w = linphone_gtk_get_main_window(); @@ -270,7 +269,7 @@ void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la){ linphone_gtk_load_chatroom(cr,la,chat_view); } gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view)); - linphone_gtk_create_chat_picture(FALSE); + linphone_gtk_friend_list_update_chat_picture(); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry")); } else { store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist))); @@ -295,7 +294,7 @@ void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la){ linphone_gtk_load_chatroom(cr,uri,chat_view); } gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view)); - linphone_gtk_create_chat_picture(FALSE); + linphone_gtk_friend_list_update_chat_picture(); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry")); break; } @@ -309,17 +308,16 @@ void linphone_gtk_notebook_tab_select(GtkNotebook *notebook,GtkWidget *page,guin GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); GtkWidget *chat_view; LinphoneChatRoom *cr=NULL; - const LinphoneAddress *addr=(const LinphoneAddress *)data; - chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); - if(page != NULL){ - notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch"); - if(gtk_notebook_page_num(notebook,page)==gtk_notebook_page_num(notebook,chat_view)){ - cr=linphone_core_get_chat_room(linphone_gtk_get_core(),addr); - if(cr!=NULL){ + chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + if(page != NULL){ + notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch"); + if(gtk_notebook_page_num(notebook,page)==gtk_notebook_page_num(notebook,chat_view)){ + cr=g_object_get_data(G_OBJECT(chat_view),"cr"); + if(cr!=NULL){ linphone_chat_room_mark_as_read(cr); - linphone_gtk_show_friends(); + linphone_gtk_show_friends(); } - } + } } } @@ -355,9 +353,8 @@ void linphone_gtk_chat_selected(GtkWidget *item){ linphone_gtk_load_chatroom(cr,uri,page); } gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,page)); - linphone_gtk_create_chat_picture(FALSE); + linphone_gtk_friend_list_update_chat_picture(); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); - g_signal_connect(G_OBJECT(notebook),"switch_page",(GCallback)linphone_gtk_notebook_tab_select,(gpointer)uri); } } @@ -809,7 +806,6 @@ void linphone_gtk_show_friends(void){ escaped=g_markup_escape_text(uri,-1); gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1); g_free(escaped); - //linphone_gtk_update_chat_picture(); //bi=linphone_friend_get_info(lf); /*if (bi!=NULL && bi->image_data!=NULL){ GdkPixbuf *pbuf= diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 4ab0bd72e..44b35c03c 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -75,7 +75,7 @@ static GtkWidget *make_tab_header(int number){ return w; } -void update_tab_header(LinphoneCall *call,gboolean pause){ +void linphone_gtk_call_update_tab_header(LinphoneCall *call,gboolean pause){ GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer(call); GtkWidget *main_window=linphone_gtk_get_main_window(); GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(main_window,"viewswitch")); @@ -688,7 +688,7 @@ void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call){ gtk_label_set_text(GTK_LABEL(duration),_("00::00::00")); linphone_gtk_in_call_set_animation_image(callview,GTK_STOCK_MEDIA_PLAY,TRUE); - update_tab_header(call,FALSE); + linphone_gtk_call_update_tab_header(call,FALSE); linphone_gtk_enable_mute_button( GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),TRUE); @@ -843,7 +843,7 @@ void linphone_gtk_draw_hold_button(GtkButton *button, gboolean active){ void linphone_gtk_hold_clicked(GtkButton *button){ int active=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button),"active")); LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL); - update_tab_header(call,active); + linphone_gtk_call_update_tab_header(call,active); if (!call) return; if(!active) { @@ -859,7 +859,7 @@ void linphone_gtk_enable_hold_button(LinphoneCall *call, gboolean sensitive, gbo GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer (call); GtkWidget *button; g_return_if_fail(callview!=NULL); - update_tab_header(call,!holdon); + linphone_gtk_call_update_tab_header(call,!holdon); button=linphone_gtk_get_widget(callview,"hold_call"); gtk_widget_set_sensitive(GTK_WIDGET(button),sensitive); gtk_widget_set_visible(GTK_WIDGET(button),sensitive); diff --git a/gtk/linphone.h b/gtk/linphone.h index 00484a04f..f987b2abe 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -58,7 +58,6 @@ GtkWidget *linphone_gtk_create_window(const char *window_name); GtkWidget *linphone_gtk_get_widget(GtkWidget *window, const char *name); GtkWidget *linphone_gtk_create_widget(const char *filename, const char *widget_name); - const char *linphone_gtk_message_storage_get_db_file(const char *filename); void linphone_gtk_show_assistant(void); void linphone_gtk_close_assistant(void); @@ -68,15 +67,11 @@ GtkWidget *linphone_gtk_get_main_window(); void linphone_gtk_display_something(GtkMessageType type,const gchar *message); void linphone_gtk_start_call(GtkWidget *button); void linphone_gtk_call_terminated(); -void linphone_gtk_show_friends(void); -void linphone_gtk_show_contact(LinphoneFriend *lf); void linphone_gtk_set_my_presence(LinphoneOnlineStatus ss); void linphone_gtk_show_parameters(void); void linphone_gtk_fill_soundcards(GtkWidget *pb); void linphone_gtk_fill_webcams(GtkWidget *pb); void linphone_gtk_load_identities(void); -LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with); -void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg); void linphone_gtk_call_log_update(GtkWidget *w); void linphone_gtk_create_log_window(void); void linphone_gtk_log_show(void); @@ -85,7 +80,6 @@ void linphone_gtk_log_push(OrtpLogLevel lev, const char *fmt, va_list args); void linphone_gtk_destroy_log_window(void); void linphone_gtk_refer_received(LinphoneCore *lc, const char *refer_to); gboolean linphone_gtk_check_logs(); -void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf); const gchar *linphone_gtk_get_ui_config(const char *key, const char *def); int linphone_gtk_get_ui_config_int(const char *key, int def); void linphone_gtk_set_ui_config_int(const char *key , int val); @@ -99,21 +93,25 @@ SipSetupContext* linphone_gtk_get_default_sip_setup_context(void); GtkWidget * linphone_gtk_show_buddy_lookup_window(SipSetupContext *ctx); void linphone_gtk_buddy_lookup_set_keyword(GtkWidget *w, const char *kw); void * linphone_gtk_wait(LinphoneCore *lc, void *ctx, LinphoneWaitingState ws, const char *purpose, float progress); - void linphone_gtk_terminate_call(GtkWidget *button); -void update_tab_header(LinphoneCall *call,gboolean pause); - +void linphone_gtk_call_update_tab_header(LinphoneCall *call,gboolean pause); void linphone_gtk_show_directory_search(void); void linphone_gtk_status_icon_set_blinking(gboolean val); void linphone_gtk_notify(LinphoneCall *call, const char *msg); -LinphoneChatRoom *linphone_gtk_start_chat(GtkTreeView* t); + void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view); void linphone_gtk_send_text(); GtkWidget * linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with); -void linphone_gtk_create_chat_picture(gboolean active); -void linphone_gtk_update_chat_picture(); -void linphone_gtk_chat_set_conversation(const LinphoneAddress *uri,gchar *conversation); -gchar * linphone_gtk_chat_get_conversation(const LinphoneAddress *uri); +LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with); +void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg); + +void linphone_gtk_friend_list_update_chat_picture(); +void linphone_gtk_friend_list_set_chat_conversation(const LinphoneAddress *la); +gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr); +void linphone_gtk_notebook_tab_select(GtkNotebook *notebook,GtkWidget *page,guint page_num, gpointer data); +void linphone_gtk_show_friends(void); +void linphone_gtk_show_contact(LinphoneFriend *lf); +void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf); /*functions controlling the different views*/ gboolean linphone_gtk_use_in_call_view(); @@ -151,6 +149,4 @@ void linphone_gtk_uninit_instance(void); void linphone_gtk_monitor_usb(void); void linphone_gtk_unmonitor_usb(void); -gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); -void linphone_gtk_tree_view_set_chat_conversation(const LinphoneAddress *la); -gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr); \ No newline at end of file +gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); \ No newline at end of file diff --git a/gtk/main.c b/gtk/main.c index e3699757f..e914e42bd 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1232,10 +1232,10 @@ static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call break; case LinphoneCallPausing: linphone_gtk_enable_hold_button(call,TRUE,FALSE); - update_tab_header(call,FALSE); + linphone_gtk_call_update_tab_header(call,FALSE); case LinphoneCallPausedByRemote: linphone_gtk_in_call_view_set_paused(call); - update_tab_header(call,TRUE); + linphone_gtk_call_update_tab_header(call,TRUE); break; case LinphoneCallConnected: linphone_gtk_enable_hold_button (call,TRUE,TRUE); diff --git a/po/cs.po b/po/cs.po index 726ba26a4..481b7aa17 100644 --- a/po/cs.po +++ b/po/cs.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-3.4.99.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2011-11-04 22:30+0100\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" @@ -27,26 +27,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Volat komu: %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Poslat text komu: %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Probíhá hovor" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "–" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "přerušen" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "promeškán" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Odmítnout" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" @@ -54,7 +69,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" @@ -62,21 +77,26 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Konference" @@ -89,31 +109,35 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Neplatný sipový kontakt!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "Za běhu vypisuje některé ladicí informace na standardní výstup." -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "Soubor, kam zapisovat protokol." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Spustí se pouze do systémové oblasti, nezobrazí hlavní okno." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "Zavolá právě teď na tuto adresu" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "je-li nastaveno, automaticky zvedne příchozí hovor" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -121,12 +145,12 @@ msgstr "" "Zadejte pracovní adresář (měl by být základní instalační adresář, například " "c:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Hovor s %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -139,7 +163,7 @@ msgstr "" "do svého adresáře?\n" "Odpovíte-li ne, tato osobo bude dočasně blokována." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -148,59 +172,59 @@ msgstr "" "Prosím, zadejte heslo pro uživatele %s\n" "v doméně %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Odpovědět" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Odmítnout" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Hovor odložen" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Porty" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Odkaz na webovou stránku" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Lipnhone – internetový videofon" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Výchozí)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Byly jsme přepojeni na %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -208,63 +232,54 @@ msgstr "" "Na tomto počítači nebyla objevena žádná zvuková karta.\n" "Nebudete moci vytáčet a přijímat a zvukové hovory." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Volný SIP videofon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "Zobrazit adresář" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Stav" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Jméno" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Volat komu: %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 #, fuzzy msgid "Chat" msgstr "Diskuzní skupina" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Hledat v adresáři %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Neplatný sipový kontakt!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Volat komu: %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Poslat text komu: %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Upravit kontakt „%s“" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Odstranit kontakt „%s“" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Odstranit kontakt „%s“" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Přidat nový kontakt z adresáře %s" @@ -365,20 +380,24 @@ msgstr "norština" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Aby se projevil výběr nového jazyka, je nutné znovu spustit linphone." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Žádná" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "ZRTP" @@ -634,114 +653,114 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Volá se…" -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "dobrá" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "průměrná" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "slabá" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "velmi slabá" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "příliš špatná" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "nedostupná" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "Probíhá konference" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "Probíhá hovor" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Odložený hovor" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Hovor skončil." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "Přepojit" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Přepojit" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Obnovit" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Odložit" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Odložit" @@ -764,157 +783,152 @@ msgstr "Odeslat" msgid "End conference" msgstr "Probíhá konference" -# XXX: Do not translate, this is GTK identifier -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Přepojit" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "Telefonuje se" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Délka" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Hodnocení kvality hovoru" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "V_olby" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Zobrazovat sám sebe" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "Nápo_věda" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Zobrazit ladicí okno" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Domovská stránka" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Vyhledat akt_ualizace" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Průvodce nastavením účtu" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "SIP adresa nebo telefonní číslo:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Zahájit nový hovor" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Kontakty" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Přidat" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Upravit" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Hledat" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Přidat kontakty z adresáře" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Přidat kontakt" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Nedávné hovory" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Moje současná totožnost:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Uživatelské jméno" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Heslo" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Připojení k Internetu:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Přihlašovat mě automaticky" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Informace o přihlášení" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Vítejte!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "všech uživatelích" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "připojených uživatelích" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Fiber Channel" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Výchozí" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1529,7 +1543,7 @@ msgstr "" msgid "Outgoing call" msgstr "Odchozí hovor" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Připraven." @@ -1584,11 +1598,11 @@ msgstr "Připojeno." msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" @@ -1688,116 +1702,116 @@ msgstr "" "SIP identita, kterou jste zadali, není platná.\n" "Měla by mít tvar sip:uživatel@proxydoména, například sip:alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Nelze se přihlásit jako %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Vyzvání na druhé straně." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Vyzvání na druhé straně…" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Časná média." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "Hovor s %s je odložen." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Hovor přijat kým: %s – odložen." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Hovor obnoven." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "Hovor přijat kým: %s." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Byli jsme obnoveni…" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "Hovor byl aktualizován protistranou…" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Hovor ukončen." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Uživatel je zaneprázdněn." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Uživatel je dočasně nedostupný." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Uživatel si nepřeje být rušen." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Volání odmítnuto." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Žádná odpověď." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Chyba protokolu." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Přesměrováno" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Volání se nezdařilo." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registrace na %s byla úspěšná." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Odregistrování z %s hotovo." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "odpověď nedorazila včas" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrace na %s selhala: %s" @@ -1807,7 +1821,7 @@ msgstr "Registrace na %s selhala: %s" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/de.po b/po/de.po index a4745d95f..44c1e66ea 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2012-11-07 19:27+0100\n" "Last-Translator: Gerhard Stengel \n" "Language-Team: German \n" @@ -17,53 +17,73 @@ msgstr "" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "„%s“ anrufen" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Text zu „%s“ schicken" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Im Gespräch" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "nicht verfügbar" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 msgid "Aborted" msgstr "Abgebrochen" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 msgid "Missed" msgstr "Entgangen" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 msgid "Declined" msgstr "Abgewiesen" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "%i Minute" msgstr[1] "%i Minuten" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "%i Sekunde" msgstr[1] "%i Sekunden" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format +msgid "%s\t%s" +msgstr "" + +#: ../gtk/calllogs.c:323 +#, fuzzy, c-format msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" "%s\t%s\tQualität: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:329 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\t\n" +"%s" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Konferenz" @@ -76,33 +96,37 @@ msgstr "Eigenes Telefon" msgid "Couldn't find pixmap file: %s" msgstr "Pixmapdatei %s kann nicht gefunden werden." -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Ungültiger SIP-Kontakt!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "Ausgabe von Debug-Informationen auf stdout während der Laufzeit" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "Pfad zu einer Datei, in die Protokolle geschrieben werden." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "Linphone mit ausgeschaltetem Video starten." -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" "Nur im Systemabschnitt der Kontrollleiste starten, aber das Hauptfenster " "nicht zeigen." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "Im Moment anzurufende Adresse" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "Falls aktiviert, werden eingehende Anrufe automatisch beantwortet" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -110,12 +134,12 @@ msgstr "" "Geben Sie einen Arbeitsordner an (sollte der Installationsordner sein, z. B. " "C:\\Programme\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Im Gespräch mit %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -128,7 +152,7 @@ msgstr "" "Ihrer Kontaktliste hinzufügen?\n" "Wenn Sie mit Nein antworten, wird diese Person vorläufig blockiert." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -137,59 +161,59 @@ msgstr "" "Geben Sie bitte Ihr Passwort für den Benutzernamen %s\n" " auf der Domäne %s ein:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Anruf fehlgeschlagen" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Anruf beendet" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Annehmen" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Abweisen" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Anruf wird gehalten" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, c-format msgid "by %s" msgstr "von %s" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s schlägt vor, eine Videoübertragung zu starten. Nehmen Sie an?" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Website-Verknüpfung" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - ein Internet-Video-Telefon" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Vorgabe)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Vermittlung nach %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -197,61 +221,52 @@ msgstr "" "Auf diesem Rechner können keine Soundkarten gefunden werden.\n" "Sie können keine Audio-Anrufe tätigen oder entgegennehmen." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Ein freies SIP-Video-Telefon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "Zum Adressbuch hinzufügen" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Anwesenheitsstatus" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Name" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "Anrufen" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 #, fuzzy msgid "Chat" msgstr "Chat Raum" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Im %s-Verzeichnis suchen" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Ungültiger SIP-Kontakt!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "„%s“ anrufen" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Text zu „%s“ schicken" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Kontakt „%s“ bearbeiten" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Kontakt „%s“ löschen" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Kontakt „%s“ löschen" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Einen neuen Kontakt aus dem %s-Verzeichnis hinzufügen" @@ -352,22 +367,26 @@ msgstr "Norwegisch" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Linphone muss neu gestartet werden, damit die neue Spracheinstellung wirksam " "wird." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Keinen" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -621,112 +640,112 @@ msgstr "" msgid "%.3f seconds" msgstr "%i Sekunde" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Verbindungsaufbau..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "gut" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "durchschnittlich" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "schlecht" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "sehr schlecht" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "zu schlecht" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "nicht verfügbar" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "Gesichert durch SRTP" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Gesichert durch ZRTP - [Auth.-Token: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Auf „Ungeprüft“ setzen" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Auf „Geprüft“ setzen" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "In Konferenz" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "Im Gespräch" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Gehaltener Anruf" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Anruf beendet." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "Vermittlung läuft" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "Vermittlung abgeschlossen." -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 msgid "Transfer failed." msgstr "Vermittlung fehlgeschlagen." -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Fortsetzen" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Halten" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Halten" @@ -749,155 +768,151 @@ msgstr "Senden" msgid "End conference" msgstr "In Konferenz" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Vermittlung" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "Im Gespräch" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Dauer" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Bewertung der Verbindungsqualität" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Optionen" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "Video immer starten" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Selbstansicht ein" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Hilfe" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Debug-Fenster anzeigen" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Auf _Aktualisierungen überprüfen" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "Konto-Einrichtungsassistent" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "SIP-Adresse oder Telefonnummer:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Einen neuen Anruf beginnen" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Kontakte" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Hinzufügen" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Bearbeiten" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Suchen" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Kontakte aus einem Verzeichnis hinzufügen" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Kontakt hinzufügen" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Letzte Gespräche" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Aktuelle Identität:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Benutzername" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passwort" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Internetverbindung:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Automatisch anmelden" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Anmeldeinformationen" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Willkommen !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Alle Teilnehmer" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "Angemeldete Teilnehmer" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Glasfaserkabel" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Vorgabe" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1508,7 +1523,7 @@ msgstr "" msgid "Outgoing call" msgstr "Abgehender Anruf" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Bereit" @@ -1564,11 +1579,11 @@ msgstr "Verbunden." msgid "Call aborted" msgstr "Anruf abgebrochen" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Anruf kann nicht gehalten werden" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Aktueller Anruf wird gehalten..." @@ -1669,115 +1684,115 @@ msgstr "" "Sie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:" "alice@beispiel.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Anmeldung als %s fehlgeschlagen" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Klingeln bei der Gegenseite." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Klingeln bei der Gegenseite..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "Anruf mit %s wird gehalten." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Der von %s entgegengenommene Anruf wird gehalten." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Anruf fortgesetzt." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "Anruf wird von %s entgegengenommen." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 #, fuzzy msgid "Incompatible, check codecs or security settings..." msgstr "Inkompatibel, überprüfen Sie die Codecs..." -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "Anruf wird fortgesetzt." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "Anruf wird von der Gegenseite gehalten." -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "Anruf ist von der Gegenseite aktualisiert worden." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Anruf beendet." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Teilnehmer ist besetzt." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Teilnehmer zur Zeit nicht verfügbar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Teilnehmer möchte nicht gestört werden." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Anruf abgewiesen" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Keine Antwort." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Protokollfehler" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Umgeleitet" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "Inkompatible Medienparameter." -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Anruf fehlgeschlagen." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registrierung auf %s erfolgreich." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Abmeldung von %s ist erfolgt." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "Zeitüberschreitung bei der Antwort" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrierung auf %s fehlgeschlagen: %s" @@ -1787,7 +1802,7 @@ msgstr "Registrierung auf %s fehlgeschlagen: %s" msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/es.po b/po/es.po index 9bdca11b7..90fa0f926 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2012-12-06 15:54+0100\n" "Last-Translator: BERAUDO Guillaume \n" "Language-Team: es \n" @@ -15,58 +15,80 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Llamar a %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Enviar mensaje a %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "En llamada " + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "n/a" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "abortada" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "perdida" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Rechazar" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "%i minuto" msgstr[1] "%i minutos" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "%i segundo" msgstr[1] "%i segundos" -#: ../gtk/calllogs.c:103 -#, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#, fuzzy, c-format +msgid "%s\t%s" msgstr "" "%s\t%s\tCalidad: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, fuzzy, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" "%s\t%s\tCalidad: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, fuzzy, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" +"%s\t%s\tCalidad: %s\n" +"%s\t%s %s\t" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Conferencia" @@ -79,32 +101,36 @@ msgstr "Yo" msgid "Couldn't find pixmap file: %s" msgstr "No se pudo encontrar el archivo pixmap: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "¡Contacto SIP no válido!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" "registra a stdout cierta información de depuración durante la ejecución." -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "ruta a un fichero donde escribir logs." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Iniciar sólo en la barra de tareas, no mostrar la interfaz principal." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "dirección a la que llamar inmediatamente" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "si está activo, responder a llamadas entrantes automáticamente" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -112,12 +138,12 @@ msgstr "" "Especifique un directorio de trabajo (debería ser la raíz de la instalación, " "ej: c:\\Archivos de Programa\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Llamar con %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -130,7 +156,7 @@ msgstr "" "contactos?\n" "Si responde no, esta persona será bloqueada temporalmente." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -139,63 +165,63 @@ msgstr "" "Por favor, introduzca la contraseña para el usuario %s\n" " en el dominio %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Error en la llamada." -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "Llamada terminada" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Llamada entrante" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Contestar" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "Rechazar" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "Llamada en pausa" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Puertos" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Enlace a la Web" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - un video-teléfono a través de Internet" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Opción predeterminada)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Somos transferidos a %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -203,63 +229,54 @@ msgstr "" "No se ha encontrado una tarjeta de sonido en este equipo.\n" "No será posible realizar o recibir llamadas de audio." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Un video-teléfono SIP gratuito" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "Añadir a la agenda" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 #, fuzzy msgid "Presence status" msgstr "Estado de Presencia" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nombre" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Llamada" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Buscar en el directorio %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "¡Contacto SIP no válido!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Llamar a %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Enviar mensaje a %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Editar contacto '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Eliminar contacto '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Eliminar contacto '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Añadir nuevo contacto desde el directorio %s" @@ -360,21 +377,25 @@ msgstr "Noruego" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Deberá reiniciar linphone para aplicar la nueva selección de lenguaje" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 #, fuzzy msgid "None" msgstr "Ninguno." -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "ZRTP" @@ -632,119 +653,119 @@ msgstr "" msgid "%.3f seconds" msgstr "%i segundo" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr " Llamando..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Llamada entrante" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "buena" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "media" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "mala" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "muy mala" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "demasiado mala" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "no disponible" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "Cifrada con SRTP" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Cifrada con ZRTP - [token de autenticación: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Set sin verificar" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Set verificado" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "En conferencia" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "En llamada " -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Llamada en pausa" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 #, fuzzy msgid "Call ended." msgstr "Llamada finalizada." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "Transferir" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Transferir" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Reanudar" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pausar" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Pausar" @@ -769,172 +790,168 @@ msgstr "Enviar" msgid "End conference" msgstr "En conferencia" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "etiqueta" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Transferir" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 #, fuzzy msgid "In call" msgstr "En llamada " -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "Duration" msgstr "Duración" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Calidad de la llamada" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Opciones" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 #, fuzzy msgid "Enable self-view" msgstr "Activar vista propia" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Ayuda" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "Show debug window" msgstr "Mostrar ventana de depuración" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Pagina_de_Inicio" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Buscar_Actualizaciones" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Asistente de configuración de cuenta" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "SIP address or phone number:" msgstr "Dirección SIP o número de teléfono" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Iniciar nueva llamada" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "Contactos" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Añadir" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editar" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Buscar" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "Añadir contactos desde un directorio" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "Añadir contacto" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "Llamadas recientes " -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "My current identity:" msgstr "Mi identidad actual:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Nombre de usuario" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Contraseña:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Conexión a Internet" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Iniciar sesión automáticamente" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" msgstr "Datos de inicio de sesión" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Welcome !" msgstr "¡Bienvenido/a!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Todos los usuarios" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "Usuarios conectados" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Canal de Fibra" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "Predeterminado" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1586,7 +1603,7 @@ msgstr "" msgid "Outgoing call" msgstr "Llamada saliente" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 #, fuzzy msgid "Ready" msgstr "Preparado" @@ -1648,11 +1665,11 @@ msgstr "Conectado." msgid "Call aborted" msgstr "Llamada abortada" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "No se pudo pausar la llamada" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Pausando la llamada actual..." @@ -1757,121 +1774,121 @@ msgstr "" "Debe ser del tipo sip:username@proxydomain, como por ejemplo sip:" "alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, fuzzy, c-format msgid "Could not login as %s" msgstr "No se pudo iniciar sesión como %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 #, fuzzy msgid "Remote ringing." msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Medios iniciales." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "La llamada con %s está puesta en pausa." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Llamada respondida por %s - en espera." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Llamada reanudada." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, fuzzy, c-format msgid "Call answered by %s." msgstr "Llamada respondida por %s." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Nos han reanudado..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "La llamada ha sido actualizada por el destinatario..." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 #, fuzzy msgid "Call terminated." msgstr "Llamada finalizada." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "El usuario está ocupado." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "El usuario no está disponible temporalmente." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "El usuario no quiere que le molesten." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Llamada rechazada." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "No hay respuesta." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Error de protocolo." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Redigirida" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "La llamada ha fallado." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Se ha registrado con éxito en %s." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Cancelación de registro en %s completada." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "timeout sin respuesta" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "El registro en %s ha fallado." @@ -1881,13 +1898,16 @@ msgstr "El registro en %s ha fallado." msgid "Authentication token is %s" msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Tiene %i llamada perdida." msgstr[1] "Tiene %i llamadas perdidas." +#~ msgid "label" +#~ msgstr "etiqueta" + #~ msgid "Chat with %s" #~ msgstr "Conversación con %s" diff --git a/po/fr.po b/po/fr.po index 322a2ff4c..d4cb84c52 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" -"PO-Revision-Date: 2002-12-06 17:33+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"PO-Revision-Date: 2013-04-08 16:46+0100\n" "Last-Translator: Simon Morlat \n" "Language-Team: french \n" "Language: \n" @@ -15,51 +15,71 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Appeler %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Chatter avec %s" + +#: ../gtk/calllogs.c:223 +#, c-format +msgid "Recent calls (%i)" +msgstr "Appels récents (%i)" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "inconnu" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 msgid "Aborted" msgstr "Abandonné" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 msgid "Missed" msgstr "Manqué" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 msgid "Declined" msgstr "Refusé" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Conférence" @@ -72,31 +92,35 @@ msgstr "Moi" msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Contact sip invalide !" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "affiche des informations de debogage" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." -msgstr "" +msgstr "Démarrer linphone avec la vidéo désactivée." -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Démarre iconifié, sans interface principale." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "addresse à appeler maintenant" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "si positionné, répond automatiquement aux appels entrants" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -104,12 +128,12 @@ msgstr "" "Spécifie un répertoire de travail (qui devrait être le répertoire " "d'installation, par exemple c:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Appel avec %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -123,7 +147,7 @@ msgstr "" "Si vous répondez non, cette personne sera mise temporairement sur liste " "noire." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -132,59 +156,59 @@ msgstr "" "Entrez le mot de passe pour %s\n" " sur le domaine %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Refuser" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Appel en pause" -#: ../gtk/main.c:1137 -#, fuzzy, c-format +#: ../gtk/main.c:1142 +#, c-format msgid "by %s" -msgstr "Ports utilisés" +msgstr "" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Lien site web" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - un téléphone video pour l'internet" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -192,60 +216,51 @@ msgstr "" "Aucune carte son n'a été détectée sur cet ordinateur.\n" "Vous ne pourrez pas effectuer d'appels audio." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Un visiophone libre" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "Ajouter au carnet d'adresse" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Info de présence" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nom" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "Appeler" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Rechercher dans l'annuaire de %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Contact sip invalide !" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Appeler %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Chatter avec %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Editer le contact '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Supprimer le contact '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, c-format +msgid "Delete chat history of '%s'" +msgstr "Supprimer l'historique de chat de '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Ajouter un contact depuis l'annuaire %s" @@ -346,22 +361,26 @@ msgstr "Norvégien" msgid "Hebrew" msgstr "Hébreu" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "Serbe" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "La nouvelle selection de langue prendra effet au prochain démarrage de " "linphone." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" -msgstr "" +msgstr "Aucun" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -382,7 +401,7 @@ msgstr "Prénom, Nom" #: ../gtk/buddylookup.c:160 msgid "Error communicating with server." -msgstr "" +msgstr "Erreur de communication avec le serveur." #: ../gtk/buddylookup.c:164 msgid "Connecting..." @@ -408,22 +427,24 @@ msgid "" "Welcome !\n" "This assistant will help you to use a SIP account for your calls." msgstr "" +"Bienvenue!\n" +"Cet assistant va vous aider à utiliser un compte SIP pour vos appels." #: ../gtk/setupwizard.c:43 msgid "Create an account on linphone.org" -msgstr "" +msgstr "Créer un compte sur linphone.org" #: ../gtk/setupwizard.c:44 msgid "I have already a linphone.org account and I just want to use it" -msgstr "" +msgstr "J'ai déjà un compte linphone.org et je souhaite l'utiliser" #: ../gtk/setupwizard.c:45 msgid "I have already a sip account and I just want to use it" -msgstr "" +msgstr "J'ai déjà un compte Sip et je souhaite l'utiliser" #: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" -msgstr "" +msgstr "Entrez votre identifiant linphone.org" #: ../gtk/setupwizard.c:92 msgid "Username:" @@ -447,7 +468,7 @@ msgstr "Mot de passe*" #: ../gtk/setupwizard.c:125 msgid "Domain*" -msgstr "" +msgstr "Domaine*" #: ../gtk/setupwizard.c:126 msgid "Proxy" @@ -455,7 +476,7 @@ msgstr "" #: ../gtk/setupwizard.c:298 msgid "(*) Required fields" -msgstr "" +msgstr "(*) Champs requis" #: ../gtk/setupwizard.c:299 msgid "Username: (*)" @@ -471,7 +492,7 @@ msgstr "" #: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" -msgstr "" +msgstr "Confirmez votre mot de passe: (*)" #: ../gtk/setupwizard.c:369 msgid "" @@ -499,9 +520,8 @@ msgid "Account setup assistant" msgstr "" #: ../gtk/setupwizard.c:575 -#, fuzzy msgid "Configure your account (step 1/1)" -msgstr "Configuer un compte SIP" +msgstr "Configurez votre compte" #: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" @@ -566,7 +586,7 @@ msgstr "" #: ../gtk/incall_view.c:238 msgid "uPnP not activated" -msgstr "" +msgstr "uPnP non activé" #: ../gtk/incall_view.c:240 #, fuzzy @@ -603,112 +623,112 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" -msgstr "" +msgstr "Raccrocher" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Tentative d'appel..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "bon" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "moyen" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "faible" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "très faible" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "nulle" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "indisponible" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "Sécurisé par SRTP" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Sécurisé par ZRTP- [jeton: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Marquer comme non vérifié" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Marquer comme vérifié" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "En conférence" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "Appel en cours" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Appel en attente" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Appel terminé." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" -msgstr "" +msgstr "Transfert en cours" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "Transfert terminé" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 msgid "Transfer failed." msgstr "Transfert échoué" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Reprendre" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Pause" @@ -730,157 +750,153 @@ msgstr "Envoyer" msgid "End conference" msgstr "Fin de conférence" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "Vidéo" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Transfert" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "Appel en cours" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Durée" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Qualité de l'appel" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" -msgstr "" +msgstr "Toujours démarrer la vidéo" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Se voir" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Aide" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Fenêtre de débogage" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Site web" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "Adresse SIP ou numéro" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Démarrer un nouvel appel" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Contacts" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Ajouter" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editer" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Rechercher" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Ajouter un contact depuis l'annuaire" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Ajouter un contact." -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Appels récents" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Mon identité sip:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Nom d'utilisateur" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Mot de passe" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Me connecter automatiquement" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Information de login" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Bienvenue !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Tous" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "En ligne" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Par défaut" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" -msgstr "" +msgstr "Supprimer" #: ../gtk/about.ui.h:1 msgid "About linphone" @@ -935,7 +951,7 @@ msgstr "" #: ../gtk/password.ui.h:1 msgid "Linphone - Authentication required" -msgstr "Linphone - Autentification demandée" +msgstr "Linphone - Authentification demandée" #: ../gtk/password.ui.h:2 msgid "Please enter the domain password" @@ -975,7 +991,7 @@ msgstr "" #: ../gtk/sip_account.ui.h:5 msgid "SIP Proxy address:" -msgstr "Addresse du proxy SIP:" +msgstr "Adresse du proxy SIP:" #: ../gtk/sip_account.ui.h:6 msgid "Looks like sip:" @@ -999,7 +1015,7 @@ msgstr "Publier la présence" #: ../gtk/sip_account.ui.h:11 msgid "Configure a SIP account" -msgstr "Configuer un compte SIP" +msgstr "Configurer un compte SIP" #: ../gtk/parameters.ui.h:1 msgid "default soundcard" @@ -1023,7 +1039,7 @@ msgstr "Codecs audio" #: ../gtk/parameters.ui.h:6 msgid "Video codecs" -msgstr "Codecs video" +msgstr "Codecs vidéo" #: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 msgid "C" @@ -1162,11 +1178,11 @@ msgstr "Son" #: ../gtk/parameters.ui.h:40 msgid "Video input device:" -msgstr "Périphérique d'entrée video" +msgstr "Périphérique d'entrée vidéo" #: ../gtk/parameters.ui.h:41 msgid "Prefered video resolution:" -msgstr "Résolution video préférée:" +msgstr "Résolution de vidéo préférée:" #: ../gtk/parameters.ui.h:42 msgid "Video" @@ -1179,8 +1195,8 @@ msgstr "Paramètres multimedia" #: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -"Cette rubrique permet de définir son addresse SIP lorsqu'on ne possède pas " -"de compte SIP" +"Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de " +"compte SIP" #: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" @@ -1192,7 +1208,7 @@ msgstr "Votre nom d'utilisateur:" #: ../gtk/parameters.ui.h:47 msgid "Your resulting SIP address:" -msgstr "Votre addresse SIP:" +msgstr "Votre adresse SIP:" #: ../gtk/parameters.ui.h:48 msgid "Default identity" @@ -1480,7 +1496,7 @@ msgstr "" msgid "Outgoing call" msgstr "Appel sortant" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Prêt." @@ -1535,11 +1551,11 @@ msgstr "En ligne." msgid "Call aborted" msgstr "Appel abandonné" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "La mise en attente a échoué" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Mise en attente de l'appel..." @@ -1641,116 +1657,116 @@ msgstr "" "Elle doit être de la forme sip:username@domain, comme par example sip:" "alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Echec de la connexion en tant que %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Sonnerie distante." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Sonnerie distante..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." -msgstr "Prise d'appel anticipée" +msgstr "Prise d'appel anticipée." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "%s est maintenant en attente." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Appel répondu par %s - en attente" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Appel repris." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "Appel répondu par %s." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Reprise..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "L'appel a été repris par le correspondant." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Appel terminé." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Occupé..." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "L'usager est temporairement indisponible." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "L'usager ne souhaite pas être dérangé" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Appel décliné." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Pas de réponse." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Erreur de protocole" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Redirection" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "L'appel a échoué." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Enregistrement sur %s effectué." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Désenregistrement sur %s effectué." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "Pas de réponse" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Echec de l'enregistrement sur %s: %s" @@ -1760,7 +1776,7 @@ msgstr "Echec de l'enregistrement sur %s: %s" msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/he.po b/po/he.po index 7439d2651..b8b2895b8 100644 --- a/po/he.po +++ b/po/he.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.5.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2012-12-27 10:14+0200\n" "Last-Translator: Isratine Citizen \n" "Language-Team: Rahut \n" @@ -19,59 +19,82 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.4\n" -#: ../gtk/calllogs.c:82 +# צור קשר עם +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "התקשר אל %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "שלח טקסט אל %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "בשיחה כעת" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "לא זמין (n/a)" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "ננטשה" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "הוחמצה" # דחיה -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "לדחות" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "דקה %i" msgstr[1] "%i דקות" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "שניה %i" msgstr[1] "%i שניות" -#: ../gtk/calllogs.c:103 -#, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#, fuzzy, c-format +msgid "%s\t%s" msgstr "" "%s\t%s\tאיכות: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, fuzzy, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" "%s\t%s\tאיכות: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, fuzzy, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" +"%s\t%s\tאיכות: %s\n" +"%s\t%s %s\t" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "ועידה" @@ -84,42 +107,47 @@ msgstr "אני" msgid "Couldn't find pixmap file: %s" msgstr "לא ניתן למצוא קובץ ‫pixmap: ‫%s" +# איש־קשר +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "כתובת sip לא תקפה !" + # cli -#: ../gtk/main.c:88 +#: ../gtk/main.c:92 #, fuzzy msgid "log to stdout some debug information while running." msgstr "רשום אל stdout מידע ניפוי שגיאות מסוים בזמן ביצוע." # cli -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 #, fuzzy msgid "path to a file to write logs into." msgstr "נתיב אל קובץ שברצונך לרשום אליו את הרשומות." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" # cli -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 #, fuzzy msgid "Start only in the system tray, do not show the main interface." msgstr "התחל במגש המערכת בלבד, אל תציג את הממשק הראשי." # cli -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 #, fuzzy msgid "address to call right now" msgstr "כתובת להתקשרות ברגע זה" # cli -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 #, fuzzy msgid "if set automatically answer incoming calls" msgstr "באם אפשרות זו נקבעת ענה אוטומטית לקריאות נכנסות" # cli -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 #, fuzzy msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" @@ -128,14 +156,14 @@ msgstr "" "ציין מדור העבודה (אמור להיות מבוסס על ההתקנה, למשל: c:\\Program Files" "\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "התקשרות באמצעות %s" # הקשר שלהם # אם התשובה -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -148,7 +176,7 @@ msgstr "" "שלך ?\n" "היה ותשובתך תהיה לא, אדם זה יהיה מסומן באופן זמני ברשימה השחורה." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -158,64 +186,64 @@ msgstr "" " בתחום %s:" # שיחה -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "שגיאת קריאה" # Conversation ended -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "שיחה הסתיימה" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "לענות" # דחיה -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "לדחות" # Conversation paused -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "שיחה הושהתה" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Ports utilisés" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "קישור אתר רשת" # ‫Linphone - וידאופון במרשתת -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "‫Linphone - וידאופון אינטרנטי" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "‫%s (משתמטת)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "אנחנו מועברים אל %s" # קריאות שמע -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -223,63 +251,52 @@ msgstr "" "לא אותרו כרטיסי קול במחשב זה.\n" "לא תהיה ביכולתך לשלוח או לקבל שיחות שמע." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "וידאופון SIP חופשי" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "הוסף אל ספר כתובות" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "מצב נוכחות" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "שם" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "קריאה" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" # a name or a number -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "חיפוש במדור %s" -# איש־קשר -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "כתובת sip לא תקפה !" - -# צור קשר עם -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "התקשר אל %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "שלח טקסט אל %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "ערוך איש קשר '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "מחק איש קשר '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "מחק איש קשר '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "הוסף איש קשר חדש מן מדור %s" @@ -384,21 +401,25 @@ msgstr "norsk" msgid "Hebrew" msgstr "" +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + # selected הנבחרת -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "עליך לאתחל את לינפון כדי שהשפה החדשה תיכנס לתוקף." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "ללא" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -659,121 +680,121 @@ msgstr "" msgid "%.3f seconds" msgstr "שניה %i" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "מתקשר כעת..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "‭00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "טובה" # רגילה -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "ממוצעת" # weak חלשה חלושה רפויה רופפת -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "דלה" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "דלה מאוד" # רעה -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "גרועה מדי" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "לא זמינה" # באמצעות -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "מאובטחת על ידי SRTP" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "מאובטחת על ידי ZRTP - [אות אימות: %s]" # set or unset verification state of ZRTP SAS. -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "הגדר כלא מאומתת" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "הגדר כמאומתת" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "בשיחת ועידה" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "בשיחה כעת" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "שיחה מושהית" # שעות %02i דקות %02i שניות %02i # Force LTR time format (hours::minutes::seconds) with LRO chatacter (U+202D) -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "‭%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "שיחה הסתיימה." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "העברה" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "העברה" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "חזרה" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "השהיה" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "השהיה" @@ -798,159 +819,155 @@ msgstr "שיגור" msgid "End conference" msgstr "בשיחת ועידה" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "תוויות" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "העברה" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "בשיחה כעת" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "משך זמן" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "אומדן איכות שיחה" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_אפשרויות" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "אפשר ראות-עצמית" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_עזרה" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "הצג חלון ניפוי שגיאות" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_עמוד הבית" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "בדיקת _עדכונים" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "אשף חשבון" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "כתובת SIP או מספר טלפון" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "התחלת שיחה חדשה" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "אנשי קשר" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "הוסף" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "ערוך" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "חיפוש" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "הוסף אנשי קשר מן מדור" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "הוספת איש קשר" # קריאות אחרונות -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "שיחות אחרונות" # הזהות הנוכחית שלי -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "זהותי הנוכחית:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "שם משתמש" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "סיסמה" # מרשתת -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "חיבור אינטרנט:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "חבר אותי אוטומטית" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "מידע התחברות" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "ברוך בואך !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "כל המשתמשים" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "משתמשים מקוונים" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "‫ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "ערוץ סיב" # משתמט -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "ברירת מחדל" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1577,7 +1594,7 @@ msgstr "" msgid "Outgoing call" msgstr "קריאה יוצאת" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "מוכן" @@ -1636,11 +1653,11 @@ msgstr "מקושר." msgid "Call aborted" msgstr "קריאה בוטלה" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "לא ניתן להשהות את השיחה" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "משהה כעת שיחה נוכחית..." @@ -1747,40 +1764,40 @@ msgstr "" "זו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net" # בשם כ־ -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "לא ניתן להתחבר בזהות %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "צלצול מרוחק." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "צלצול מרוחק..." # A SIP state -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "מדיה מוקדמת." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "שיחה עם %s מושהית." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "קריאה נענתה על ידי %s - בהמתנה." # renewed -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "קריאה חודשה." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "קריאה נענתה על ידי %s." @@ -1788,89 +1805,89 @@ msgstr "קריאה נענתה על ידי %s." # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 #, fuzzy msgid "Incompatible, check codecs or security settings..." msgstr "חוסר תאימות, נא לבדוק קודקים..." -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "חזרנו..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" # באופן מרוחק -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "שיחה עודכנה מרחוק..." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "קריאה הסתיימה." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "משתמש עסוק כעת." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "משתמש לא זמין זמנית." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "משתמש לא מעוניין שיפריעו לו." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "קריאה סורבה." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "אין תגובה." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "שגיאת פרוטוקול." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "מכוון מחדש" # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 #, fuzzy msgid "Incompatible media parameters." msgstr "חוסר תאימות, נא לבדוק קודקים..." -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "קריאה נכשלה." # הרשמה אצל %s הושלמה בהצלחה. -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "רישום אצל %s הושלם בהצלחה." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "אי רישום אצל %s סוים." # Pas de réponse # no response in defined time -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "אין היענות תוך זמן מוגדר" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "רישום אצל %s נכשל: %s" @@ -1881,13 +1898,16 @@ msgid "Authentication token is %s" msgstr "אות האימות הינה %s" # האם כדאי לחקות את הטלפונים הניידים? שיחות של נענו -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "החמצת שיחה %i." msgstr[1] "החמצת %i שיחות." +#~ msgid "label" +#~ msgstr "תוויות" + #~ msgid "by %s" #~ msgstr "מאת %s" diff --git a/po/hu.po b/po/hu.po index 54f7821a5..256e7ffba 100644 --- a/po/hu.po +++ b/po/hu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2013-03-26 19:00+0100\n" "Last-Translator: Viktor \n" "Language-Team: \n" @@ -17,53 +17,75 @@ msgstr "" "X-Generator: Poedit 1.5.4\n" "Plural-Forms: nplurals=1; plural=1 == 1 ? 0 : 1;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "%s hívása" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Szöveg küldése a következőnek: %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "vonalban" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "-" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 msgid "Aborted" msgstr "Megszakítva" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 msgid "Missed" msgstr "Nem fogadott" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 msgid "Declined" msgstr "Elutasítva" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "%i perc" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "%i másodperc" -#: ../gtk/calllogs.c:103 -#, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" -msgstr "" -"%s\t%s\tMinőség: %s\n" -"%s\t%s %s\t" - -#: ../gtk/calllogs.c:108 -#, c-format -msgid "" -"%s\t%s\t\n" -"%s\t%s" +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#, fuzzy, c-format +msgid "%s\t%s" msgstr "" "%s\t%s\t\n" "%s\t%s" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:323 +#, fuzzy, c-format +msgid "" +"%s\tQuality: %s\n" +"%s\t%s\t" +msgstr "" +"%s\t%s\tMinőség: %s\n" +"%s\t%s %s\t" + +#: ../gtk/calllogs.c:329 +#, fuzzy, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" +"%s\t%s\t\n" +"%s\t%s" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Konferencia" @@ -76,31 +98,35 @@ msgstr "én" msgid "Couldn't find pixmap file: %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Érvénytelen sip partner !" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "Futás közben némi hibakeresési információ az stdout-ra naplózása." -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "fájl elérési útja, melybe a naplók kerülnek." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "Linphone indítása, videó kikpacsolva. " -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Csak a tálcaikon indítása, ne mutassa a fő ablakot." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "Cím azonnali híváshoz" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "Bekapcsolva automatikusan válaszol a bejövő hívásokra" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -108,12 +134,12 @@ msgstr "" "Adjon meg egy munkakönyvtárat (ennek az installációs könyvtárnak kéne " "lennie, pl. C:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Hívás %s -el" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -126,7 +152,7 @@ msgstr "" "szeretné adni a partnerlistához?\n" "Ha nemmel válaszol, ez a személy átmenetileg tiltólistára kerül." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -135,59 +161,59 @@ msgstr "" "Kérem, adja meg jelszavát a következő felhasználónévhez: %s\n" "tartomány %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Hiba a hívás közben" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Hívás vége" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Hívás fogadása" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Elutasítás" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Hívás várakoztatva" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, c-format msgid "by %s" msgstr "a következő által: %s" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s szerené elidítani a videót. Elfogadja?" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Internetes oldal" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - internetes videó telefon" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Alapértelmezett)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Át vagyunk irányítva ide: %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -195,60 +221,51 @@ msgstr "" "Hangkártya nincs érzékelve ezen a számítógépen.\n" "Nem fog tudni hang hívásokat küldeni vagy fogadni." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Egy ingyenes SIP video-telefon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "Hozzáadás címjegyzékhez" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Jelenlét státusz" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Név" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "Hivás" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "Csevegés" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Keresés ebben a könyvtárban: %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Érvénytelen sip partner !" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "%s hívása" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Szöveg küldése a következőnek: %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Kapcsolatinformációk szerkesztése: '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "'%s' partner törlése" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "'%s' partner törlése" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Új partner hozzáadása ebből a könyvtárból: %s" @@ -349,22 +366,26 @@ msgstr "norvég" msgid "Hebrew" msgstr "héber" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Újra kell indítania a linphone-t, hogy az új nyelv kiválasztása érvényre " "jusson. " -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Nincs" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "ZRTP" @@ -610,105 +631,105 @@ msgstr "" msgid "%.3f seconds" msgstr "%.3f másodperc" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Befejezés" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Hívás folyamatban..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "jó" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "közepes" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "gyenge" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "nagyon gyenge" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "rossz" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "nem elérhető" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "SRTP-vel titkosítva" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "ZRTP-vel titkosítva - [hitelesítési jel: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Beállítás ellenőrizetlenként" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Beállítás ellenőrzöttként" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "Konferencián" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "vonalban" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Várakoztatott hívás" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Hívás vége." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "Átvitel folyamatban" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "Átvitel befejezve." -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 msgid "Transfer failed." msgstr "Az átvitel sikertelen." -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Visszatérés" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Várakoztatás" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" @@ -717,7 +738,7 @@ msgstr "" "Felvétel a következőbe\n" "%s %s" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "(Várakoztatva)" @@ -738,155 +759,151 @@ msgstr "Küld" msgid "End conference" msgstr "Konferencia vége" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "címke" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "Beszélgetés felvétele hangfájlba" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "Videó" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "Elnémítás" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Átvitel" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "vonalban" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Időtartam" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Hívásminőség" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Beállítások" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "Videó indítása mindig" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Saját nézet" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Segítség" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Hibakeresési ablak mutatása" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Honlap" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Frissítések keresése" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "Fiók varázsló" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "Adja meg a SIP címet vagy a telefonszámot:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Új hívás kezdeményezése" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Partnerek" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Hozzáadás" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Szerkesztés" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Keresés" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Partnerek hozzáadása könyvtárból" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Partner hozzáadása" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Legutóbbi hívások" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Jelenlegi identitásom:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Felhasználónév" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Jelszó" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Internet kapcsolat:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Jelentkeztessen be automatikusan" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Bejelentkezési információ" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Üdvözöljük !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Minden felhasználó" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "Elérhető" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Fiber csatorna" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Alapértelmezett" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "Törlés" @@ -1489,7 +1506,7 @@ msgstr "" msgid "Outgoing call" msgstr "Kimenő hívás" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Kész" @@ -1544,11 +1561,11 @@ msgstr "Kapcsolódva." msgid "Call aborted" msgstr "Hívás megszakítva" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Nem sikerült várakoztatni a hívást" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Jelenlegi hívás várakoztatásának aktiválása..." @@ -1649,115 +1666,115 @@ msgstr "" "Így kéne kinéznie: sip:felhasznalonev@proxytartomany, például sip:" "aladar@pelda.hu" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Nem sikerült belépni ezzel: %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Távoli csengés." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Távoli csengés..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Korai médiák." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "A hívás a következővel: %s várakoztatva" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "%s fogadta a hívást - várakoztatva." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Hívás visszatért" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "%s válaszolt a hívásra." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" "Nem kompatibilis, ellenőrizze a kódek- vagy a biztonsági beállításokat..." -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "Visszatértünk." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "Megállítva a másik fél által." -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "A hívás távolról frissítve." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "A hívás befejezve." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "A felhasználó foglalt." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "A felhasználó ideiglenesen nem elérhető" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "A felhasználó nem akarja, hogy zavarják." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Hívás elutasítva" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Nincs válasz." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Protokol hiba." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Átirányítva" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "Nem kompatibilis médiajellemzők." -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Nem sikerült a hívás." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "A regisztáció a %s -n sikerült." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "A kiregisztrálás kész a következőn: %s ." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "időtúllépés után nincs válasz" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "A regisztáció a %s -n nem sikerült: %s" @@ -1767,12 +1784,15 @@ msgstr "A regisztáció a %s -n nem sikerült: %s" msgid "Authentication token is %s" msgstr "Hitelesítési jel: %s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Van %i nem fogadott hivás." +#~ msgid "label" +#~ msgstr "címke" + #~ msgid "Chat with %s" #~ msgstr "Chat-elés %s -el" diff --git a/po/it.po b/po/it.po index 9e9a1183d..f1c29e8b0 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2002-10-15 HO:MI+ZONE\n" "Last-Translator: Matteo Piazza \n" "Language-Team: it \n" @@ -15,54 +15,74 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Chiamata %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Invia testo a %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "In chiamata con" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "annullato" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "mancante" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Rifiuta" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -78,42 +98,46 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Contatto SIP non valido" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat con %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -125,128 +149,119 @@ msgstr "" "veda il tuo stato o aggiungerlo alla tua lista dei contatti Se rispondi no " "questo utente sarà momentaneamente bloccato." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "Prego inserire la password per username %s e dominio %s" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Cronologia" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Chiamata terminata" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Rifiuta" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "annullato" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Porte" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Presenza" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Chiamata %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Cerca contatti nella directory %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Contatto SIP non valido" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Chiamata %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Invia testo a %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Modifica contatto %s" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Elimina contatto %s" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Elimina contatto %s" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Aggiungi nuovo contatto dalla directory %s" @@ -347,20 +362,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Riavviare il software per utilizzare la nuova lingua selezionata" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -612,117 +631,117 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr "Linguaggio" -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "In chiamata con" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Termina chiamata" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Chiamata terminata." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Chiamata rifiutata" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -744,167 +763,163 @@ msgstr "Invia" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "etichetta" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "In chiamata" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Durata" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Self-view abilitato" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "Show debug window" msgstr "Linphone debug window" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Configuratore di account" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "Indirizzo sip o numero." -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "In connessione" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Aggiungi" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Edita" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "Aggiungi nuovo contatto dalla directory %s" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "Trovato %i contatto" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "In chiamata" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Identità corrente" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Username" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Password" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Connessione Internet:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Login Automatico" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Credenziali di accesso" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Benvenuto !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "" "Tutti gli utenti\n" "Utenti Online" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "Fibra Ottica" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Default" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1521,7 +1536,7 @@ msgstr "" msgid "Outgoing call" msgstr "Chiamata in uscita" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Pronto" @@ -1580,12 +1595,12 @@ msgstr "Connessione" msgid "Call aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 #, fuzzy msgid "Could not pause the call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 #, fuzzy msgid "Pausing the current call..." msgstr "Mostra chiamata corrente" @@ -1686,118 +1701,118 @@ msgstr "" "L'identità sip utilizza è invalida.\n" "Dovrebbre essere sip:username@proxydomain, esempio: sip:alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "impossibile login come %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat con %s" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Chiamata terminata" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Chiamata terminata." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Utente occupato" -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Utente non disponibile" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "L'utente non vuole essere disturbato" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 #, fuzzy msgid "No response." msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 #, fuzzy msgid "Redirected" msgstr "Rediretto verso %s..." -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registrazione su %s attiva" -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Unregistrazione su %s" -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrazione su %s fallita: %s" @@ -1807,13 +1822,16 @@ msgstr "Registrazione su %s fallita: %s" msgid "Authentication token is %s" msgstr "Linphone - Autenticazione richiesta" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "" msgstr[1] "" +#~ msgid "label" +#~ msgstr "etichetta" + #~ msgid "Chat with %s" #~ msgstr "Chat con %s" diff --git a/po/ja.po b/po/ja.po index e95879bb8..668018fd1 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2003-01-21 00:05+9000\n" "Last-Translator: YAMAGUCHI YOSHIYA \n" "Language-Team: \n" @@ -17,53 +17,73 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "接続中" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "通話はキャンセルされました。" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 msgid "Missed" msgstr "" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "ライン入力" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -76,42 +96,46 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "pixmapファイルが見つかりません %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -120,132 +144,123 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "通話は拒否されました。" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "ライン入力" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "接続中" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "電話帳" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 #, fuzzy msgid "Presence status" msgstr "状態" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名前" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "通話はキャンセルされました。" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(接続するための情報がありません!)" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, c-format +msgid "Delete chat history of '%s'" +msgstr "" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "" @@ -346,21 +361,25 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 #, fuzzy msgid "None" msgstr "ありません。" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -606,118 +625,118 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr "接続中" -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "接続中" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "接続中" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "接続中" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 #, fuzzy msgid "Call ended." msgstr "通話は拒否されました。" -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "通話はキャンセルされました。" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -740,170 +759,166 @@ msgstr "サウンド" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 #, fuzzy msgid "In call" msgstr "接続中" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "Duration" msgstr "情報" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 #, fuzzy msgid "Enable self-view" msgstr "使用する" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "SIP address or phone number:" msgstr "レジストラサーバーのSIPアドレス" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "接続中" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "追加する" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "コーデックの情報" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "(接続するための情報がありません!)" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "接続中" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "My current identity:" msgstr "個人情報" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "ユーザーマニュアル" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "パスワード" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" msgstr "コーデックの情報" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Welcome !" msgstr "接続中" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "ライン入力" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "個人情報" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1527,7 +1542,7 @@ msgstr "" msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 #, fuzzy msgid "Ready" msgstr "準備完了。" @@ -1589,11 +1604,11 @@ msgstr "接続しました。" msgid "Call aborted" msgstr "通話はキャンセルされました。" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "" @@ -1693,121 +1708,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, fuzzy, c-format msgid "Could not login as %s" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 #, fuzzy msgid "Remote ringing." msgstr "登録中……" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "登録中……" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "電話をかける\n" "電話に出る" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 #, fuzzy msgid "Call terminated." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "ユーザーはビジーです" -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "ユーザーは、今出られません。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "ユーザーは手が離せないようです。" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "通話はキャンセルされました。" -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "登録しました。" -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "登録しました。" -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "登録しました。" @@ -1817,7 +1832,7 @@ msgstr "登録しました。" msgid "Authentication token is %s" msgstr "コーデックの情報" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/nb_NO.po b/po/nb_NO.po index c1500d304..8b7f20c28 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2011-04-05 01:56+0200\n" "Last-Translator: Øyvind Sæther \n" "Language-Team: Norwegian Bokmål \n" @@ -17,54 +17,74 @@ msgstr "" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Ring %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Send tekst til %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "I samtale med" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "avbrutt" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "ubesvart" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Avvis" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -78,31 +98,35 @@ msgstr "Skru mikrofonen av" msgid "Couldn't find pixmap file: %s" msgstr "Fant ikke pixmap fli: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Ugyldig SIP kontakt !" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "skriv logg-informasjon under kjøring" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Start skjult i systemkurven, ikke vis programbildet." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "address som skal ringes nå" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "besvarer innkommende samtaler automatisk om valgt" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -110,12 +134,12 @@ msgstr "" "Spesifiser arbeidsmappe (bør være base for installasjonen, f.eks: c:" "\\Programfiler\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Ring med %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -128,7 +152,7 @@ msgstr "" "din kontaktliste?\n" "Hvis du svarer nei vil personen bli svartelyst midlertidig." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -137,61 +161,61 @@ msgstr "" "Skriv inn ditt passord for brukernavn %s\n" " på domene %s:i>:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Samtalehistorikk" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Samtale avsluttet" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Svarer" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Avvis" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "Samtale avbrutt" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Porter" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Peker til nettsted" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Standard)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Vi er overført til %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -199,61 +223,52 @@ msgstr "" "Klarte ikke å finne noe lydkort på denne datamaskinen.\n" "Du vil ikke kunne sende eller motta lydsamtaler." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Tilstedestatus" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Navn" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Ring %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Søk i %s katalogen" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Ugyldig SIP kontakt !" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Ring %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Send tekst til %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Rediger kontakt '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Slett kontakt '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Slett kontakt '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Legg til kontakt fra %s katalogen" @@ -354,20 +369,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du må restarte linphone for at det nye språkvalget skal iverksettes." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -620,114 +639,114 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "I samtale med" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Pauset samtale" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Samtale avsluttet." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "Overfører" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Overfører" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Fortsett" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Pause" @@ -750,157 +769,153 @@ msgstr "Send" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "etikett" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Overfører" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "I samtale" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Varighet" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Alternativer" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Vis video av deg selv" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Hjelp" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Vis avlusningsvindu" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "H_jemmeside" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Sjekk _Oppdateringer" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Brukerkontoveiviser" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "Sip adresse eller telefonnummer:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Start en ny samtale" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Kontakter" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Legg til" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Rediger" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Søk" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Legg til kontakter fra katalogen" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Legg til kontakt" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "I samtale" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Min nåværende identitet:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Brukernavn" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passord" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Internet forbindelse:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Logg meg på automatisk" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Innlogginsinformasjon" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Velkommen!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Alle brukere" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "Tilkoblede brukere" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Fiber Kanal" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Standard" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1514,7 +1529,7 @@ msgstr "" msgid "Outgoing call" msgstr "Utgående samtale" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Klar" @@ -1570,11 +1585,11 @@ msgstr "Tilkoblet" msgid "Call aborted" msgstr "Samtale avbrutt" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Kunne ikke pause samtalen" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Pauser nåværende samtale" @@ -1676,116 +1691,116 @@ msgstr "" "SIP adressen du har angitt er feil. Adressen bør se ut som sip: " "brukernavn@domenenavn, f.eks sip:ola@eksempel.no" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Ikke ikke logge inn som %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Tidlig media" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "Samtalen med %s er pauset." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Samtale besvart av %s - på vent." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Samtale gjenopptatt." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "Samtale besvart av %s." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Vi har blitt gjenopptatt..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Samtale avsluttet." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Brukeren er opptatt." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Brukeren er midlertidig ikke tilgjengelig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Brukeren vil ikke bli forstyrret." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Samtale avvist." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Ikke noe svar." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Protokollfeil." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Omdirigert" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Samtale feilet." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lykkes." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lykkes." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "ingen svar innen angitt tid" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislykkes: %s" @@ -1795,13 +1810,16 @@ msgstr "Registrering hos %s mislykkes: %s" msgid "Authentication token is %s" msgstr "Autorisering kreves" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Du har %i ubesvarte anrop." msgstr[1] "Du har %i missade samtal" +#~ msgid "label" +#~ msgstr "etikett" + #~ msgid "Keypad" #~ msgstr "Tastatur" diff --git a/po/nl.po b/po/nl.po index 926bd7bb6..8cfe7febd 100644 --- a/po/nl.po +++ b/po/nl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: nl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2007-09-05 10:40+0200\n" "Last-Translator: Hendrik-Jan Heins \n" "Language-Team: Nederlands \n" @@ -19,54 +19,74 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, fuzzy, c-format +msgid "Call %s" +msgstr "Oproepgeschiedenis" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Contactlijst" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "afgebroken" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "gemist" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "lijn" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -79,42 +99,46 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat met %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -123,131 +147,122 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Linphone - Oproepgeschiedenis" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Oproep beeindigd" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "lijn" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "afgebroken" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Contactlijst" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Een Vrije SIP video-telefoon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "Adresboek" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Aanwezigheidsstatus" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Naam" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Oproepgeschiedenis" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 #, fuzzy msgid "Chat" msgstr "Chat box" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "" - -#: ../gtk/friendlist.c:807 -#, fuzzy, c-format -msgid "Call %s" -msgstr "Oproepgeschiedenis" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Bewerk contactgegevens" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, c-format +msgid "Delete chat history of '%s'" +msgstr "" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "" @@ -348,20 +363,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Geen" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -609,118 +628,118 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr "Contactlijst" -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 #, fuzzy msgid "Call ended." msgstr "Oproep beeindigd" -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Oproep geannuleerd." -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -743,173 +762,169 @@ msgstr "Geluid" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 #, fuzzy msgid "In call" msgstr "Inkomende oproep" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "Duration" msgstr "Informatie" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 #, fuzzy msgid "Enable self-view" msgstr "Video aan" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "_Help" msgstr "Help" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "SIP address or phone number:" msgstr "Geef het SIP adres of telefoonnummer in" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "Verbinden" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Adres" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Bewerken" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "Contact informatie" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "Bewerk contactgegevens" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "Inkomende oproep" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "My current identity:" msgstr "SIP-identiteit:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "gebruikersnaam:" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "wachtwoord:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 #, fuzzy msgid "Automatically log me in" msgstr "Automatisch een geldige hostnaam raden" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" msgstr "Contact informatie" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Welcome !" msgstr "Contactlijst" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "Aanwezig" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "SIP-identiteit:" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1543,7 +1558,7 @@ msgstr "" msgid "Outgoing call" msgstr "Uitgaande oproep" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Gereed." @@ -1602,12 +1617,12 @@ msgstr "Verbonden." msgid "Call aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 #, fuzzy msgid "Could not pause the call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 #, fuzzy msgid "Pausing the current call..." msgstr "Kon niet oproepen" @@ -1709,121 +1724,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 #, fuzzy msgid "Remote ringing." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat met %s" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Oproep beeindigd" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Oproepen of\n" "beantwoorden" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Oproep beeindigd." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Gebruiker is bezet." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Gebruiker is tijdelijk niet beschikbaar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "De gebruiker wenst niet gestoord te worden." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Oproep geweigerd." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 #, fuzzy msgid "Redirected" msgstr "Doorgeschakeld naar %s..." -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "Oproep geannuleerd." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registratie op %s mislukt (time-out)." @@ -1833,7 +1848,7 @@ msgstr "Registratie op %s mislukt (time-out)." msgid "Authentication token is %s" msgstr "Authorisatie gegevens" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pl.po b/po/pl.po index 7999a657d..4512b7230 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2003-08-22 12:50+0200\n" "Last-Translator: Robert Nasiadek \n" "Language-Team: Polski \n" @@ -15,53 +15,73 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Dzwonie do " + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "Połączenie odwołane." -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 msgid "Missed" msgstr "" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "linia" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -74,42 +94,46 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -118,132 +142,123 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "Rozmowa odrzucona." -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "linia" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Dzwonie do " -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "Książka adresowa" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 #, fuzzy msgid "Presence status" msgstr "Obecność" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nazwa" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Połączenie odwołane." -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, c-format +msgid "Delete chat history of '%s'" +msgstr "" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "" @@ -344,21 +359,25 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 #, fuzzy msgid "None" msgstr "Brak." -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -604,118 +623,118 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr "Dzwonie do " -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 #, fuzzy msgid "Call ended." msgstr "Rozmowa odrzucona." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Połączenie odwołane." -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -738,171 +757,167 @@ msgstr "Dźwięk" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 #, fuzzy msgid "In call" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "Duration" msgstr "Informacja" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 #, fuzzy msgid "Enable self-view" msgstr "Włączone" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "SIP address or phone number:" msgstr "Adres serwera rejestracji sip" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Adres" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "Informacje o kodeku" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "My current identity:" msgstr "Tożsamość" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Podręcznik" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Twoje hasło:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" msgstr "Informacje o kodeku" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Welcome !" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "linia" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "Tożsamość" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1526,7 +1541,7 @@ msgstr "" msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 #, fuzzy msgid "Ready" msgstr "Gotowy." @@ -1586,11 +1601,11 @@ msgstr "Połączony" msgid "Call aborted" msgstr "Połączenie odwołane." -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "" @@ -1690,121 +1705,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 #, fuzzy msgid "Remote ringing." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Zadzwoń lub\n" "Odpowiedz" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 #, fuzzy msgid "Call terminated." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Osoba jest zajęta." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Osoba jest tymczasowo niedostępna." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Osoba nie chce, aby jej przeszkadzać." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "Połączenie odwołane." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Rejestracja powiodła się." @@ -1814,7 +1829,7 @@ msgstr "Rejestracja powiodła się." msgid "Authentication token is %s" msgstr "Informacje o kodeku" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pt_BR.po b/po/pt_BR.po index 9cd72ea90..821ba910f 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-1.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2006-07-11 23:30+0200\n" "Last-Translator: Rafael Caesar Lenzi \n" "Language-Team: pt_BR \n" @@ -17,54 +17,74 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, fuzzy, c-format +msgid "Call %s" +msgstr "Histórico de chamadas" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Contatando " + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "Abortado" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "Perdido" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "linha" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -77,42 +97,46 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, fuzzy, c-format msgid "Call with %s" msgstr "Bate-papo com %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -121,132 +145,123 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Linphone - Histórico de chamadas" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 #, fuzzy msgid "Call ended" msgstr "Chamada cancelada." -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "linha" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "Abortado" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Contatando " -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 #, fuzzy msgid "Add to addressbook" msgstr "Catálogo de endereços" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Status de presença" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Histórico de chamadas" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 #, fuzzy msgid "Chat" msgstr "Sala de bate-papo" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "" - -#: ../gtk/friendlist.c:807 -#, fuzzy, c-format -msgid "Call %s" -msgstr "Histórico de chamadas" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Edicar informação de contato" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, c-format +msgid "Delete chat history of '%s'" +msgstr "" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "" @@ -348,20 +363,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Nenhum" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -608,118 +627,118 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 #, fuzzy msgid "Calling..." msgstr "Contatando " -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "Contatando " -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Contatando " -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 #, fuzzy msgid "Call ended." msgstr "Chamada cancelada." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Histórico de chamadas" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -742,171 +761,167 @@ msgstr "Som" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 #, fuzzy msgid "In call" msgstr "Camadas recebidas" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 #, fuzzy msgid "Duration" msgstr "Informações" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 #, fuzzy msgid "Enable self-view" msgstr "Ativado" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "Contatando " -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 #, fuzzy msgid "Add" msgstr "Endereço" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editar" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contacts from directory" msgstr "Informação de contato" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "Edicar informação de contato" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "Camadas recebidas" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 #, fuzzy msgid "My current identity:" msgstr "Identificação SIP:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Usuário" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Senha:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 #, fuzzy msgid "Automatically log me in" msgstr "Adquirir automaticamente um nome de servidor válido." -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" msgstr "Informação de contato" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 #, fuzzy msgid "Welcome !" msgstr "Contatando " -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "linha" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "Identificação SIP:" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1535,7 +1550,7 @@ msgstr "" msgid "Outgoing call" msgstr "Chamadas efetuadas" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 #, fuzzy msgid "Ready" msgstr "Pronto." @@ -1594,11 +1609,11 @@ msgstr "Conectado." msgid "Call aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "" @@ -1688,121 +1703,121 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 #, fuzzy msgid "Remote ringing." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Bate-papo com %s" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Chamada cancelada." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Ligar ou\n" "atender" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "" -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Usuário está ocupado." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Usuário está temporáriamente indisponível." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 #, fuzzy msgid "Redirected" msgstr "Redirecionado para %s..." -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "Histórico de chamadas" -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registro falhou (tempo esgotado)." @@ -1812,7 +1827,7 @@ msgstr "Registro falhou (tempo esgotado)." msgid "Authentication token is %s" msgstr "Informações de autenticação" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/ru.po b/po/ru.po index a7fd4a832..66419e69a 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2010-01-22 18:43+0300\n" "Last-Translator: Maxim Prokopyev \n" "Language-Team: Russian \n" @@ -17,26 +17,41 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Набрать %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Послать текст к %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "Соединен с" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "н/д" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "отмененный" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "пропущенный" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Отклонить" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" @@ -44,7 +59,7 @@ msgstr[0] "%i минута" msgstr[1] "%i минуты" msgstr[2] "%i минут" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" @@ -52,25 +67,32 @@ msgstr[0] "%i секунда" msgstr[1] "%i секунды" msgstr[2] "%i секунд" -#: ../gtk/calllogs.c:103 -#, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#, fuzzy, c-format +msgid "%s\t%s" msgstr "" "%s\t%s\tКачество: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, fuzzy, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" "%s\t%s\tКачество: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, fuzzy, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" +"%s\t%s\tКачество: %s\n" +"%s\t%s %s\t" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Конференция" @@ -83,33 +105,37 @@ msgstr "Я" msgid "Couldn't find pixmap file: %s" msgstr "Невозможно найти графический файл: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Неверный sip-контакт!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "" "Вывод некоторой отладочной информации на устройство стандартного вывода во " "время работы" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "путь к файлу для записи журнала работы." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Запускать только в системном лотке, не показывая главное окно" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "адрес для звонка" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "автоматически принимать входящие вызовы, если включено" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -117,12 +143,12 @@ msgstr "" "Укажите рабочий каталог (должен содержать установленные файлы приложения, " "например: c:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Чат с %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -135,7 +161,7 @@ msgstr "" "его(её) в свой контактный лист?\n" "Если вы ответите Нет, этот человек будет временно заблокирован." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -144,59 +170,59 @@ msgstr "" "Пожалуйста, введите пароль для пользователя %s\n" " в домене %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Ошибка вызова" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Разговор окончен" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Ответить" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Отклонить" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Вызов приостановлен" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Порты" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Ссылка на сайт" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - видео-телефон для интернета" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (По умолчанию)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Мы переведены на %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -204,61 +230,52 @@ msgstr "" "На этом компьютере не обнаружено ни одной звуковой карты.\n" "Вы не сможете совершать или принимать аудио-вызовы." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Свободный SIP видео-телефон" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "Добавить в адресную книгу" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Статус присутствия" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Имя" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "Вызов" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 #, fuzzy msgid "Chat" msgstr "Комната чата" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Поиск в директории %s" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Неверный sip-контакт!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Набрать %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Послать текст к %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Редактировать контакт '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Удалить контакт '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Удалить контакт '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Добавить новый контакт из директории '%s'" @@ -359,22 +376,26 @@ msgstr "Норвежский" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Вы должны перезапустить Linphone для того, чтобы языковые настройки вступили " "в силу." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Нет" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "ZRTP" @@ -627,114 +648,114 @@ msgstr "" msgid "%.3f seconds" msgstr "%i секунда" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Вызов..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "хорошее" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "среднее" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "плохое" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "очень плохое" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "слишком плохое" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "недоступно" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "Защищено SRTP" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Защищено ZRTP - [токен: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Не проверен" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Проверен" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "В конференции" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "Соединен с" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Приостановленный вызов" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Звонок закончен." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "Перевести" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Перевести" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Продолжить" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Пауза" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Пауза" @@ -757,155 +778,151 @@ msgstr "Отправить" msgid "End conference" msgstr "В конференции" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "метка" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Перевести" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "Вызов" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Продолжительность" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Уровень качества звонка" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Настройки" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Включить своё видео" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "_Помощь" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Показать окно отладки" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Домашняя страница" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Проверить _Обновления" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 msgid "Account assistant" msgstr "Помощник настройки учётной записи" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "SIP-адрес или номер телефона:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Совершить новый вызов" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Контакты" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Добавить" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Редактировать" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Поиск" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Добавить контакты из директории" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Добавить контакт" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Недавние вызовы" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Мой текущий идентификатор:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Имя пользователя" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Пароль" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Интернет-соединение:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Входить автоматически" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Информация для входа" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Добро пожаловать!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Все пользователи" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "Пользователи в сети" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Оптоволокно" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "По умолчанию" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1522,7 +1539,7 @@ msgstr "" msgid "Outgoing call" msgstr "Исходящий звонок" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Готов" @@ -1578,11 +1595,11 @@ msgstr "Соединён." msgid "Call aborted" msgstr "Вызов отменён" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Не удалось приостановить вызов" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Приостановление текущего вызова..." @@ -1685,118 +1702,118 @@ msgstr "" "Они должны выглядеть как sip:username@proxydomain, например such as sip:" "alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Невозможно зайти как %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Абонент вызывается." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Абонент вызывается..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Гудки." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "Вызов %s приостановлен." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Вызов отвечен %s - в ожидании." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Разговор продолжен." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "Вызов отвечен %s." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 #, fuzzy msgid "Incompatible, check codecs or security settings..." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Наш вызов продолжен..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "Вызов обновлён вызываемым абонентом..." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Звонок прерван." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Пользователь занят." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Пользователь временно недоступен." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Абонент не хочет отвечать." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Звонок отклонён." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Нет ответа." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Ошибка протокола." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Переадресован" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 #, fuzzy msgid "Incompatible media parameters." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Не удалось совершить вызов." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Регистрация на %s прошла успешно." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Отмена регистрации на %s завершена." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "время ожидания истекло" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Регистрация на %s не удалась: %s" @@ -1806,7 +1823,7 @@ msgstr "Регистрация на %s не удалась: %s" msgid "Authentication token is %s" msgstr "Аутентификационный токен: %s" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1814,6 +1831,9 @@ msgstr[0] "У вас пропущен %i звонок." msgstr[1] "У вас пропущено %i звонка." msgstr[2] "У вас пропущено %i звонков." +#~ msgid "label" +#~ msgstr "метка" + #~ msgid "by %s" #~ msgstr "со стороны: %s" diff --git a/po/sr.po b/po/sr.po index 4a465ec8e..814b4d050 100644 --- a/po/sr.po +++ b/po/sr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2013-02-11 19:03+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" @@ -16,26 +16,41 @@ msgstr "" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Позови „%s“" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Пошаљи текст за %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "У позиву" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "н/д" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "прекинути" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "пропуштени" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Одбиј" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" @@ -44,7 +59,7 @@ msgstr[1] "%i минута" msgstr[2] "%i минута" msgstr[3] "Један минут" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" @@ -53,25 +68,32 @@ msgstr[1] "%i секунде" msgstr[2] "%i секунде" msgstr[3] "Једна секунда" -#: ../gtk/calllogs.c:103 -#, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#, fuzzy, c-format +msgid "%s\t%s" msgstr "" "%s\t%s\tКвалитет: %s\n" "%s\t%s %s\t" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, fuzzy, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" "%s\t%s\tКвалитет: %s\n" "%s\t%s %s\t" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, fuzzy, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" +"%s\t%s\tКвалитет: %s\n" +"%s\t%s %s\t" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Конференција" @@ -84,31 +106,35 @@ msgstr "Ја" msgid "Couldn't find pixmap file: %s" msgstr "Не могу да пронађем датотеку сличице: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "Неисправан сип контакт !" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "бележи у стандардни излаз неке податке за уклањање грешака док ради." -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "путања до датотеке за уписивање бележака." -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Покреће се само у системској фиоци, не приказује главно сучеље." -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "адреса за позивање управо сада" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "ако је подешено сам ће се јављати на долазне позиве" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -116,12 +142,12 @@ msgstr "" "Наводи радни директоријум (треба да буде основа инсталације, нпр: c:" "\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Позив са корисником %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -134,7 +160,7 @@ msgstr "" "на ваш списак пријатеља ?\n" "Ако одговорите са не, ова особа ће привремено бити стављена на црни списак." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -143,59 +169,59 @@ msgstr "" "Унесите вашу лозинку за корисничко име %s\n" " на домену %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 msgid "Call error" msgstr "Грешка позива" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Позив је завршен" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Долазни позив" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Јави се" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Одбиј" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 msgid "Call paused" msgstr "Позив је заустављен" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Кодеци" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Веза веб сајта" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Линфон — интернет телефон са снимком" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (основно)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Преселили смо се на %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -203,60 +229,51 @@ msgstr "" "Ниједна звучна картица није откривен ана овом рачунару.\n" "Нећете бити у могућности да шаљете или да примате звучне позиве." -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "Слободан СИП телефон са снимком" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "Додајте у адресар" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Стање присуства" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Име" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 msgid "Call" msgstr "Позови" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Тражи у директоријуму „%s“" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "Неисправан сип контакт !" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Позови „%s“" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Пошаљи текст за %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Уредите контакт „%s“" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Обришите контакт „%s“" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Обришите контакт „%s“" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Додајте нови контакт из директоријума „%s“" @@ -357,21 +374,25 @@ msgstr "Норвешки" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Трба поново да покренете линфон да би нови изабрани језик ступио на снагу." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "Ништа" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "СРТП" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "ЗРТП" @@ -626,114 +647,114 @@ msgstr "" msgid "%.3f seconds" msgstr "%i секунда" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Позивам..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "Долазни позив" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "добро" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "просечно" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "оскудно" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "јадно" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "много лоше" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "недоступно" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "Осигурано СРТП-ом" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Осигурано ЗРТП-ом [потврђивање идентитета: %s]" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "Непроверено подешавање" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Проверено подешавање" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "На конференцији" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "У позиву" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "Заустављен позив" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Позив је завршен." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "Пребаци" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Пребаци" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "Настави" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Застани" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "Застани" @@ -756,156 +777,152 @@ msgstr "Пошаљи" msgid "End conference" msgstr "На конференцији" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "натпис" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "Пребаци" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "Долазни позив" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Трајање" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "Оцена квалитета позива" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "_Могућности" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Укључи самовиђење" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "По_моћ" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "Прикажи прозорче прочишћавања" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "_Матична страница" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "Провери _ажурирања" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Помоћник подешавања налога" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "СИП адреса или број телефона:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "Започните нови позив" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "Пријатељи" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Додај" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Уреди" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Тражи" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Додај пријатеље из директоријума" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "Додај пријатеља" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "Recent calls" msgstr "Скорашњи позиви" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Мој тренутни идентитет:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Корисничко име" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Лозинка" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Интернет веза:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Сам ме пријави" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Подаци пријављивања" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Добродошли !" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "Сви корисници" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "Корисницима на мрежи" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "АДСЛ" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "Оптички канал" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "Основно" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1517,7 +1534,7 @@ msgstr "" msgid "Outgoing call" msgstr "Одлазни позив" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Спреман" @@ -1573,11 +1590,11 @@ msgstr "Повезан сам." msgid "Call aborted" msgstr "Позив је прекинут" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Не могу да зауставим позив" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Заустављам тренутни позив..." @@ -1678,116 +1695,116 @@ msgstr "" "Треба да изгледа као „sip:корисник@домен-посредника, као што је „sip:" "alice@example.net“" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Не могу да се пријавим као %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Удаљено звоњење." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "Удаљено звоњење..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Ранији медиј." -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "Позив са „%s“ је заустављен." -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "Позив на који је одговорио „%s“ — на чекању." -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "Позив је настављен." -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "На позив је одговорио „%s“." -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "Позив нам је настављен..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 #, fuzzy msgid "Call is updated by remote." msgstr "Позив је ажуриран удаљеним..." -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Позив је завршен." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Корисник је заузет." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Корисник је привремено недоступан." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Корисник не жели да буде узнемираван." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Позив је одбијен." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "Нема одговора." -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "Грешка у протоколу." -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "Преусмерен" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "Позив није успео." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Уписивање на „%s“ је успело." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Исписивање са „%s“ је обављено." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "нема ограничења одговора" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Уписивање на „%s“ није успело: %s" @@ -1797,7 +1814,7 @@ msgstr "Уписивање на „%s“ није успело: %s" msgid "Authentication token is %s" msgstr "Симбол потврђивања идентитета је „%s“" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1806,6 +1823,9 @@ msgstr[1] "Пропустили сте %i позива." msgstr[2] "Пропустили сте %i позива." msgstr[3] "Пропустили сте један позив." +#~ msgid "label" +#~ msgstr "натпис" + #~ msgid "Chat with %s" #~ msgstr "Ћаскајте са „%s“" diff --git a/po/sv.po b/po/sv.po index 0b2882efc..4f7ec762c 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2009-02-17 15:22+0100\n" "Last-Translator: Emmanuel Frécon \n" "Language-Team: SWEDISH \n" @@ -16,54 +16,74 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "Ringer %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "Skicka text till %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "I samtal med" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "avbrytade" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "missade" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "Avböj" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -77,31 +97,35 @@ msgstr "Mikrofon av" msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta pixmap filen: %s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "ogiltig SIP kontakt!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "skriv loggning information under körning" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "Starta ikonifierat, visa inte huvudfönstret" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "Samtalsmottagare" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "Om på, besvara automatisk alla inkommande samtal" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -109,12 +133,12 @@ msgstr "" "Välj en arbetskatalog som ska vara basen för installationen, såsom C:" "\\Program\\Linphone" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "Samtal med %s" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -127,7 +151,7 @@ msgstr "" "henne till din kontaktlista?\n" "Om du svarar nej, personen kommer att vara bannlyst." -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -136,121 +160,112 @@ msgstr "" "Mata in ditt lösenord för användaren %s\n" "vid domänen %s:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "Samtalshistorik" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Samtalet slut" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Avböj" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "avbrytade" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "Portar" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "Webbsajt" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "Närvarostatus" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Namn" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "Ringer %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "Sök i %s katalogen" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "ogiltig SIP kontakt!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "Ringer %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "Skicka text till %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "Ändra kontakt '%s'" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "Ta bort kontakt '%s'" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "Ta bort kontakt '%s'" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "Lägg till kontakt ifrån %s katalogen" @@ -351,20 +366,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du behöver starta om programmet för att det nya språket ska synas." -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -616,116 +635,116 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "I samtal med" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "Lägg på" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "Samtalet slut." -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "Samtalet avböjdes." -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -747,169 +766,165 @@ msgstr "Skicka" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "etikett" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "I samtal" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "Förlopp" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "Själv bild" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "Show debug window" msgstr "Linphone debug fönster" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "_Homepage" msgstr "Hemsidan" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "Check _Updates" msgstr "Letar efter uppdateringar" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "Kontoinstallationsassistenten" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "Användarnamn" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 #, fuzzy msgid "Contacts" msgstr "Kontaktar" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Lägg till" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editera" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "Sök" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "Lägg till kontakt ifrån katalogen" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "Hittat kontakt %i" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "I samtal" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "Min nuvarande identitet" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Användarnamn" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Lösenord" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "Internet förbindelse:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "Logga mig automatiskt" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Login information" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "Välkommen!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "" "Alla användare\n" "Online användare" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "Fiber" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 #, fuzzy msgid "Default" msgstr "%s (Default)" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1519,7 +1534,7 @@ msgstr "" msgid "Outgoing call" msgstr "Utgående samtal" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Redo" @@ -1578,12 +1593,12 @@ msgstr "Kopplad" msgid "Call aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 #, fuzzy msgid "Could not pause the call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 #, fuzzy msgid "Pausing the current call..." msgstr "Nuvarande samtal" @@ -1684,119 +1699,119 @@ msgstr "" "SIP adressen som du matade in är inte rätt. Adressen borde se ut som sip:" "namn@domän, såsom sip:peter@exempel.se" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "Kunde inte logga in som %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "Tidig media" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Samtal med %s" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "Samtalet slut" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "Samtalet slut." -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "Användare upptagen." -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "Användaren temporärt inte tillgänglig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "Användaren vill inte bli störd." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 #, fuzzy msgid "No response." msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 #, fuzzy msgid "Redirected" msgstr "Omdirigerat till %s..." -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 #, fuzzy msgid "Call failed." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lyckades." -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lyckades." -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislyckades: %s" @@ -1806,13 +1821,16 @@ msgstr "Registrering hos %s mislyckades: %s" msgid "Authentication token is %s" msgstr "Linphone - Autentisering krävs" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Du har %i missat samtal" msgstr[1] "Du har %i missade samtal" +#~ msgid "label" +#~ msgstr "etikett" + #~ msgid "Chat with %s" #~ msgstr "Chatta med %s" diff --git a/po/zh_CN.po b/po/zh_CN.po index f03c496d8..7c81df3fc 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2011-01-08 23:51+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" @@ -18,52 +18,72 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "呼叫 %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "发送消息给 %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "正在呼叫" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "中断" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "丢失" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "拒绝" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -77,42 +97,46 @@ msgstr "静音" msgid "Couldn't find pixmap file: %s" msgstr "无法打开位图文件:%s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "无效的 SIP 联系人!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "运行时向标准输出记录调试信息。" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "启动到系统托盘,不显示主界面。" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "现在呼叫的地址" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "是否设置呼叫自动应答" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "指定工作目录(应为安装目录例如 C:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "与 %s 通话" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -124,68 +148,68 @@ msgstr "" "您是否允许他看到您的在线状态或者将它加为您的联系人允许?\n" "如果您回答否,则会将该人临时性的放入黑名单" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" " at domain %s:" msgstr "请输入 %s@%s 的密码:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "呼叫历史" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "呼叫结束" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "呼入" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "拒绝" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "中断" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "端口" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "网站" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - 互联网视频电话" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (默认)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -193,61 +217,52 @@ msgstr "" "未在此计算机上检测到声卡。\n" "您无法发送或接收音频呼叫。" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "免费的 SIP 视频电话" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "在线状态" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名称" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "呼叫 %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "在 %s 目录中查找 " -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "无效的 SIP 联系人!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "呼叫 %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "发送消息给 %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "编辑联系人 %s" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "删除联系人 %s" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "删除联系人 %s" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "从 %s 目录增加联系人 " @@ -348,20 +363,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重启 linphone 以使语言选择生效。" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -613,116 +632,116 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "正在呼叫..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 #, fuzzy msgid "Incoming call" msgstr "呼入" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 #, fuzzy msgid "In call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 #, fuzzy msgid "Paused call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "通话结束。" -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "呼叫失败。" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 msgid "(Paused)" msgstr "" @@ -744,167 +763,163 @@ msgstr "发送" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "标签" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "呼入" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "通话时间" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "启用自视" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "Show debug window" msgstr "Linphone 调试窗口" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "_Homepage" msgstr "主页" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "Check _Updates" msgstr "检查更新" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "帐户设置向导" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "SIP 地址或电话号码:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "联系人" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "添加" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "编辑" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "搜索" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "从目录增加联系人" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Add contact" msgstr "找到 %i 联系方式" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "呼入" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "当前地址:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "用户名" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密码" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "网络连接:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "自动登录" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "登录信息" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "欢迎!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 #, fuzzy msgid "Online users" msgstr "" "全部用户\n" "在线用户" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 #, fuzzy msgid "Fiber Channel" msgstr "" "ADSL\n" "光纤" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "默认" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1530,7 +1545,7 @@ msgstr "" msgid "Outgoing call" msgstr "呼出" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "就绪" @@ -1588,12 +1603,12 @@ msgstr "已连接。" msgid "Call aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 #, fuzzy msgid "Could not pause the call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "" @@ -1689,116 +1704,116 @@ msgstr "" "您输入的地址无效。\n" "它应具有“sip:用户名@代理域”的形式,例如 sip:alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "无法登录为 %s" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "响铃。" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 #, fuzzy msgid "Remote ringing..." msgstr "响铃。" -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "与 %s 通话" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 #, fuzzy msgid "Call resumed." msgstr "呼叫结束" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "通话结束。" -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "被叫正忙。" -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "您呼叫的用户暂时无法接通。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "用户已开启免打扰功能。" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "呼叫被拒绝。" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "没有响应。" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "协议错误。" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "已重定向" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "呼叫失败。" -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "成功注册到 %s" -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "已在 %s 解除注册。" -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "没有响应,超时" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "注册到 %s 失败: %s" @@ -1808,12 +1823,15 @@ msgstr "注册到 %s 失败: %s" msgid "Authentication token is %s" msgstr "Linphone - 需要认证" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您错过了 %i 个呼叫。" +#~ msgid "label" +#~ msgstr "标签" + #~ msgid "Keypad" #~ msgstr "数字键盘" diff --git a/po/zh_TW.po b/po/zh_TW.po index c65dcb84f..d1b2ce1a7 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-07 12:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" "PO-Revision-Date: 2011-04-06 21:24+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: \n" @@ -17,52 +17,72 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../gtk/calllogs.c:82 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#, c-format +msgid "Call %s" +msgstr "播打給 %s" + +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#, c-format +msgid "Send text to %s" +msgstr "傳送文字給 %s" + +#: ../gtk/calllogs.c:223 +#, fuzzy, c-format +msgid "Recent calls (%i)" +msgstr "通話中" + +#: ../gtk/calllogs.c:300 msgid "n/a" msgstr "" -#: ../gtk/calllogs.c:85 +#: ../gtk/calllogs.c:303 #, fuzzy msgid "Aborted" msgstr "已放棄" -#: ../gtk/calllogs.c:88 +#: ../gtk/calllogs.c:306 #, fuzzy msgid "Missed" msgstr "未接" -#: ../gtk/calllogs.c:91 +#: ../gtk/calllogs.c:309 #, fuzzy msgid "Declined" msgstr "拒接" -#: ../gtk/calllogs.c:97 +#: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" -#: ../gtk/calllogs.c:100 +#: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" -#: ../gtk/calllogs.c:103 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format -msgid "" -"%s\t%s\tQuality: %s\n" -"%s\t%s %s\t" +msgid "%s\t%s" msgstr "" -#: ../gtk/calllogs.c:108 +#: ../gtk/calllogs.c:323 #, c-format msgid "" -"%s\t%s\t\n" -"%s\t%s" +"%s\tQuality: %s\n" +"%s\t%s\t" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:14 +#: ../gtk/calllogs.c:329 +#, c-format +msgid "" +"%s\t\n" +"%s" +msgstr "" + +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "" @@ -76,43 +96,47 @@ msgstr "靜音" msgid "Couldn't find pixmap file: %s" msgstr "找不到 pixmap 檔:%s" -#: ../gtk/main.c:88 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +msgid "Invalid sip contact !" +msgstr "無效的 sip 連絡人!" + +#: ../gtk/main.c:92 msgid "log to stdout some debug information while running." msgstr "執行時將一些除錯資訊記錄到標準輸出。" -#: ../gtk/main.c:95 +#: ../gtk/main.c:99 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:102 +#: ../gtk/main.c:106 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:109 +#: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." msgstr "只在系統匣啟動,不要顯示主要介面。" -#: ../gtk/main.c:116 +#: ../gtk/main.c:120 msgid "address to call right now" msgstr "現在要打電話的位址" -#: ../gtk/main.c:123 +#: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "如啟用此項,將會自動接聽來電" -#: ../gtk/main.c:130 +#: ../gtk/main.c:134 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" "指定一個工作目錄(應該為安裝的根目錄,例如:c:\\Program Files\\Linphone)" -#: ../gtk/main.c:510 +#: ../gtk/main.c:515 #, c-format msgid "Call with %s" msgstr "和 %s 通話" -#: ../gtk/main.c:941 +#: ../gtk/main.c:946 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -124,7 +148,7 @@ msgstr "" "您是否要允許他看見您的上線狀態或將他加入您的連絡人清單?\n" "如果您回答否,這個人會被暫時列入黑名單。" -#: ../gtk/main.c:1018 +#: ../gtk/main.c:1023 #, c-format msgid "" "Please enter your password for username %s\n" @@ -133,61 +157,61 @@ msgstr "" "請輸入您使用者名稱 %s\n" "於網域 %s 的密碼:" -#: ../gtk/main.c:1121 +#: ../gtk/main.c:1126 #, fuzzy msgid "Call error" msgstr "通話紀錄" -#: ../gtk/main.c:1124 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "通話已結束" -#: ../gtk/main.c:1127 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "來電" -#: ../gtk/main.c:1129 ../gtk/incall_view.c:498 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "接聽" -#: ../gtk/main.c:1131 ../gtk/main.ui.h:7 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "拒接" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy msgid "Call paused" msgstr "通話已放棄" -#: ../gtk/main.c:1137 +#: ../gtk/main.c:1142 #, fuzzy, c-format msgid "by %s" msgstr "連接埠" -#: ../gtk/main.c:1186 +#: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1348 +#: ../gtk/main.c:1353 msgid "Website link" msgstr "網站連結" -#: ../gtk/main.c:1388 +#: ../gtk/main.c:1402 msgid "Linphone - a video internet phone" msgstr "Linphone - 網路視訊電話" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" msgstr "%s (預設值)" -#: ../gtk/main.c:1782 ../coreapi/callbacks.c:806 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "我們被轉接到 %s" -#: ../gtk/main.c:1792 +#: ../gtk/main.c:1806 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -195,61 +219,52 @@ msgstr "" "在這臺電腦中偵測不到音效卡。\n" "您將無法傳送或接收語音電話。" -#: ../gtk/main.c:1896 +#: ../gtk/main.c:1911 msgid "A free SIP video-phone" msgstr "自由的 SIP 視訊電話" -#: ../gtk/friendlist.c:366 +#: ../gtk/friendlist.c:469 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:540 +#: ../gtk/friendlist.c:643 msgid "Presence status" msgstr "上線狀態" -#: ../gtk/friendlist.c:557 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名稱" -#: ../gtk/friendlist.c:569 +#: ../gtk/friendlist.c:673 #, fuzzy msgid "Call" msgstr "播打給 %s" -#: ../gtk/friendlist.c:574 +#: ../gtk/friendlist.c:678 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:604 +#: ../gtk/friendlist.c:708 #, c-format msgid "Search in %s directory" msgstr "在 %s 目錄中搜尋" -#: ../gtk/friendlist.c:762 -msgid "Invalid sip contact !" -msgstr "無效的 sip 連絡人!" - -#: ../gtk/friendlist.c:807 -#, c-format -msgid "Call %s" -msgstr "播打給 %s" - -#: ../gtk/friendlist.c:808 -#, c-format -msgid "Send text to %s" -msgstr "傳送文字給 %s" - -#: ../gtk/friendlist.c:809 +#: ../gtk/friendlist.c:924 #, c-format msgid "Edit contact '%s'" msgstr "編輯連絡人「%s」" -#: ../gtk/friendlist.c:810 +#: ../gtk/friendlist.c:925 #, c-format msgid "Delete contact '%s'" msgstr "刪除連絡人「%s」" -#: ../gtk/friendlist.c:852 +#: ../gtk/friendlist.c:926 +#, fuzzy, c-format +msgid "Delete chat history of '%s'" +msgstr "刪除連絡人「%s」" + +#: ../gtk/friendlist.c:977 #, c-format msgid "Add new contact from %s directory" msgstr "從 %s 目錄加入新的連絡人" @@ -350,20 +365,24 @@ msgstr "" msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:847 +#: ../gtk/propertybox.c:781 +msgid "Serbian" +msgstr "" + +#: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重新啟動 linphone 才能讓新選擇的語言生效。" -#: ../gtk/propertybox.c:933 +#: ../gtk/propertybox.c:934 msgid "None" msgstr "" -#: ../gtk/propertybox.c:937 +#: ../gtk/propertybox.c:938 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:943 +#: ../gtk/propertybox.c:944 msgid "ZRTP" msgstr "" @@ -614,114 +633,114 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:13 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:477 +#: ../gtk/incall_view.c:476 msgid "Calling..." msgstr "播打..." -#: ../gtk/incall_view.c:480 ../gtk/incall_view.c:690 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:491 +#: ../gtk/incall_view.c:490 msgid "Incoming call" msgstr "來電" -#: ../gtk/incall_view.c:528 +#: ../gtk/incall_view.c:527 msgid "good" msgstr "" -#: ../gtk/incall_view.c:530 +#: ../gtk/incall_view.c:529 msgid "average" msgstr "" -#: ../gtk/incall_view.c:532 +#: ../gtk/incall_view.c:531 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:534 +#: ../gtk/incall_view.c:533 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:535 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:537 ../gtk/incall_view.c:553 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:652 +#: ../gtk/incall_view.c:651 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:658 +#: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:664 +#: ../gtk/incall_view.c:663 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:664 ../gtk/main.ui.h:5 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:685 +#: ../gtk/incall_view.c:684 msgid "In call" msgstr "通話中" -#: ../gtk/incall_view.c:719 +#: ../gtk/incall_view.c:718 msgid "Paused call" msgstr "暫停通話" -#: ../gtk/incall_view.c:732 +#: ../gtk/incall_view.c:731 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:749 +#: ../gtk/incall_view.c:748 msgid "Call ended." msgstr "通話結束。" -#: ../gtk/incall_view.c:779 +#: ../gtk/incall_view.c:778 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:782 +#: ../gtk/incall_view.c:781 #, fuzzy msgid "Transfer done." msgstr "轉接" -#: ../gtk/incall_view.c:785 +#: ../gtk/incall_view.c:784 #, fuzzy msgid "Transfer failed." msgstr "轉接" -#: ../gtk/incall_view.c:829 +#: ../gtk/incall_view.c:828 msgid "Resume" msgstr "繼續" -#: ../gtk/incall_view.c:836 ../gtk/main.ui.h:10 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "暫停" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:901 +#: ../gtk/incall_view.c:900 #, fuzzy msgid "(Paused)" msgstr "暫停" @@ -744,157 +763,153 @@ msgstr "傳送" msgid "End conference" msgstr "" -#: ../gtk/main.ui.h:4 -msgid "label" -msgstr "標籤" - -#: ../gtk/main.ui.h:8 +#: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" msgstr "" -#: ../gtk/main.ui.h:9 +#: ../gtk/main.ui.h:8 msgid "Video" msgstr "" -#: ../gtk/main.ui.h:11 +#: ../gtk/main.ui.h:10 msgid "Mute" msgstr "" -#: ../gtk/main.ui.h:12 +#: ../gtk/main.ui.h:11 msgid "Transfer" msgstr "轉接" -#: ../gtk/main.ui.h:15 +#: ../gtk/main.ui.h:14 msgid "In call" msgstr "通話中" -#: ../gtk/main.ui.h:16 +#: ../gtk/main.ui.h:15 msgid "Duration" msgstr "時間長度" -#: ../gtk/main.ui.h:17 +#: ../gtk/main.ui.h:16 msgid "Call quality rating" msgstr "" -#: ../gtk/main.ui.h:18 +#: ../gtk/main.ui.h:17 msgid "_Options" msgstr "選項(_O)" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:18 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:19 msgid "Enable self-view" msgstr "啟用自拍檢視" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:20 msgid "_Help" msgstr "求助(_H)" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:21 msgid "Show debug window" msgstr "顯示除錯視窗" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:22 msgid "_Homepage" msgstr "官方網頁(_H)" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:23 msgid "Check _Updates" msgstr "檢查更新(_U)" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Account assistant" msgstr "帳號設定助理" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" msgstr "SIP 位址或電話號碼:" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:26 msgid "Initiate a new call" msgstr "打出新電話" -#: ../gtk/main.ui.h:28 +#: ../gtk/main.ui.h:27 msgid "Contacts" msgstr "連絡人" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "加入" -#: ../gtk/main.ui.h:30 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "編輯" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Search" msgstr "搜尋" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contacts from directory" msgstr "從目錄加入連絡人" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Add contact" msgstr "加入聯絡人" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "Recent calls" msgstr "通話中" -#: ../gtk/main.ui.h:35 +#: ../gtk/main.ui.h:34 msgid "My current identity:" msgstr "我目前的使用者識別:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "使用者名稱" -#: ../gtk/main.ui.h:37 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密碼" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Internet connection:" msgstr "網路連線:" -#: ../gtk/main.ui.h:39 +#: ../gtk/main.ui.h:38 msgid "Automatically log me in" msgstr "將我自動登入" -#: ../gtk/main.ui.h:40 +#: ../gtk/main.ui.h:39 msgid "Login information" msgstr "登入資訊" -#: ../gtk/main.ui.h:41 +#: ../gtk/main.ui.h:40 msgid "Welcome !" msgstr "歡迎使用!" -#: ../gtk/main.ui.h:42 +#: ../gtk/main.ui.h:41 msgid "All users" msgstr "所有使用者" -#: ../gtk/main.ui.h:43 +#: ../gtk/main.ui.h:42 msgid "Online users" msgstr "線上使用者" -#: ../gtk/main.ui.h:44 +#: ../gtk/main.ui.h:43 msgid "ADSL" msgstr "ADSL" -#: ../gtk/main.ui.h:45 +#: ../gtk/main.ui.h:44 msgid "Fiber Channel" msgstr "光纖通道" -#: ../gtk/main.ui.h:46 +#: ../gtk/main.ui.h:45 msgid "Default" msgstr "預設值" -#: ../gtk/main.ui.h:47 +#: ../gtk/main.ui.h:46 msgid "Delete" msgstr "" @@ -1505,7 +1520,7 @@ msgstr "" msgid "Outgoing call" msgstr "去電" -#: ../coreapi/linphonecore.c:1314 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "準備就緒" @@ -1559,11 +1574,11 @@ msgstr "已連線。" msgid "Call aborted" msgstr "通話已放棄" -#: ../coreapi/linphonecore.c:3351 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "無法暫停通話" -#: ../coreapi/linphonecore.c:3356 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "暫停目前的通話..." @@ -1662,115 +1677,115 @@ msgstr "" "您輸入的 sip 身分是無效的。\n" "它應該看起來像 sip:使用者名稱@代理網域,像是 sip:alice@example.net" -#: ../coreapi/proxy.c:1068 +#: ../coreapi/proxy.c:1069 #, c-format msgid "Could not login as %s" msgstr "無法以 %s 登入" -#: ../coreapi/callbacks.c:283 +#: ../coreapi/callbacks.c:286 msgid "Remote ringing." msgstr "遠端響鈴。" -#: ../coreapi/callbacks.c:303 +#: ../coreapi/callbacks.c:306 msgid "Remote ringing..." msgstr "遠端響鈴..." -#: ../coreapi/callbacks.c:314 +#: ../coreapi/callbacks.c:317 msgid "Early media." msgstr "早期媒體。" -#: ../coreapi/callbacks.c:365 +#: ../coreapi/callbacks.c:368 #, c-format msgid "Call with %s is paused." msgstr "和 %s 的通話已暫停。" -#: ../coreapi/callbacks.c:378 +#: ../coreapi/callbacks.c:381 #, c-format msgid "Call answered by %s - on hold." msgstr "通話由 %s 接聽 - 保留中。" -#: ../coreapi/callbacks.c:389 +#: ../coreapi/callbacks.c:392 msgid "Call resumed." msgstr "通話已繼續。" -#: ../coreapi/callbacks.c:394 +#: ../coreapi/callbacks.c:397 #, c-format msgid "Call answered by %s." msgstr "通話由 %s 接聽。" -#: ../coreapi/callbacks.c:409 +#: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:457 +#: ../coreapi/callbacks.c:460 #, fuzzy msgid "We have been resumed." msgstr "我們要繼續了..." -#: ../coreapi/callbacks.c:466 +#: ../coreapi/callbacks.c:469 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:472 +#: ../coreapi/callbacks.c:475 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:541 +#: ../coreapi/callbacks.c:544 msgid "Call terminated." msgstr "通話已終止。" -#: ../coreapi/callbacks.c:552 +#: ../coreapi/callbacks.c:555 msgid "User is busy." msgstr "使用者現正忙碌。" -#: ../coreapi/callbacks.c:553 +#: ../coreapi/callbacks.c:556 msgid "User is temporarily unavailable." msgstr "使用者暫時無法聯繫。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:558 msgid "User does not want to be disturbed." msgstr "使用者不想要被打擾。" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:559 msgid "Call declined." msgstr "通話被拒接。" -#: ../coreapi/callbacks.c:568 +#: ../coreapi/callbacks.c:571 msgid "No response." msgstr "沒有回應。" -#: ../coreapi/callbacks.c:572 +#: ../coreapi/callbacks.c:575 msgid "Protocol error." msgstr "通訊協定錯誤。" -#: ../coreapi/callbacks.c:588 +#: ../coreapi/callbacks.c:591 msgid "Redirected" msgstr "已重新導向" -#: ../coreapi/callbacks.c:624 +#: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:630 +#: ../coreapi/callbacks.c:633 msgid "Call failed." msgstr "通話失敗。" -#: ../coreapi/callbacks.c:733 +#: ../coreapi/callbacks.c:737 #, c-format msgid "Registration on %s successful." msgstr "在 %s 註冊成功。" -#: ../coreapi/callbacks.c:734 +#: ../coreapi/callbacks.c:738 #, c-format msgid "Unregistration on %s done." msgstr "在 %s 取消註冊完成。" -#: ../coreapi/callbacks.c:754 +#: ../coreapi/callbacks.c:758 msgid "no response timeout" msgstr "沒有回應逾時" -#: ../coreapi/callbacks.c:757 +#: ../coreapi/callbacks.c:761 #, c-format msgid "Registration on %s failed: %s" msgstr "在 %s 註冊失敗:%s" @@ -1780,12 +1795,15 @@ msgstr "在 %s 註冊失敗:%s" msgid "Authentication token is %s" msgstr "驗證失敗" -#: ../coreapi/linphonecall.c:2314 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您有 %i 通未接來電。" +#~ msgid "label" +#~ msgstr "標籤" + #~ msgid "Keypad" #~ msgstr "撥號盤" From 9f58698136035018a6dbc34a6c449de762f89232 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 9 Apr 2013 14:06:02 +0200 Subject: [PATCH 071/177] improve call quality indicator (takes into account video) add accessors to late and loss rate in LinphoneCallStats. --- coreapi/linphonecall.c | 56 ++++++++++++++++++++++++++++++++++-------- coreapi/linphonecore.c | 1 + coreapi/linphonecore.h | 6 +++-- mediastreamer2 | 2 +- 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 6c01c65bd..ab917920c 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -1857,9 +1857,13 @@ void linphone_call_delete_upnp_session(LinphoneCall *call){ } #endif //BUILD_UPNP -static void linphone_call_log_fill_stats(LinphoneCallLog *log, AudioStream *st){ - audio_stream_get_local_rtp_stats (st,&log->local_stats); - log->quality=audio_stream_get_average_quality_rating(st); +static void linphone_call_log_fill_stats(LinphoneCallLog *log, MediaStream *st){ + float quality=media_stream_get_average_quality_rating(st); + if (quality>=0){ + if (log->quality!=-1){ + log->quality*=quality/5.0; + }else log->quality=quality; + } } void linphone_call_stop_audio_stream(LinphoneCall *call) { @@ -1877,7 +1881,8 @@ void linphone_call_stop_audio_stream(LinphoneCall *call) { lp_config_set_string(call->core->config,"sound","ec_state",state_str); } } - linphone_call_log_fill_stats (call->log,call->audiostream); + audio_stream_get_local_rtp_stats(call->audiostream,&call->log->local_stats); + linphone_call_log_fill_stats (call->log,(MediaStream*)call->audiostream); if (call->endpoint){ linphone_call_remove_from_conf(call); } @@ -1893,6 +1898,7 @@ void linphone_call_stop_video_stream(LinphoneCall *call) { ortp_ev_queue_flush(call->videostream_app_evq); ortp_ev_queue_destroy(call->videostream_app_evq); call->videostream_app_evq=NULL; + linphone_call_log_fill_stats(call->log,(MediaStream*)call->videostream); video_stream_stop(call->videostream); call->videostream=NULL; } @@ -2009,10 +2015,20 @@ float linphone_call_get_record_volume(LinphoneCall *call){ * active audio stream exist. Otherwise it returns the quality rating. **/ float linphone_call_get_current_quality(LinphoneCall *call){ + float audio_rating=-1; + float video_rating=-1; + float result; if (call->audiostream){ - return audio_stream_get_quality_rating(call->audiostream); + audio_rating=media_stream_get_quality_rating((MediaStream*)call->audiostream)/5.0; } - return -1; + if (call->videostream){ + video_rating=media_stream_get_quality_rating((MediaStream*)call->videostream)/5.0; + } + if (audio_rating<0 && video_rating<0) result=-1; + else if (audio_rating<0) result=video_rating*5.0; + else if (video_rating<0) result=audio_rating*5.0; + else result=audio_rating*video_rating*5.0; + return result; } /** @@ -2027,18 +2043,34 @@ float linphone_call_get_average_quality(LinphoneCall *call){ return -1; } +static void update_local_stats(LinphoneCallStats *stats, MediaStream *stream){ + const MSQualityIndicator *qi=media_stream_get_quality_indicator(stream); + if (qi) { + stats->local_late_rate=ms_quality_indicator_get_local_late_rate(qi); + stats->local_loss_rate=ms_quality_indicator_get_local_loss_rate(qi); + } +} + /** * Access last known statistics for audio stream, for a given call. **/ -const LinphoneCallStats *linphone_call_get_audio_stats(const LinphoneCall *call) { - return &call->stats[LINPHONE_CALL_STATS_AUDIO]; +const LinphoneCallStats *linphone_call_get_audio_stats(LinphoneCall *call) { + LinphoneCallStats *stats=&call->stats[LINPHONE_CALL_STATS_AUDIO]; + if (call->audiostream){ + update_local_stats(stats,(MediaStream*)call->audiostream); + } + return stats; } /** * Access last known statistics for video stream, for a given call. **/ -const LinphoneCallStats *linphone_call_get_video_stats(const LinphoneCall *call) { - return &call->stats[LINPHONE_CALL_STATS_VIDEO]; +const LinphoneCallStats *linphone_call_get_video_stats(LinphoneCall *call) { + LinphoneCallStats *stats=&call->stats[LINPHONE_CALL_STATS_VIDEO]; + if (call->videostream){ + update_local_stats(stats,(MediaStream*)call->videostream); + } + return stats; } /** @@ -2242,6 +2274,7 @@ void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapse freemsg(call->stats[LINPHONE_CALL_STATS_VIDEO].received_rtcp); call->stats[LINPHONE_CALL_STATS_VIDEO].received_rtcp = evd->packet; evd->packet = NULL; + update_local_stats(&call->stats[LINPHONE_CALL_STATS_VIDEO],(MediaStream*)call->videostream); if (lc->vtable.call_stats_updated) lc->vtable.call_stats_updated(lc, call, &call->stats[LINPHONE_CALL_STATS_VIDEO]); } else if (evt == ORTP_EVENT_RTCP_PACKET_EMITTED) { @@ -2250,6 +2283,7 @@ void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapse freemsg(call->stats[LINPHONE_CALL_STATS_VIDEO].sent_rtcp); call->stats[LINPHONE_CALL_STATS_VIDEO].sent_rtcp = evd->packet; evd->packet = NULL; + update_local_stats(&call->stats[LINPHONE_CALL_STATS_VIDEO],(MediaStream*)call->videostream); if (lc->vtable.call_stats_updated) lc->vtable.call_stats_updated(lc, call, &call->stats[LINPHONE_CALL_STATS_VIDEO]); } else if ((evt == ORTP_EVENT_ICE_SESSION_PROCESSING_FINISHED) || (evt == ORTP_EVENT_ICE_GATHERING_FINISHED) @@ -2283,6 +2317,7 @@ void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapse freemsg(call->stats[LINPHONE_CALL_STATS_AUDIO].received_rtcp); call->stats[LINPHONE_CALL_STATS_AUDIO].received_rtcp = evd->packet; evd->packet = NULL; + update_local_stats(&call->stats[LINPHONE_CALL_STATS_AUDIO],(MediaStream*)call->audiostream); if (lc->vtable.call_stats_updated) lc->vtable.call_stats_updated(lc, call, &call->stats[LINPHONE_CALL_STATS_AUDIO]); } else if (evt == ORTP_EVENT_RTCP_PACKET_EMITTED) { @@ -2291,6 +2326,7 @@ void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapse freemsg(call->stats[LINPHONE_CALL_STATS_AUDIO].sent_rtcp); call->stats[LINPHONE_CALL_STATS_AUDIO].sent_rtcp = evd->packet; evd->packet = NULL; + update_local_stats(&call->stats[LINPHONE_CALL_STATS_AUDIO],(MediaStream*)call->audiostream); if (lc->vtable.call_stats_updated) lc->vtable.call_stats_updated(lc, call, &call->stats[LINPHONE_CALL_STATS_AUDIO]); } else if ((evt == ORTP_EVENT_ICE_SESSION_PROCESSING_FINISHED) || (evt == ORTP_EVENT_ICE_GATHERING_FINISHED) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 7b4d6a998..f4782908a 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -116,6 +116,7 @@ LinphoneCallLog * linphone_call_log_new(LinphoneCall *call, LinphoneAddress *fro cl->from=from; cl->to=to; cl->status=LinphoneCallAborted; /*default status*/ + cl->quality=-1; return cl; } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index fefd050e7..37001d367 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -343,14 +343,16 @@ struct _LinphoneCallStats { LinphoneUpnpState upnp_state; /**< State of uPnP processing. */ float download_bandwidth; /** Date: Tue, 9 Apr 2013 14:12:21 +0200 Subject: [PATCH 072/177] french translation --- po/fr.po | 244 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 126 insertions(+), 118 deletions(-) diff --git a/po/fr.po b/po/fr.po index d4cb84c52..48e85b46b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,20 +7,22 @@ msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-08 16:59+0200\n" -"PO-Revision-Date: 2013-04-08 16:46+0100\n" -"Last-Translator: Simon Morlat \n" +"PO-Revision-Date: 2013-04-09 13:57+0100\n" +"Last-Translator: Simon Morlat \n" "Language-Team: french \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 +#: ../gtk/friendlist.c:922 #, c-format msgid "Call %s" msgstr "Appeler %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 +#: ../gtk/friendlist.c:923 #, c-format msgid "Send text to %s" msgstr "Chatter avec %s" @@ -60,7 +62,8 @@ msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 +#: ../gtk/calllogs.c:321 +#: ../gtk/calllogs.c:327 #, c-format msgid "%s\t%s" msgstr "" @@ -71,6 +74,8 @@ msgid "" "%s\tQuality: %s\n" "%s\t%s\t" msgstr "" +"%s\tQualité: %s\n" +"%s\t%s\t" #: ../gtk/calllogs.c:329 #, c-format @@ -79,7 +84,8 @@ msgid "" "%s" msgstr "" -#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 +#: ../gtk/main.ui.h:13 msgid "Conference" msgstr "Conférence" @@ -87,12 +93,15 @@ msgstr "Conférence" msgid "Me" msgstr "Moi" -#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 +#: ../gtk/support.c:49 +#: ../gtk/support.c:73 +#: ../gtk/support.c:102 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:324 +#: ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Contact sip invalide !" @@ -102,7 +111,7 @@ msgstr "affiche des informations de debogage" #: ../gtk/main.c:99 msgid "path to a file to write logs into." -msgstr "" +msgstr "chemin vers le fichier de logs." #: ../gtk/main.c:106 msgid "Start linphone with video disabled." @@ -114,19 +123,15 @@ msgstr "Démarre iconifié, sans interface principale." #: ../gtk/main.c:120 msgid "address to call right now" -msgstr "addresse à appeler maintenant" +msgstr "adresse à appeler maintenant" #: ../gtk/main.c:127 msgid "if set automatically answer incoming calls" msgstr "si positionné, répond automatiquement aux appels entrants" #: ../gtk/main.c:134 -msgid "" -"Specifiy a working directory (should be the base of the installation, eg: c:" -"\\Program Files\\Linphone)" -msgstr "" -"Spécifie un répertoire de travail (qui devrait être le répertoire " -"d'installation, par exemple c:\\Program Files\\Linphone)" +msgid "Specifiy a working directory (should be the base of the installation, eg: c:\\Program Files\\Linphone)" +msgstr "Spécifie un répertoire de travail (qui devrait être le répertoire d'installation, par exemple c:\\Program Files\\Linphone)" #: ../gtk/main.c:515 #, c-format @@ -137,15 +142,12 @@ msgstr "Appel avec %s" #, c-format msgid "" "%s would like to add you to his contact list.\n" -"Would you allow him to see your presence status or add him to your contact " -"list ?\n" +"Would you allow him to see your presence status or add him to your contact list ?\n" "If you answer no, this person will be temporarily blacklisted." msgstr "" "%s souhaite vous ajouter à sa liste de contact.\n" -"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter " -"à votre liste également ?\n" -"Si vous répondez non, cette personne sera mise temporairement sur liste " -"noire." +"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter à votre liste également ?\n" +"Si vous répondez non, cette personne sera mise temporairement sur liste noire." #: ../gtk/main.c:1023 #, c-format @@ -160,19 +162,24 @@ msgstr "" msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 +#: ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 +#: ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1134 +#: ../gtk/incall_view.c:497 +#: ../gtk/main.ui.h:5 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1136 +#: ../gtk/main.ui.h:6 msgid "Decline" msgstr "Refuser" @@ -183,12 +190,12 @@ msgstr "Appel en pause" #: ../gtk/main.c:1142 #, c-format msgid "by %s" -msgstr "" +msgstr "b>par %s" #: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" -msgstr "" +msgstr "%s propose de démarrer la vidéo. Acceptez-vous ?" #: ../gtk/main.c:1353 msgid "Website link" @@ -203,7 +210,8 @@ msgstr "Linphone - un téléphone video pour l'internet" msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:1796 +#: ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" @@ -228,7 +236,9 @@ msgstr "Ajouter au carnet d'adresse" msgid "Presence status" msgstr "Info de présence" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 +#: ../gtk/propertybox.c:367 +#: ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nom" @@ -281,11 +291,13 @@ msgstr "Débit min. (kbit/s)" msgid "Parameters" msgstr "Paramètres" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:435 +#: ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Activé" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:437 +#: ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Désactivé" @@ -366,11 +378,8 @@ msgid "Serbian" msgstr "Serbe" #: ../gtk/propertybox.c:848 -msgid "" -"You need to restart linphone for the new language selection to take effect." -msgstr "" -"La nouvelle selection de langue prendra effet au prochain démarrage de " -"linphone." +msgid "You need to restart linphone for the new language selection to take effect." +msgstr "La nouvelle selection de langue prendra effet au prochain démarrage de linphone." #: ../gtk/propertybox.c:934 msgid "None" @@ -390,10 +399,12 @@ msgid "" "A more recent version is availalble from %s.\n" "Would you like to open a browser to download it ?" msgstr "" +"Une version plus récente est disponible sur %s.\n" +"Voulez vous ouvrir le navigateur afin de pouvoir télécharger la dernière version ?" #: ../gtk/update.c:91 msgid "You are running the lastest version." -msgstr "" +msgstr "Vous utilisez la dernière version." #: ../gtk/buddylookup.c:85 msgid "Firstname, Lastname" @@ -450,13 +461,14 @@ msgstr "Entrez votre identifiant linphone.org" msgid "Username:" msgstr "Nom d'utilisateur:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 +#: ../gtk/password.ui.h:4 msgid "Password:" msgstr "Mot de passe:" #: ../gtk/setupwizard.c:114 msgid "Enter your account informations" -msgstr "" +msgstr "Entrez les informations concernant votre compte" #: ../gtk/setupwizard.c:121 msgid "Username*" @@ -499,41 +511,44 @@ msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" +"Erreur, le compte n'est pas validé, l'identifiant est déjà utilisé ou le serveur n'est pas accessible.\n" +"Merci d'essayer à nouveau." #: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." -msgstr "" +msgstr "Merci. Votre compte est maintenant configuré et prêt à être utilisé." #: ../gtk/setupwizard.c:388 msgid "" -"Please validate your account by clicking on the link we just sent you by " -"email.\n" +"Please validate your account by clicking on the link we just sent you by email.\n" "Then come back here and press Next button." msgstr "" +"Merci de valider votre compte en cliquant sur le lien que nous avons envoyé par email.\n" +"Puis appuyez sur suivant." #: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" -msgstr "" +msgstr "Bienvenue dans l'assistant de configuration de compte." #: ../gtk/setupwizard.c:569 msgid "Account setup assistant" -msgstr "" +msgstr "Assistant de configuration de compte." #: ../gtk/setupwizard.c:575 msgid "Configure your account (step 1/1)" -msgstr "Configurez votre compte" +msgstr "Configurez votre compte (étape 1/1)" #: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" -msgstr "" +msgstr "Entrez votre identifiant sip (étape 1/1)" #: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" -msgstr "" +msgstr "Entrez les informations concernant votre compte (étape 1/2)" #: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" -msgstr "" +msgstr "Validation (étape 2/2)" #: ../gtk/setupwizard.c:598 msgid "Error" @@ -541,9 +556,10 @@ msgstr "Erreur" #: ../gtk/setupwizard.c:602 msgid "Terminating" -msgstr "" +msgstr "En cours d’arrêt." -#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 +#: ../gtk/incall_view.c:70 +#: ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Appel #%i" @@ -553,14 +569,15 @@ msgstr "Appel #%i" msgid "Transfer to call #%i with %s" msgstr "Transférer vers l'appel #%i avec %s" -#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 +#: ../gtk/incall_view.c:210 +#: ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Non trouvé" #: ../gtk/incall_view.c:220 msgid "ICE not activated" -msgstr "" +msgstr "ICE non activé" #: ../gtk/incall_view.c:222 #, fuzzy @@ -569,11 +586,11 @@ msgstr "L'appel a échoué." #: ../gtk/incall_view.c:224 msgid "ICE in progress" -msgstr "" +msgstr "Négociation ICE en cours" #: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" -msgstr "" +msgstr "Via un ou plusieurs NATs" #: ../gtk/incall_view.c:228 #, fuzzy @@ -582,36 +599,35 @@ msgstr "Redirection" #: ../gtk/incall_view.c:230 msgid "Through a relay server" -msgstr "" +msgstr "Via un serveur relais" #: ../gtk/incall_view.c:238 msgid "uPnP not activated" msgstr "uPnP non activé" #: ../gtk/incall_view.c:240 -#, fuzzy msgid "uPnP in progress" -msgstr "Découverte STUN en cours" +msgstr "uPnP en cours" #: ../gtk/incall_view.c:242 -#, fuzzy msgid "uPnp not available" -msgstr "indisponible" +msgstr "uPnP est indisponible" #: ../gtk/incall_view.c:244 msgid "uPnP is running" -msgstr "" +msgstr "uPnP en cours d’exécution" #: ../gtk/incall_view.c:246 -#, fuzzy msgid "uPnP failed" -msgstr "L'appel a échoué." +msgstr "uPnP a échoué." -#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 +#: ../gtk/incall_view.c:256 +#: ../gtk/incall_view.c:257 msgid "Direct or through server" -msgstr "" +msgstr "Directe ou via un serveur" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:259 +#: ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" @@ -623,7 +639,8 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:384 +#: ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Raccrocher" @@ -631,7 +648,8 @@ msgstr "Raccrocher" msgid "Calling..." msgstr "Tentative d'appel..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:479 +#: ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" @@ -659,7 +677,8 @@ msgstr "très faible" msgid "too bad" msgstr "nulle" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:536 +#: ../gtk/incall_view.c:552 msgid "unavailable" msgstr "indisponible" @@ -676,7 +695,8 @@ msgstr "Sécurisé par ZRTP- [jeton: %s]" msgid "Set unverified" msgstr "Marquer comme non vérifié" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:663 +#: ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Marquer comme vérifié" @@ -717,7 +737,8 @@ msgstr "Transfert échoué" msgid "Resume" msgstr "Reprendre" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:835 +#: ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" @@ -752,7 +773,7 @@ msgstr "Fin de conférence" #: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" -msgstr "" +msgstr "Enregistrement de l'appel dans un fichier audio." #: ../gtk/main.ui.h:8 msgid "Video" @@ -760,7 +781,7 @@ msgstr "Vidéo" #: ../gtk/main.ui.h:10 msgid "Mute" -msgstr "" +msgstr "Couper le son" #: ../gtk/main.ui.h:11 msgid "Transfer" @@ -808,7 +829,7 @@ msgstr "" #: ../gtk/main.ui.h:24 msgid "Account assistant" -msgstr "" +msgstr "Assistant de compte" #: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" @@ -822,11 +843,13 @@ msgstr "Démarrer un nouvel appel" msgid "Contacts" msgstr "Contacts" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 +#: ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Ajouter" -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 +#: ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editer" @@ -850,17 +873,19 @@ msgstr "Appels récents" msgid "My current identity:" msgstr "Mon identité sip:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 +#: ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Nom d'utilisateur" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 +#: ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Mot de passe" #: ../gtk/main.ui.h:37 msgid "Internet connection:" -msgstr "" +msgstr "Connexion internet:" #: ../gtk/main.ui.h:38 msgid "Automatically log me in" @@ -1041,7 +1066,8 @@ msgstr "Codecs audio" msgid "Video codecs" msgstr "Codecs vidéo" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:7 +#: ../gtk/keypad.ui.h:5 msgid "C" msgstr "" @@ -1091,7 +1117,7 @@ msgstr "" #: ../gtk/parameters.ui.h:19 msgid "DSCP fields" -msgstr "" +msgstr "Champs DSCP" #: ../gtk/parameters.ui.h:20 msgid "Fixed" @@ -1127,14 +1153,12 @@ msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Derrière un pare-feu (utiliser STUN)" #: ../gtk/parameters.ui.h:28 -#, fuzzy msgid "Behind NAT / Firewall (use ICE)" -msgstr "Derrière un pare-feu (utiliser STUN)" +msgstr "Derrière un pare-feu (utiliser ICE)" #: ../gtk/parameters.ui.h:29 -#, fuzzy msgid "Behind NAT / Firewall (use uPnP)" -msgstr "Derrière un pare-feu (utiliser STUN)" +msgstr "Derrière un pare-feu (utiliser uPnP)" #: ../gtk/parameters.ui.h:30 msgid "Stun server:" @@ -1194,9 +1218,7 @@ msgstr "Paramètres multimedia" #: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" -msgstr "" -"Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de " -"compte SIP" +msgstr "Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de compte SIP" #: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" @@ -1238,11 +1260,13 @@ msgstr "Sécurité" msgid "Manage SIP Accounts" msgstr "Gérer mes comptes SIP" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 +#: ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Activer" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 +#: ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Désactiver" @@ -1267,13 +1291,8 @@ msgid "Enable adaptive rate control" msgstr "Activer le control de débit adaptatif." #: ../gtk/parameters.ui.h:64 -msgid "" -"Adaptive rate control is a technique to dynamically guess the available " -"bandwidth during a call." -msgstr "" -"Le control de débit adaptatif est une technique pour adapter la qualité " -"de l'audio et de la video en fonction de la bande passante disponible, " -"durant l'appel." +msgid "Adaptive rate control is a technique to dynamically guess the available bandwidth during a call." +msgstr "Le control de débit adaptatif est une technique pour adapter la qualité de l'audio et de la video en fonction de la bande passante disponible, durant l'appel." #: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" @@ -1324,9 +1343,8 @@ msgid "Please wait" msgstr "En attente" #: ../gtk/dscp_settings.ui.h:1 -#, fuzzy msgid "Dscp settings" -msgstr "Réglages" +msgstr "Réglages Dscp" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" @@ -1346,10 +1364,9 @@ msgstr "" #: ../gtk/call_statistics.ui.h:1 msgid "Call statistics" -msgstr "" +msgstr "Statistiques de l'appel" #: ../gtk/call_statistics.ui.h:2 -#, fuzzy msgid "Audio codec" msgstr "Codecs audio" @@ -1380,9 +1397,8 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 -#, fuzzy msgid "Call statistics and information" -msgstr "Information sur le contact" +msgstr "Statistiques de l'appel et informations" #: ../gtk/tunnel_config.ui.h:1 #, fuzzy @@ -1509,11 +1525,8 @@ msgid "Could not resolve this number." msgstr "La destination n'a pu être trouvée." #: ../coreapi/linphonecore.c:2231 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Adresse SIP mal formulée. Une address sip ressemble à " +msgid "Could not parse given sip address. A sip url usually looks like sip:user@domain" +msgstr "Adresse SIP mal formulée. Une address sip ressemble à " #: ../coreapi/linphonecore.c:2432 msgid "Contacting" @@ -1626,7 +1639,7 @@ msgstr "Parti" #: ../coreapi/friend.c:57 msgid "Using another messaging service" -msgstr "" +msgstr "Utilisation d'un autre service de messagerie" #: ../coreapi/friend.c:60 msgid "Offline" @@ -1641,12 +1654,8 @@ msgid "Unknown-bug" msgstr "Bug inconnu" #: ../coreapi/proxy.c:204 -msgid "" -"The sip proxy address you entered is invalid, it must start with \"sip:\" " -"followed by a hostname." -msgstr "" -"L'addresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" " -"suivie par un nom de domaine." +msgid "The sip proxy address you entered is invalid, it must start with \"sip:\" followed by a hostname." +msgstr "L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine." #: ../coreapi/proxy.c:210 msgid "" @@ -1654,8 +1663,7 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" "L'identité SIP que vous avez fourni est invalide.\n" -"Elle doit être de la forme sip:username@domain, comme par example sip:" -"alice@example.net" +"Elle doit être de la forme sip:username@domain, comme par example sip:alice@example.net" #: ../coreapi/proxy.c:1069 #, c-format @@ -1801,7 +1809,7 @@ msgstr[1] "Vous avez manqué %i appels" #~ msgid "Enter username, phone number, or full sip address" #~ msgstr "" -#~ "Entrez un nom d'utilisateur, un numéro de téléphone, ou une addresse SIP" +#~ "Entrez un nom d'utilisateur, un numéro de téléphone, ou une adresse SIP" #~ msgid "Lookup:" #~ msgstr "Rechercher:" From 374f170fb2a06ca20fe882e00958adc795201134 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 9 Apr 2013 15:52:30 +0200 Subject: [PATCH 073/177] add jni and java accessors for realtime late and loss rates --- coreapi/linphonecore_jni.cc | 18 ++++++++++++++- .../org/linphone/core/LinphoneCallStats.java | 20 +++++++++++++---- .../org/linphone/core/LinphoneCallImpl.java | 2 ++ .../linphone/core/LinphoneCallStatsImpl.java | 22 +++++++++++++++++++ mediastreamer2 | 2 +- 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 6b6c3f5ce..ddc26f657 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1578,6 +1578,23 @@ extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getJitterBufferSi return (jfloat)((LinphoneCallStats *)stats_ptr)->jitter_stats.jitter_buffer_size_ms; } +extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getLocalLossRate(JNIEnv *env, jobject thiz,jlong stats_ptr) { + const LinphoneCallStats *stats = (LinphoneCallStats *)stats_ptr; + return stats->local_loss_rate; +} + +extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getLocalLateRate(JNIEnv *env, jobject thiz, jlong stats_ptr) { + const LinphoneCallStats *stats = (LinphoneCallStats *)stats_ptr; + return stats->local_late_rate; +} + +extern "C" void Java_org_linphone_core_LinphoneCallStatsImpl_updateStats(JNIEnv *env, jobject thiz, jlong call_ptr, jint mediatype) { + if (mediatype==LINPHONE_CALL_STATS_AUDIO) + linphone_call_get_audio_stats((LinphoneCall*)call_ptr); + else + linphone_call_get_video_stats((LinphoneCall*)call_ptr); +} + /*payloadType*/ extern "C" jstring Java_org_linphone_core_PayloadTypeImpl_toString(JNIEnv* env,jobject thiz,jlong ptr) { PayloadType* pt = (PayloadType*)ptr; @@ -1702,7 +1719,6 @@ extern "C" jfloat Java_org_linphone_core_LinphoneCallImpl_getAverageQuality( JNI return (jfloat)linphone_call_get_average_quality((LinphoneCall*)ptr); } - //LinphoneFriend extern "C" jlong Java_org_linphone_core_LinphoneFriendImpl_newLinphoneFriend(JNIEnv* env ,jobject thiz diff --git a/java/common/org/linphone/core/LinphoneCallStats.java b/java/common/org/linphone/core/LinphoneCallStats.java index f1248c445..295c99484 100644 --- a/java/common/org/linphone/core/LinphoneCallStats.java +++ b/java/common/org/linphone/core/LinphoneCallStats.java @@ -121,25 +121,25 @@ public interface LinphoneCallStats { public float getUploadBandwidth(); /** - * Get the sender loss rate since last report + * Get the local loss rate since last report * @return The sender loss rate */ public float getSenderLossRate(); /** - * Get the receiver loss rate since last report + * Get the remote reported loss rate since last report * @return The receiver loss rate */ public float getReceiverLossRate(); /** - * Get the sender interarrival jitter + * Get the local interarrival jitter * @return The interarrival jitter at last emitted sender report */ public float getSenderInterarrivalJitter(); /** - * Get the receiver interarrival jitter + * Get the remote reported interarrival jitter * @return The interarrival jitter at last received receiver report */ public float getReceiverInterarrivalJitter(); @@ -161,4 +161,16 @@ public interface LinphoneCallStats { * @return The jitter buffer size in milliseconds */ public float getJitterBufferSize(); + + /** + * Get the local loss rate. Unlike getSenderLossRate() that returns this loss rate "since last emitted RTCP report", the value returned here is updated every second. + * @return The local loss rate percentage. + **/ + public float getLocalLossRate(); + + /** + * Get the local late packets rate. The value returned here is updated every second. + * @return The local late rate percentage. + **/ + public float getLocalLateRate(); } diff --git a/java/impl/org/linphone/core/LinphoneCallImpl.java b/java/impl/org/linphone/core/LinphoneCallImpl.java index 30bcd528f..041acaef2 100644 --- a/java/impl/org/linphone/core/LinphoneCallImpl.java +++ b/java/impl/org/linphone/core/LinphoneCallImpl.java @@ -68,9 +68,11 @@ class LinphoneCallImpl implements LinphoneCall { videoStats = stats; } public LinphoneCallStats getAudioStats() { + if (audioStats!=null) ((LinphoneCallStatsImpl)audioStats).updateRealTimeStats(this); return audioStats; } public LinphoneCallStats getVideoStats() { + if (videoStats!=null) ((LinphoneCallStatsImpl)videoStats).updateRealTimeStats(this); return videoStats; } public CallDirection getDirection() { diff --git a/java/impl/org/linphone/core/LinphoneCallStatsImpl.java b/java/impl/org/linphone/core/LinphoneCallStatsImpl.java index 53fcb5ffd..4657ba01a 100644 --- a/java/impl/org/linphone/core/LinphoneCallStatsImpl.java +++ b/java/impl/org/linphone/core/LinphoneCallStatsImpl.java @@ -31,6 +31,9 @@ class LinphoneCallStatsImpl implements LinphoneCallStats { private float roundTripDelay; private long latePacketsCumulativeNumber; private float jitterBufferSize; + private float localLossRate; + private float localLateRate; + private long nativePtr; private native int getMediaType(long nativeStatsPtr); private native int getIceState(long nativeStatsPtr); @@ -43,8 +46,12 @@ class LinphoneCallStatsImpl implements LinphoneCallStats { private native float getRoundTripDelay(long nativeStatsPtr); private native long getLatePacketsCumulativeNumber(long nativeStatsPtr, long nativeCallPtr); private native float getJitterBufferSize(long nativeStatsPtr); + private native float getLocalLossRate(long nativeStatsPtr); + private native float getLocalLateRate(long nativeStatsPtr); + private native void updateStats(long nativeCallPtr, int mediaType); protected LinphoneCallStatsImpl(long nativeCallPtr, long nativeStatsPtr) { + nativePtr=nativeStatsPtr; mediaType = getMediaType(nativeStatsPtr); iceState = getIceState(nativeStatsPtr); downloadBandwidth = getDownloadBandwidth(nativeStatsPtr); @@ -56,6 +63,13 @@ class LinphoneCallStatsImpl implements LinphoneCallStats { roundTripDelay = getRoundTripDelay(nativeStatsPtr); latePacketsCumulativeNumber = getLatePacketsCumulativeNumber(nativeStatsPtr, nativeCallPtr); jitterBufferSize = getJitterBufferSize(nativeStatsPtr); + + } + + protected void updateRealTimeStats(LinphoneCall call){ + updateStats( ((LinphoneCallImpl)call).nativePtr, mediaType); + localLossRate=getLocalLossRate(nativePtr); + localLateRate=getLocalLateRate(nativePtr); } public MediaType getMediaType() { @@ -101,4 +115,12 @@ class LinphoneCallStatsImpl implements LinphoneCallStats { public float getJitterBufferSize() { return jitterBufferSize; } + + public float getLocalLossRate(){ + return localLossRate; + } + + public float getLocalLateRate(){ + return localLateRate; + } } diff --git a/mediastreamer2 b/mediastreamer2 index abf2a7ec4..4f93003c1 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit abf2a7ec461ac411703233e3554e985d62fa0b9c +Subproject commit 4f93003c1eade1442fdedd8dee10f18c98ec47c3 From f8728ffca088b8dc292ae5071d0f772b118acc16 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 9 Apr 2013 17:56:49 +0200 Subject: [PATCH 074/177] Update oRTP submodule. --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 35f5efbfb..9f51aa254 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 35f5efbfbf7814bd0403249431a6b94d6c4286b4 +Subproject commit 9f51aa254fc5c24834614612036485406a8d06a7 From f0136172b063c81e399dea3c2b325d66e7b3fab3 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 9 Apr 2013 18:07:53 +0200 Subject: [PATCH 075/177] Change API to set log handler and log level. - Deprecate linphone_core_enable_logs(), linphone_core_enable_logs_with_cb() and linphone_core_disable_logs() functions. - Introduce linphone_core_set_log_handler(), linphone_core_set_log_file() and linphone_core_set_log_level() functions. --- coreapi/linphonecore.c | 32 +++++++++++++++++++++++++++++--- coreapi/linphonecore.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index f4782908a..5f70f45e1 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -407,10 +407,29 @@ const LinphoneAddress *linphone_core_get_current_call_remote_address(struct _Lin return linphone_call_get_remote_address(call); } +void linphone_core_set_log_handler(OrtpLogFunc logfunc) { + ortp_set_log_handler(logfunc); +} + +void linphone_core_set_log_file(FILE *file) { + if (file == NULL) file = stdout; + ortp_set_log_file(file); +} + +void linphone_core_set_log_level(OrtpLogLevel loglevel) { + ortp_set_log_level_mask(loglevel); + if (loglevel == 0) { + sal_disable_logs(); + } else { + sal_enable_logs(); + } +} + /** * Enable logs in supplied FILE*. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_file and #linphone_core_set_log_level instead. * * @param file a C FILE* where to fprintf logs. If null stdout is used. * @@ -425,6 +444,7 @@ void linphone_core_enable_logs(FILE *file){ * Enable logs through the user's supplied log callback. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_handler and #linphone_core_set_log_level instead. * * @param logfunc The address of a OrtpLogFunc callback whose protoype is * typedef void (*OrtpLogFunc)(OrtpLogLevel lev, const char *fmt, va_list args); @@ -439,6 +459,7 @@ void linphone_core_enable_logs_with_cb(OrtpLogFunc logfunc){ * Entirely disable logging. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_level instead. **/ void linphone_core_disable_logs(){ ortp_set_log_level_mask(ORTP_ERROR|ORTP_FATAL); @@ -1197,6 +1218,7 @@ static void misc_config_read (LinphoneCore *lc) { LpConfig *config=lc->config; lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); + linphone_core_set_log_level((OrtpLogLevel)lp_config_get_int(config,"misc","log_level",0)); } @@ -2152,9 +2174,13 @@ void linphone_core_iterate(LinphoneCore *lc){ lc->initial_subscribes_sent=TRUE; } - if (one_second_elapsed && lp_config_needs_commit(lc->config)){ - lp_config_sync(lc->config); - } + if (one_second_elapsed) { + if (ortp_get_log_level_mask() != lp_config_get_int(lc->config, "misc", "log_level", 0)) { + lp_config_set_int(lc->config, "misc", "log_level", ortp_get_log_level_mask()); + } + if (lp_config_needs_commit(lc->config)) { + lp_config_sync(lc->config); + } } /** diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 37001d367..f8e1dcb88 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -874,6 +874,35 @@ typedef void * (*LinphoneWaitingCallback)(struct _LinphoneCore *lc, void *contex /* THE main API */ +/** + * Define a log handler. + * + * @ingroup misc + * + * @param logfunc The function pointer of the log handler. + */ +void linphone_core_set_log_handler(OrtpLogFunc logfunc); +/** + * Define a log file. + * + * @ingroup misc + * + * If the file pointer passed as an argument is NULL, stdout is used instead. + * + * @param file A pointer to the FILE structure of the file to write to. + */ +void linphone_core_set_log_file(FILE *file); +/** + * Define the log level. + * + * @ingroup misc + * + * The loglevel parameter is a bitmask parameter. Therefore to enable only warning and error + * messages, use ORTP_WARNING | ORTP_ERROR. To disable logs, simply set loglevel to 0. + * + * @param loglevel A bitmask of the log levels to set. + */ +void linphone_core_set_log_level(OrtpLogLevel loglevel); void linphone_core_enable_logs(FILE *file); void linphone_core_enable_logs_with_cb(OrtpLogFunc logfunc); void linphone_core_disable_logs(void); From c764afab71ddc1a69fb9f8a9901f40575e771bc1 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 9 Apr 2013 18:25:12 +0200 Subject: [PATCH 076/177] Fix compilation (missing }). --- coreapi/linphonecore.c | 1 + 1 file changed, 1 insertion(+) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 5f70f45e1..cb1808836 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2181,6 +2181,7 @@ void linphone_core_iterate(LinphoneCore *lc){ if (lp_config_needs_commit(lc->config)) { lp_config_sync(lc->config); } + } } /** From f497147309295e92054e1cc9f500ef833e811d5c Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 10 Apr 2013 09:20:13 +0200 Subject: [PATCH 077/177] Fix compilation. --- coreapi/linphonecore.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index cb1808836..e1d88b292 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -418,11 +418,6 @@ void linphone_core_set_log_file(FILE *file) { void linphone_core_set_log_level(OrtpLogLevel loglevel) { ortp_set_log_level_mask(loglevel); - if (loglevel == 0) { - sal_disable_logs(); - } else { - sal_enable_logs(); - } } /** From 043f9122fdc37c0c544357735429f4c114241dec Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 10 Apr 2013 14:05:20 +0200 Subject: [PATCH 078/177] Use static lib for xml2lpc and lpc2xml --- build/android/common.mk | 5 +++++ build/android/lpc2xml.mk | 8 ++++---- build/android/xml2lpc.mk | 8 ++++---- java/impl/org/linphone/tools/Lpc2Xml.java | 2 +- java/impl/org/linphone/tools/Xml2Lpc.java | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/build/android/common.mk b/build/android/common.mk index 543a9dc19..584649735 100644 --- a/build/android/common.mk +++ b/build/android/common.mk @@ -95,6 +95,11 @@ LOCAL_STATIC_LIBRARIES := \ libeXosip2 \ libosip2 \ libgsm +ifeq ($(BUILD_REMOTE_PROVISIONING),1) +LOCAL_STATIC_LIBRARIES += \ + libxml2lpc \ + liblpc2xml +endif ifeq ($(BUILD_TUNNEL),1) LOCAL_CFLAGS +=-DTUNNEL_ENABLED diff --git a/build/android/lpc2xml.mk b/build/android/lpc2xml.mk index b5757ad99..91038adce 100644 --- a/build/android/lpc2xml.mk +++ b/build/android/lpc2xml.mk @@ -39,10 +39,10 @@ LOCAL_C_INCLUDES = \ $(LOCAL_PATH)/../../externals/build/libxml2 \ LOCAL_SHARED_LIBRARIES = \ - libxml2 \ - liblinphonenoneon \ - liblinphone \ + libxml2 +# liblinphonenoneon \ +# liblinphone \ LOCAL_MODULE := liblpc2xml -include $(BUILD_SHARED_LIBRARY) +include $(BUILD_STATIC_LIBRARY) diff --git a/build/android/xml2lpc.mk b/build/android/xml2lpc.mk index 449251cc8..e89ab383b 100644 --- a/build/android/xml2lpc.mk +++ b/build/android/xml2lpc.mk @@ -39,10 +39,10 @@ LOCAL_C_INCLUDES = \ $(LOCAL_PATH)/../../externals/build/libxml2 \ LOCAL_SHARED_LIBRARIES = \ - libxml2 \ - liblinphonenoneon \ - liblinphone \ + libxml2 +# liblinphonenoneon \ +# liblinphone \ LOCAL_MODULE := libxml2lpc -include $(BUILD_SHARED_LIBRARY) +include $(BUILD_STATIC_LIBRARY) diff --git a/java/impl/org/linphone/tools/Lpc2Xml.java b/java/impl/org/linphone/tools/Lpc2Xml.java index 97ef99637..2f3d90751 100644 --- a/java/impl/org/linphone/tools/Lpc2Xml.java +++ b/java/impl/org/linphone/tools/Lpc2Xml.java @@ -59,7 +59,7 @@ public class Lpc2Xml { static { try { System.loadLibrary("xml2"); - System.loadLibrary("lpc2xml"); + //System.loadLibrary("lpc2xml"); mAvailable = true; } catch (Throwable e) { mAvailable = false; diff --git a/java/impl/org/linphone/tools/Xml2Lpc.java b/java/impl/org/linphone/tools/Xml2Lpc.java index 9f6cb0f27..5e0a81880 100644 --- a/java/impl/org/linphone/tools/Xml2Lpc.java +++ b/java/impl/org/linphone/tools/Xml2Lpc.java @@ -63,7 +63,7 @@ public class Xml2Lpc { static { try { System.loadLibrary("xml2"); - System.loadLibrary("xml2lpc"); + //System.loadLibrary("xml2lpc"); mAvailable = true; } catch (Throwable e) { mAvailable = false; From 0fa5d7c73b672772a8841c65ff0c7fcdc4e1fce7 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 11 Apr 2013 14:24:06 +0200 Subject: [PATCH 079/177] fix bug when choosing SDP connection address restore logs --- coreapi/linphonecall.c | 4 ++-- coreapi/linphonecore.c | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index ab917920c..db3190bbb 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -469,7 +469,7 @@ LinphoneCall * linphone_call_new_outgoing(struct _LinphoneCore *lc, LinphoneAddr call->op=sal_op_new(lc->sal); sal_op_set_user_pointer(call->op,call); call->core=lc; - linphone_core_get_local_ip(lc,linphone_address_get_domain(to),call->localip); + linphone_core_get_local_ip(lc,NULL,call->localip); linphone_call_init_common(call,from,to); _linphone_call_params_copy(&call->params,params); sal_op_set_custom_header(call->op,call->params.custom_headers); @@ -528,7 +528,7 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro } linphone_address_clean(from); - linphone_core_get_local_ip(lc,linphone_address_get_domain(from),call->localip); + linphone_core_get_local_ip(lc,NULL,call->localip); linphone_call_init_common(call, from, to); call->log->call_id=ms_strdup(sal_op_get_call_id(op)); /*must be known at that time*/ linphone_core_init_default_params(lc, &call->params); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index e1d88b292..729df1fc6 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1211,9 +1211,8 @@ void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const } static void misc_config_read (LinphoneCore *lc) { LpConfig *config=lc->config; - lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); - lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); - linphone_core_set_log_level((OrtpLogLevel)lp_config_get_int(config,"misc","log_level",0)); + lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); + lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); } @@ -2170,9 +2169,6 @@ void linphone_core_iterate(LinphoneCore *lc){ } if (one_second_elapsed) { - if (ortp_get_log_level_mask() != lp_config_get_int(lc->config, "misc", "log_level", 0)) { - lp_config_set_int(lc->config, "misc", "log_level", ortp_get_log_level_mask()); - } if (lp_config_needs_commit(lc->config)) { lp_config_sync(lc->config); } From a3e275c1262d042df636bd1d54a5d24aaac3e3d2 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 11 Apr 2013 14:34:04 +0200 Subject: [PATCH 080/177] Added GetTime method to LinphoneChatMessage java impl --- coreapi/linphonecore_jni.cc | 6 ++++++ java/common/org/linphone/core/LinphoneChatMessage.java | 6 ++++++ java/impl/org/linphone/core/LinphoneChatMessageImpl.java | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index ddc26f657..5046d83bb 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1871,6 +1871,12 @@ extern "C" jlong Java_org_linphone_core_LinphoneChatMessageImpl_getPeerAddress(J return (jlong) linphone_chat_message_get_peer_address((LinphoneChatMessage*)ptr); } +extern "C" jlong Java_org_linphone_core_LinphoneChatMessageImpl_getTime(JNIEnv* env + ,jobject thiz + ,jlong ptr) { + return (jlong) linphone_chat_message_get_time((LinphoneChatMessage*)ptr); +} + extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_sendMessage(JNIEnv* env ,jobject thiz ,jlong ptr diff --git a/java/common/org/linphone/core/LinphoneChatMessage.java b/java/common/org/linphone/core/LinphoneChatMessage.java index 3a2a45718..b6b6c30ec 100644 --- a/java/common/org/linphone/core/LinphoneChatMessage.java +++ b/java/common/org/linphone/core/LinphoneChatMessage.java @@ -106,4 +106,10 @@ public interface LinphoneChatMessage { * @return the value of the header, or null if not found. */ String getCustomHeader(String name); + + /** + * Gets the time at which the message was sent + * @return the time in milliseconds + */ + long getTime(); } diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 1373708ca..2a256f2f5 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -8,6 +8,7 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { private native String getExternalBodyUrl(long ptr); private native void setExternalBodyUrl(long ptr, String url); private native long getFrom(long ptr); + private native long getTime(long ptr); protected LinphoneChatMessageImpl(long aNativePtr) { nativePtr = aNativePtr; @@ -64,4 +65,8 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { public String getCustomHeader(String name) { return getCustomHeader(nativePtr,name); } + + public long getTime() { + return getTime(nativePtr); + } } From 8563691595111d6c26be1346f0290af971986aed Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 11 Apr 2013 15:39:25 +0200 Subject: [PATCH 081/177] Add the linphone_core_new_with_config() function to instantiate a LinphoneCore given an already existing LpConfig. This enables the creation of the LpConfig before creating the LinphoneCore. It is useful on some systems to read some configuration parameters and perform some customization before creating the LinphoneCore. The LpConfig can now also be created given a factory config filename using the new lp_config_new_with_factory() function. --- coreapi/linphonecore.c | 20 +++++++++++--------- coreapi/linphonecore.h | 14 ++++++++++++++ coreapi/lpconfig.c | 19 +++++++++++++------ coreapi/lpconfig.h | 22 ++++++++++++++++++++++ 4 files changed, 60 insertions(+), 15 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 729df1fc6..edf11a407 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1218,11 +1218,11 @@ static void misc_config_read (LinphoneCore *lc) { -static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, const char *config_path, - const char *factory_config_path, void * userdata) +static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, LpConfig *config, void * userdata) { ms_message("Initializing LinphoneCore %s", linphone_core_get_version()); memset (lc, 0, sizeof (LinphoneCore)); + lc->config=config; lc->data=userdata; lc->ringstream_autorelease=TRUE; @@ -1299,10 +1299,6 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta lc->msevq=ms_event_queue_new(); ms_set_global_event_queue(lc->msevq); - lc->config=lp_config_new(config_path); - if (factory_config_path) - lp_config_read_file(lc->config,factory_config_path); - lc->sal=sal_init(); sal_set_user_pointer(lc->sal,lc); sal_set_callbacks(lc->sal,&linphone_sal_callbacks); @@ -1348,13 +1344,19 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta * It is OPTIONAL, use NULL if unneeded. * @param userdata an opaque user pointer that can be retrieved at any time (for example in * callbacks) using linphone_core_get_user_data(). - * + * @see linphone_core_new_with_config **/ LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable, const char *config_path, const char *factory_config_path, void * userdata) { - LinphoneCore *core=ms_new(LinphoneCore,1); - linphone_core_init(core,vtable,config_path, factory_config_path, userdata); + LpConfig *config = lp_config_new_with_factory(config_path, factory_config_path); + return linphone_core_new_with_config(vtable, config, userdata); +} + +LinphoneCore *linphone_core_new_with_config(const LinphoneCoreVTable *vtable, struct _LpConfig *config, void *userdata) +{ + LinphoneCore *core = ms_new(LinphoneCore, 1); + linphone_core_init(core, vtable, config, userdata); return core; } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index f8e1dcb88..5ae73cc4d 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -913,6 +913,20 @@ const char *linphone_core_get_user_agent_version(void); LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable, const char *config_path, const char *factory_config, void* userdata); +/** + * Instantiates a LinphoneCore object with a given LpConfig. + * @ingroup initializing + * + * The LinphoneCore object is the primary handle for doing all phone actions. + * It should be unique within your application. + * @param vtable a LinphoneCoreVTable structure holding your application callbacks + * @param config a pointer to an LpConfig object holding the configuration of the LinphoneCore to be instantiated. + * @param userdata an opaque user pointer that can be retrieved at any time (for example in + * callbacks) using linphone_core_get_user_data(). + * @see linphone_core_new +**/ +LinphoneCore *linphone_core_new_with_config(const LinphoneCoreVTable *vtable, struct _LpConfig *config, void *userdata); + /* function to be periodically called in a main loop */ /* For ICE to work properly it should be called every 20ms */ void linphone_core_iterate(LinphoneCore *lc); diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index dd3de63db..ca65fd1ff 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -211,19 +211,23 @@ void lp_config_parse(LpConfig *lpconfig, FILE *file){ } LpConfig * lp_config_new(const char *filename){ + return lp_config_new_with_factory(filename, NULL); +} + +LpConfig *lp_config_new_with_factory(const char *config_filename, const char *factory_config_filename) { LpConfig *lpconfig=lp_new0(LpConfig,1); - if (filename!=NULL){ - ms_message("Using (r/w) config information from %s", filename); - lpconfig->filename=ortp_strdup(filename); - lpconfig->file=fopen(filename,"r+"); + if (config_filename!=NULL){ + ms_message("Using (r/w) config information from %s", config_filename); + lpconfig->filename=ortp_strdup(config_filename); + lpconfig->file=fopen(config_filename,"r+"); if (lpconfig->file!=NULL){ struct stat fileStat; lp_config_parse(lpconfig,lpconfig->file); fclose(lpconfig->file); #if !defined(_WIN32_WCE) - if ((stat(filename,&fileStat) == 0) && (S_ISREG(fileStat.st_mode))) { + if ((stat(config_filename,&fileStat) == 0) && (S_ISREG(fileStat.st_mode))) { /* make existing configuration files non-group/world-accessible */ - if (chmod(filename, S_IRUSR | S_IWUSR) == -1) { + if (chmod(config_filename, S_IRUSR | S_IWUSR) == -1) { ms_warning("unable to correct permissions on " "configuration file: %s", strerror(errno)); } @@ -233,6 +237,9 @@ LpConfig * lp_config_new(const char *filename){ lpconfig->modified=0; } } + if (factory_config_filename != NULL) { + lp_config_read_file(lpconfig, factory_config_filename); + } return lpconfig; } diff --git a/coreapi/lpconfig.h b/coreapi/lpconfig.h index 310baaff3..43f761adb 100644 --- a/coreapi/lpconfig.h +++ b/coreapi/lpconfig.h @@ -65,7 +65,29 @@ extern "C" { (config) ? (lp_config_get_float(config, "default_values", name, default)) : (default) +/** + * Instantiates a LpConfig object from a user config file. + * + * @ingroup misc + * @param filename the filename of the config file to read to fill the instantiated LpConfig + * @see lp_config_new_with_factory + */ LpConfig * lp_config_new(const char *filename); + +/** + * Instantiates a LpConfig object from a user config file and a factory config file. + * + * @ingroup misc + * @param config_filename the filename of the user config file to read to fill the instantiated LpConfig + * @param factory_config_filename the filename of the factory config file to read to fill the instantiated LpConfig + * @see lp_config_new + * + * The user config file is read first to fill the LpConfig and then the factory config file is read. + * Therefore the configuration parameters defined in the user config file will be overwritten by the parameters + * defined in the factory config file. + */ +LpConfig * lp_config_new_with_factory(const char *config_filename, const char *factory_config_filename); + int lp_config_read_file(LpConfig *lpconfig, const char *filename); /** * Retrieves a configuration item as a string, given its section, key, and default value. From 6a9dafbb64cdea8a239ccafa9430bc9a3cd90cf3 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 11 Apr 2013 16:36:40 +0200 Subject: [PATCH 082/177] try to fix date issues --- coreapi/sal_eXosip2.c | 2 +- coreapi/sal_eXosip2_presence.c | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index b86fc26e0..1bbbe36e6 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1798,7 +1798,7 @@ static void text_received(Sal *sal, eXosip_event_t *ev){ for(j=0;j<12;j++) { if(strcmp(tmp2,months[j])==0) ret.tm_mon=j; } - ret.tm_isdst=-1; + ret.tm_isdst=0; }else ms_warning("No date header in SIP MESSAGE, we don't know when it was sent."); content_type= osip_message_get_content_type(ev->request); diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index ffa7ed920..1b64fe429 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -81,23 +81,28 @@ void sal_remove_in_subscribe(Sal *sal, SalOp *op){ sal->in_subscribes=ms_list_remove(sal->in_subscribes,op); } -#ifdef WIN32 +static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; +static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; -static inline char *my_ctime_r(const time_t *t, char *buf){ - strcpy(buf,ctime(t)); - return buf; +static void msg_add_current_date(osip_message_t *msg){ + char tmp[64]={0}; + time_t curtime=time(NULL); + struct tm *ret; +#ifndef WIN32 + struct tm gmt; + ret=gmtime_r(&curtime,&gmt); +#else + ret=gmtime(&curtime); +#endif + /*cannot use strftime because it is locale dependant*/ + snprintf(tmp,sizeof(tmp)-1,"%s, %i %s %i %02i:%02i:%02i GMT", + days[ret->tm_wday],ret->tm_mday,months[ret->tm_mon],1900+ret->tm_year,ret->tm_hour,ret->tm_min,ret->tm_sec); + osip_message_replace_header(msg,"Date",tmp); } -#else -#define my_ctime_r ctime_r -#endif int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg){ osip_message_t *sip=NULL; - char t[26]; - time_t curtime=time(NULL); - - my_ctime_r(&curtime,t); if(op->cid == -1) { @@ -113,7 +118,7 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co sal_op_get_from(op),sal_op_get_route(op)); if (sip!=NULL){ sal_exosip_add_custom_headers(sip,op->base.custom_headers); - osip_message_set_date(sip,t); + msg_add_current_date(sip); osip_message_set_content_type(sip,content_type); if (msg) osip_message_set_body(sip,msg,strlen(msg)); sal_add_other(op->base.root,op,sip); @@ -136,7 +141,7 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co return -1; } sal_exosip_add_custom_headers(sip,op->base.custom_headers); - osip_message_set_date(sip,t); + msg_add_current_date(sip); osip_message_set_content_type(sip,content_type); if (msg) osip_message_set_body(sip,msg,strlen(msg)); eXosip_call_send_request(op->did,sip); From 3bf7dd21dc68302928e90b5c33949e5ea913bec6 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 11 Apr 2013 18:02:53 +0200 Subject: [PATCH 083/177] Fix java impl for LinphoneMessage.GetTime --- java/impl/org/linphone/core/LinphoneChatMessageImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 2a256f2f5..8162f67bf 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -67,6 +67,6 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { } public long getTime() { - return getTime(nativePtr); + return getTime(nativePtr) * 1000; // Need milliseconds, not seconds } } From 5d9d44d5a6fd0969464a48b5a1954d1f8576a418 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 12 Apr 2013 08:58:57 +0200 Subject: [PATCH 084/177] fix various compilation issue --- gtk/logging.c | 1 + oRTP | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/logging.c b/gtk/logging.c index 15bef85e0..26027251f 100644 --- a/gtk/logging.c +++ b/gtk/logging.c @@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include #endif +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" extern gchar *linphone_logfile; diff --git a/oRTP b/oRTP index 9f51aa254..1172caa98 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 9f51aa254fc5c24834614612036485406a8d06a7 +Subproject commit 1172caa98c7fc70d98bf6e508699a9bead5e9592 From 5ddf9069f0c5f487b65ef5b64dbd19a56066b350 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 12 Apr 2013 10:26:57 +0200 Subject: [PATCH 085/177] Set UTC time in received chat messages. --- coreapi/sal_eXosip2.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 1bbbe36e6..75ee46298 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1771,6 +1771,26 @@ static bool_t comes_from_local_if(osip_message_t *msg){ static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; +static int utc_offset() { + time_t ref = 24 * 60 * 60L; + struct tm * timeptr; + int gmtime_hours; + + /* get the local reference time for Jan 2, 1900 00:00 UTC */ + timeptr = localtime(&ref); + gmtime_hours = timeptr->tm_hour; + + /* if the local time is the "day before" the UTC, subtract 24 hours + from the hours to get the UTC offset */ + if (timeptr->tm_mday < 2) gmtime_hours -= 24; + + return gmtime_hours; +} + +time_t mktime_utc(struct tm *timeptr) { + return mktime(timeptr) + utc_offset() * 3600; +} + static void text_received(Sal *sal, eXosip_event_t *ev){ osip_body_t *body=NULL; char *from=NULL,*msg=NULL; @@ -1842,7 +1862,7 @@ static void text_received(Sal *sal, eXosip_event_t *ev){ salmsg.text=msg; salmsg.url=external_body_size>0 ? unquoted_external_body_url : NULL; salmsg.message_id=message_id; - salmsg.time=date!=NULL ? mktime(&ret) : time(NULL); + salmsg.time=date!=NULL ? mktime_utc(&ret) : time(NULL); sal->callbacks.text_received(op,&salmsg); sal_op_release(op); osip_free(from); From 2bab2ebf2bd51fc22dbde282214c1c63e0a3a7bd Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 16 Apr 2013 13:00:34 +0200 Subject: [PATCH 086/177] fix memory leak in gtk fix indentation (had spaces instead of tabs) update ms2 --- gtk/chat.c | 90 +++++++++++++++++++++++++------------------------- mediastreamer2 | 2 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 4fa1c917c..58f1a23ce 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -148,12 +148,13 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gtk_text_buffer_insert_with_tags_by_name(buffer,&iter," : ",-1,"bold",me ? "bg":NULL,NULL); gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); + ms_free(from_message); g_object_set_data(G_OBJECT(w),"from_message",from_str); } - gtk_text_buffer_get_end_iter(buffer,&iter); + gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,linphone_chat_message_get_text(msg),-1,"margin",me ? "bg":NULL,NULL); - gtk_text_buffer_get_end_iter(buffer,&iter); - gtk_text_buffer_insert(buffer,&iter,"\n",-1);; + gtk_text_buffer_get_end_iter(buffer,&iter); + gtk_text_buffer_insert(buffer,&iter,"\n",-1); gtk_text_buffer_get_end_iter(buffer,&iter); t=linphone_chat_message_get_time(msg); switch (linphone_chat_message_get_state (msg)){ @@ -260,9 +261,9 @@ static void on_chat_state_changed(LinphoneChatMessage *msg, LinphoneChatMessageS } void linphone_gtk_send_text(){ - GtkWidget *main_window=linphone_gtk_get_main_window(); + GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); - GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); GtkWidget *entry=linphone_gtk_get_widget(w,"text_entry"); const gchar *entered; LinphoneChatRoom *cr=g_object_get_data(G_OBJECT(w),"cr"); @@ -271,7 +272,7 @@ void linphone_gtk_send_text(){ LinphoneChatMessage *msg; msg=linphone_chat_room_create_message(cr,entered); linphone_chat_room_send_message2(cr,msg,on_chat_state_changed,NULL); - linphone_gtk_push_text(w,linphone_gtk_get_used_identity(), + linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), TRUE,cr,msg,FALSE); gtk_entry_set_text(GTK_ENTRY(entry),""); } @@ -438,58 +439,57 @@ void linphone_gtk_chat_close(GtkWidget *button){ } -void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, - LinphoneChatMessage *msg){ +void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, + LinphoneChatMessage *msg ) { GtkWidget *main_window=linphone_gtk_get_main_window(); - GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); - GtkWidget *w; + GtkWidget *friendlist=linphone_gtk_get_widget ( main_window,"contact_list" ); + GtkWidget *w; gboolean send=TRUE; - GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch"); - char *from=linphone_address_as_string(linphone_chat_message_get_from(msg)); - - w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); - if(w!=NULL){ - char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from"); - if(g_strcmp0(from,from_chatview)==0){ + GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" ); + char *from=linphone_address_as_string ( linphone_chat_message_get_from ( msg ) ); + + w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" ); + if ( w!=NULL ) { + char *from_chatview= ( char * ) g_object_get_data ( G_OBJECT ( friendlist ),"from" ); + if ( g_strcmp0 ( from,from_chatview ) ==0 ) { send=TRUE; } else { - if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ - linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); - } + if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) { + linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) ); + } send=FALSE; - } - } else { + } + } else { send=FALSE; - if(!linphone_gtk_friend_list_is_contact(linphone_chat_message_get_from(msg))){ - linphone_gtk_chat_add_contact(linphone_chat_message_get_from(msg)); - } - w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg)); - g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w); - g_object_set_data(G_OBJECT(friendlist),"from",from); - } - get_display_name(linphone_chat_message_get_from(msg)); - - #ifdef HAVE_GTK_OSXs + if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) { + linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) ); + } + w=linphone_gtk_init_chatroom ( room,linphone_chat_message_get_from ( msg ) ); + g_object_set_data ( G_OBJECT ( friendlist ),"chatview", ( gpointer ) w ); + g_object_set_data ( G_OBJECT ( friendlist ),"from",from ); + } + +#ifdef HAVE_GTK_OSXs /* Notified when a new message is sent */ - linphone_gtk_status_icon_set_blinking(TRUE); - #else - if(!gtk_window_is_active(GTK_WINDOW(main_window))){ - if(!GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"is_notified"))){ - linphone_gtk_notify(NULL,linphone_chat_message_get_text(msg)); - g_object_set_data(G_OBJECT(w),"is_notified",GINT_TO_POINTER(TRUE)); + linphone_gtk_status_icon_set_blinking ( TRUE ); +#else + if ( !gtk_window_is_active ( GTK_WINDOW ( main_window ) ) ) { + if ( !GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT ( w ),"is_notified" ) ) ) { + linphone_gtk_notify ( NULL,linphone_chat_message_get_text ( msg ) ); + g_object_set_data ( G_OBJECT ( w ),"is_notified",GINT_TO_POINTER ( TRUE ) ); } else { - g_object_set_data(G_OBJECT(w),"is_notified",GINT_TO_POINTER(FALSE)); + g_object_set_data ( G_OBJECT ( w ),"is_notified",GINT_TO_POINTER ( FALSE ) ); } } - #endif - if(send){ - if(gtk_notebook_get_current_page(notebook)!=gtk_notebook_page_num(notebook,w)){ +#endif + if ( send ) { + if ( gtk_notebook_get_current_page ( notebook ) !=gtk_notebook_page_num ( notebook,w ) ) { linphone_gtk_show_friends(); } else { - linphone_chat_room_mark_as_read(room); + linphone_chat_room_mark_as_read ( room ); } - linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), - FALSE,room,msg,FALSE); + linphone_gtk_push_text ( w,linphone_chat_message_get_from ( msg ), + FALSE,room,msg,FALSE ); } else { linphone_gtk_show_friends(); } diff --git a/mediastreamer2 b/mediastreamer2 index 4f93003c1..25b0496db 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 4f93003c1eade1442fdedd8dee10f18c98ec47c3 +Subproject commit 25b0496dbc62183f195528481fe44c73e0d201e9 From bf492b4278d1c68b2da55c65da173a33aec32ea1 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 17 Apr 2013 15:49:34 +0200 Subject: [PATCH 087/177] fix publish request, whose request uri must identify the resources for which the event is to be published. --- coreapi/sal_eXosip2.c | 8 ++++---- coreapi/sal_eXosip2.h | 2 ++ coreapi/sal_eXosip2_presence.c | 11 +++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 75ee46298..e577b6422 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -2317,7 +2317,7 @@ static void register_set_contact(osip_message_t *msg, const char *contact){ osip_uri_uparam_add(ct->url,osip_strdup("line"),line); } -static void sal_register_add_route(osip_message_t *msg, const char *proxy){ +void sal_message_add_route(osip_message_t *msg, const char *proxy){ osip_route_t *route; osip_list_special_free(&msg->routes,(void (*)(void*))osip_route_free); @@ -2364,7 +2364,7 @@ int sal_register(SalOp *h, const char *proxy, const char *from, int expires){ h->rid=eXosip_register_build_initial_register(from,domain,NULL,expires,&msg); if (msg){ if (contact) register_set_contact(msg,contact); - sal_register_add_route(msg,proxy); + sal_message_add_route(msg,proxy); sal_add_register(h->base.root,h); }else{ ms_error("Could not build initial register."); @@ -2374,7 +2374,7 @@ int sal_register(SalOp *h, const char *proxy, const char *from, int expires){ }else{ eXosip_lock(); eXosip_register_build_register(h->rid,expires,&msg); - sal_register_add_route(msg,proxy); + sal_message_add_route(msg,proxy); } if (msg){ eXosip_register_send_register(h->rid,msg); @@ -2412,7 +2412,7 @@ int sal_register_refresh(SalOp *op, int expires){ eXosip_register_build_register(op->rid,expires,&msg); if (msg!=NULL){ if (contact) register_set_contact(msg,contact); - sal_register_add_route(msg,sal_op_get_route(op)); + sal_message_add_route(msg,sal_op_get_route(op)); eXosip_register_send_register(op->rid,msg); }else ms_error("Could not build REGISTER refresh message."); eXosip_unlock(); diff --git a/coreapi/sal_eXosip2.h b/coreapi/sal_eXosip2.h index 68a2d05ef..e00dd64d9 100644 --- a/coreapi/sal_eXosip2.h +++ b/coreapi/sal_eXosip2.h @@ -99,4 +99,6 @@ SalCustomHeader * sal_exosip_get_custom_headers(osip_message_t *msg); void _osip_list_set_empty(osip_list_t *l, void (*freefunc)(void*)); +void sal_message_add_route(osip_message_t *msg, const char *proxy); + #endif diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index 1b64fe429..c81910986 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -637,23 +637,26 @@ int sal_publish(SalOp *op, const char *from, const char *to, SalPresenceStatus p osip_message_t *pub; int i; char buf[1024]; + const char *route=sal_op_get_route(op); mk_presence_body (presence_mode, from, buf, sizeof (buf), presence_style); - i = eXosip_build_publish(&pub,from, to, sal_op_get_route(op), "presence", "300", + i = eXosip_build_publish(&pub,to, from, NULL, "presence", "600", presence_style ? "application/xpidf+xml" : "application/pidf+xml", buf); if (i<0){ ms_warning("Failed to build publish request."); return -1; } - + if (route) + sal_message_add_route(pub,route); + eXosip_lock(); i = eXosip_publish(pub, to); /* should update the sip-if-match parameter from sip-etag from last 200ok of PUBLISH */ eXosip_unlock(); if (i<0){ - ms_message("Failed to send publish request."); - return -1; + ms_message("Failed to send publish request."); + return -1; } sal_add_other(sal_op_get_sal(op),op,pub); return 0; From 846d2c57afa43494aa7e533ca8816d40edeff126 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 19 Apr 2013 15:39:40 +0200 Subject: [PATCH 088/177] wrap DSCP API for java --- coreapi/linphonecore_jni.cc | 24 +++++++++++ .../org/linphone/core/LinphoneCore.java | 40 +++++++++++++++++++ .../org/linphone/core/LinphoneCoreImpl.java | 35 ++++++++++++++++ 3 files changed, 99 insertions(+) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 5046d83bb..b721c6892 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2143,6 +2143,14 @@ extern "C" jint Java_org_linphone_core_LinphoneCallImpl_getDuration(JNIEnv* env return (jint)linphone_call_get_duration((LinphoneCall *) ptr); } +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setSipDscp(JNIEnv* env,jobject thiz,jlong ptr, jint dscp){ + linphone_core_set_sip_dscp((LinphoneCore*)ptr,dscp); +} + +extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getSipDscp(JNIEnv* env,jobject thiz,jlong ptr){ + return linphone_core_get_sip_dscp((LinphoneCore*)ptr); +} + extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getSignalingTransportPort(JNIEnv* env,jobject thiz,jlong ptr, jint code) { LCSipTransports tr; linphone_core_get_sip_transports((LinphoneCore *) ptr, &tr); @@ -2447,6 +2455,22 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVideoPortRange(JNIEnv linphone_core_set_video_port_range((LinphoneCore *)lc, min_port, max_port); } +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setAudioDscp(JNIEnv* env,jobject thiz,jlong ptr, jint dscp){ + linphone_core_set_audio_dscp((LinphoneCore*)ptr,dscp); +} + +extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getAudioDscp(JNIEnv* env,jobject thiz,jlong ptr){ + return linphone_core_get_audio_dscp((LinphoneCore*)ptr); +} + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVideoDscp(JNIEnv* env,jobject thiz,jlong ptr, jint dscp){ + linphone_core_set_video_dscp((LinphoneCore*)ptr,dscp); +} + +extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getVideoDscp(JNIEnv* env,jobject thiz,jlong ptr){ + return linphone_core_get_video_dscp((LinphoneCore*)ptr); +} + extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setIncomingTimeout(JNIEnv *env, jobject thiz, jlong lc, jint timeout) { linphone_core_set_inc_timeout((LinphoneCore *)lc, timeout); } diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 144b7dfe2..d76acad9a 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -637,6 +637,20 @@ public interface LinphoneCore { * @return transports used for signaling (TCP, UDP, TLS) */ Transports getSignalingTransportPorts(); + + /** + * Assign a dscp value for the SIP socket. + * DSCP is an IP packet field used to indicate the type of routing service to routers. + * @param dscp + */ + void setSipDscp(int dscp); + + /** + * Get DSCP used for SIP socket. + * @return the DSCP value used for the SIP socket. + */ + int getSipDscp(); + /** * Activates or deactivates the speaker. * @param value @@ -1146,6 +1160,19 @@ public interface LinphoneCore { */ void setAudioPortRange(int minPort, int maxPort); + /** + * Assign a DSCP value to the audio RTP sockets. + * @param dscp the DSCP value. + * DSCP is an IP header field used to indicate a type of service to routers. + */ + void setAudioDscp(int dscp); + + /** + * Return DSCP value used for the audio RTP sockets. + * @return the DSCP value used for the audio RTP sockets. + */ + int getAudioDscp(); + /** * Sets the UDP port used for video streaming. **/ @@ -1156,6 +1183,19 @@ public interface LinphoneCore { */ void setVideoPortRange(int minPort, int maxPort); + /** + * Assign a DSCP value to the video RTP sockets. + * @param dscp the DSCP value. + * DSCP is an IP header field used to indicate a type of service to routers. + */ + void setVideoDscp(int dscp); + + /** + * Return DSCP value used for the video RTP sockets. + * @return the DSCP value used for the video RTP sockets. + */ + int getVideoDscp(); + /** * Set the incoming call timeout in seconds. * If an incoming call isn't answered for this timeout period, it is diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 0b4c984d6..f9a7abf39 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -913,4 +913,39 @@ class LinphoneCoreImpl implements LinphoneCore { public PayloadType findPayloadType(String mime) { return findPayloadType(mime, FIND_PAYLOAD_IGNORE_RATE); } + + private native void setSipDscp(long nativePtr, int dscp); + @Override + public void setSipDscp(int dscp) { + setSipDscp(nativePtr,dscp); + } + + private native int getSipDscp(long nativePtr); + @Override + public int getSipDscp() { + return getSipDscp(nativePtr); + } + private native void setAudioDscp(long nativePtr, int dscp); + @Override + public void setAudioDscp(int dscp) { + setAudioDscp(nativePtr, dscp); + } + + private native int getAudioDscp(long nativePtr); + @Override + public int getAudioDscp() { + return getAudioDscp(nativePtr); + } + + private native void setVideoDscp(long nativePtr, int dscp); + @Override + public void setVideoDscp(int dscp) { + setVideoDscp(nativePtr,dscp); + } + + private native int getVideoDscp(long nativePtr); + @Override + public int getVideoDscp() { + return getVideoDscp(nativePtr); + } } From 58e13184e6afbcbb844a26edda067422c0a3ac32 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 19 Apr 2013 15:43:51 +0200 Subject: [PATCH 089/177] fix crash in gtk chat --- gtk/chat.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 58f1a23ce..b1da70822 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -61,12 +61,17 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch"); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *w=g_object_get_data(G_OBJECT(friendlist),"chatview"); + gchar *from; g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); linphone_gtk_friend_list_update_chat_picture(); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); - g_object_set_data(G_OBJECT(w),"from_message",NULL); + from=g_object_get_data(G_OBJECT(w),"from_message"); + if (from){ + g_object_set_data(G_OBJECT(w),"from_message",NULL); + g_free(from); + } g_object_set_data(G_OBJECT(w),"cr",NULL); g_object_set_data(G_OBJECT(friendlist),"from",NULL); gtk_widget_destroy(w); @@ -128,7 +133,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, GtkTextIter iter,begin; int off; char *from_str=linphone_address_as_string_uri_only(from); - char *from_message=(char *)g_object_get_data(G_OBJECT(w),"from_message"); + gchar *from_message=(gchar *)g_object_get_data(G_OBJECT(w),"from_message"); GList *list=g_object_get_data(G_OBJECT(w),"list"); time_t t; char buf[80]; @@ -148,8 +153,8 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gtk_text_buffer_insert_with_tags_by_name(buffer,&iter," : ",-1,"bold",me ? "bg":NULL,NULL); gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); - ms_free(from_message); - g_object_set_data(G_OBJECT(w),"from_message",from_str); + g_free(from_message); + g_object_set_data(G_OBJECT(w),"from_message",g_strdup(from_str)); } gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,linphone_chat_message_get_text(msg),-1,"margin",me ? "bg":NULL,NULL); @@ -193,6 +198,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gtk_text_buffer_insert(buffer,&iter,"\n",-1); GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); gtk_text_view_scroll_mark_onscreen(text,mark); + ms_free(from_str); } const LinphoneAddress* linphone_gtk_get_used_identity(){ @@ -292,6 +298,7 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon MSList *it; char *from_str; char *with_str; + gchar *tmp; for(it=messages;it!=NULL;it=it->next){ LinphoneChatMessage *msg=(LinphoneChatMessage *)it->data; from_str=linphone_address_as_string_uri_only(linphone_chat_message_get_from(msg)); @@ -301,7 +308,11 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon strcmp(from_str,with_str)==0? FALSE : TRUE, linphone_chat_message_get_chat_room(msg),msg,TRUE); } - g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); + tmp=g_object_get_data(G_OBJECT(chat_view),"from_message"); + if (tmp){ + g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); + g_free(tmp); + } ms_free(from_str); ms_free(with_str); linphone_gtk_free_list(messages); @@ -420,7 +431,7 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view); messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); - g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str); + g_object_set_data(G_OBJECT(chat_view),"from_message",g_strdup(uri_str)); display_history_message(chat_view,messages,uri); } ms_free(from_str); From 8b35826ddd1bdbdd88c61c3b76e6f4b1d3b43a39 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 19 Apr 2013 16:52:40 +0200 Subject: [PATCH 090/177] update ms2 for ringstream bugfix --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 25b0496db..9fa2247c2 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 25b0496dbc62183f195528481fe44c73e0d201e9 +Subproject commit 9fa2247c2446d4b06f4a60b72eee65dc591764da From 600115e4cc0d0bddf0b051684b11c2e336df0fa0 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Sat, 20 Apr 2013 08:59:24 +0200 Subject: [PATCH 091/177] update ms2 (repair build) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 9fa2247c2..2720ab1d1 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 9fa2247c2446d4b06f4a60b72eee65dc591764da +Subproject commit 2720ab1d1568ced6f0bf63e454a35f340d8ace64 From 99e73613bd0bf169f8990a6f889ff4dec7663eed Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Sun, 21 Apr 2013 22:06:07 +0200 Subject: [PATCH 092/177] Add aac-eld paylaod type to linphone core. - add two configurations with their respective fmtp config string --- coreapi/linphonecore.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index edf11a407..e967b5737 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1291,6 +1291,8 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_silk_wb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_silk_swb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_nb,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_wb,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); linphone_core_handle_static_payloads(lc); ms_init(); From 40511edc2c5c5a7c4bd0fc160d3166f7701153b7 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Mon, 22 Apr 2013 11:04:48 +0200 Subject: [PATCH 093/177] Rename aac-eld modes to 22k and 44k --- coreapi/linphonecore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index e967b5737..24515d33d 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1291,8 +1291,8 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_silk_wb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_silk_swb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); - linphone_core_assign_payload_type(lc,&payload_type_aaceld_nb,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); - linphone_core_assign_payload_type(lc,&payload_type_aaceld_wb,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); linphone_core_handle_static_payloads(lc); ms_init(); From 87a6e07ad9eb8ceddd7d451f438d140e92f82e3d Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Mon, 22 Apr 2013 11:11:25 +0200 Subject: [PATCH 094/177] Add oRTP with aac-eld payload changes --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 1172caa98..26ee84a1e 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 1172caa98c7fc70d98bf6e508699a9bead5e9592 +Subproject commit 26ee84a1e3053b7b4426033ddc273cc60bf43902 From 12540ce01c9f024266f6f465c972f72a0c2594bb Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Mon, 22 Apr 2013 11:26:57 +0200 Subject: [PATCH 095/177] Typo in oRTP aac-eld payload type name --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 26ee84a1e..bd64df514 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 26ee84a1e3053b7b4426033ddc273cc60bf43902 +Subproject commit bd64df5148bdfd4a2ff5153927676fc497118279 From 70b92a72d8838872c97f36f8baad63da85472cf6 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 22 Apr 2013 12:57:44 +0200 Subject: [PATCH 096/177] Save DTMFs settings immediately. --- coreapi/linphonecore.c | 20 ++++++++------------ coreapi/private.h | 2 -- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 24515d33d..a17543d22 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -598,9 +598,6 @@ static void sip_config_read(LinphoneCore *lc) int ipv6; int random_port; - tmp=lp_config_get_int(lc->config,"sip","use_info",0); - linphone_core_set_use_info_for_dtmf(lc,tmp); - if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){ sal_use_session_timers(lc->sal,200); } @@ -610,9 +607,6 @@ static void sip_config_read(LinphoneCore *lc) sal_reuse_authorization(lc->sal, lp_config_get_int(lc->config,"sip","reuse_authorization",0)); sal_expire_old_registration_contacts(lc->sal,lp_config_get_int(lc->config,"sip","expire_old_registration_contacts",0)); - tmp=lp_config_get_int(lc->config,"sip","use_rfc2833",1); - linphone_core_set_use_rfc2833_for_dtmf(lc,tmp); - ipv6=lp_config_get_int(lc->config,"sip","use_ipv6",-1); if (ipv6==-1){ ipv6=0; @@ -1725,7 +1719,7 @@ void linphone_core_set_nortp_timeout(LinphoneCore *lc, int nortp_timeout){ **/ bool_t linphone_core_get_use_info_for_dtmf(LinphoneCore *lc) { - return lc->sip_conf.use_info; + return lp_config_get_int(lc->config, "sip", "use_info", 0); } /** @@ -1735,7 +1729,9 @@ bool_t linphone_core_get_use_info_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_info_for_dtmf(LinphoneCore *lc,bool_t use_info) { - lc->sip_conf.use_info=use_info; + if (linphone_core_ready()) { + lp_config_set_int(lc->config, "sip", "use_info", use_info); + } } /** @@ -1745,7 +1741,7 @@ void linphone_core_set_use_info_for_dtmf(LinphoneCore *lc,bool_t use_info) **/ bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc) { - return lc->sip_conf.use_rfc2833; + return lp_config_get_int(lc->config, "sip", "use_rfc2833", 1); } /** @@ -1755,7 +1751,9 @@ bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_rfc2833_for_dtmf(LinphoneCore *lc,bool_t use_rfc2833) { - lc->sip_conf.use_rfc2833=use_rfc2833; + if (linphone_core_ready()) { + lp_config_set_int(lc->config, "sip", "use_rfc2833", use_rfc2833); + } } /** @@ -5128,8 +5126,6 @@ void sip_config_uninit(LinphoneCore *lc) lp_config_set_int(lc->config,"sip","inc_timeout",config->inc_timeout); lp_config_set_int(lc->config,"sip","in_call_timeout",config->in_call_timeout); lp_config_set_int(lc->config,"sip","delayed_timeout",config->delayed_timeout); - lp_config_set_int(lc->config,"sip","use_info",config->use_info); - lp_config_set_int(lc->config,"sip","use_rfc2833",config->use_rfc2833); lp_config_set_int(lc->config,"sip","use_ipv6",config->ipv6_enabled); lp_config_set_int(lc->config,"sip","register_only_when_network_is_up",config->register_only_when_network_is_up); lp_config_set_int(lc->config,"sip","register_only_when_upnp_is_ok",config->register_only_when_upnp_is_ok); diff --git a/coreapi/private.h b/coreapi/private.h index 5e265c616..d80607ca9 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -438,8 +438,6 @@ typedef struct sip_config int delayed_timeout; /*timeout after a delayed call is resumed */ unsigned int keepalive_period; /* interval in ms between keep alive messages sent to the proxy server*/ LCSipTransports transports; - bool_t use_info; - bool_t use_rfc2833; /*force RFC2833 to be sent*/ bool_t guess_hostname; bool_t loopback_only; bool_t ipv6_enabled; From f429ce65eb40117f4ebedaeeff54e13d889f7cc4 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 22 Apr 2013 13:11:27 +0200 Subject: [PATCH 097/177] Oops... Forgot the lc parameter. --- coreapi/linphonecore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index a17543d22..559048c59 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1729,7 +1729,7 @@ bool_t linphone_core_get_use_info_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_info_for_dtmf(LinphoneCore *lc,bool_t use_info) { - if (linphone_core_ready()) { + if (linphone_core_ready(lc)) { lp_config_set_int(lc->config, "sip", "use_info", use_info); } } @@ -1751,7 +1751,7 @@ bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_rfc2833_for_dtmf(LinphoneCore *lc,bool_t use_rfc2833) { - if (linphone_core_ready()) { + if (linphone_core_ready(lc)) { lp_config_set_int(lc->config, "sip", "use_rfc2833", use_rfc2833); } } From 1408227088dcc118f7b07b08a2170bb6266daf98 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 23 Apr 2013 09:17:36 +0200 Subject: [PATCH 098/177] Improve echo canceller calibrator. - Use the void source filter instead of the file player. - Handle the number of channels. --- coreapi/ec-calibrator.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/coreapi/ec-calibrator.c b/coreapi/ec-calibrator.c index e19559fc4..d724669a4 100644 --- a/coreapi/ec-calibrator.c +++ b/coreapi/ec-calibrator.c @@ -29,6 +29,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static void ecc_init_filters(EcCalibrator *ecc){ unsigned int rate; + int channels = 1; + int ecc_channels = 1; MSTickerParams params={0}; params.name="Echo calibrator"; params.prio=MS_TICKER_PRIO_HIGH; @@ -37,9 +39,13 @@ static void ecc_init_filters(EcCalibrator *ecc){ ecc->sndread=ms_snd_card_create_reader(ecc->play_card); ms_filter_call_method(ecc->sndread,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ms_filter_call_method(ecc->sndread,MS_FILTER_GET_SAMPLE_RATE,&rate); + ms_filter_call_method(ecc->sndread,MS_FILTER_SET_NCHANNELS,&ecc_channels); + ms_filter_call_method(ecc->sndread,MS_FILTER_GET_NCHANNELS,&channels); ecc->read_resampler=ms_filter_new(MS_RESAMPLE_ID); ms_filter_call_method(ecc->read_resampler,MS_FILTER_SET_SAMPLE_RATE,&rate); ms_filter_call_method(ecc->read_resampler,MS_FILTER_SET_OUTPUT_SAMPLE_RATE,&ecc->rate); + ms_filter_call_method(ecc->read_resampler,MS_FILTER_SET_NCHANNELS,&ecc_channels); + ms_filter_call_method(ecc->read_resampler,MS_FILTER_SET_OUTPUT_NCHANNELS,&channels); ecc->det=ms_filter_new(MS_TONE_DETECTOR_ID); @@ -50,7 +56,7 @@ static void ecc_init_filters(EcCalibrator *ecc){ ms_filter_link(ecc->read_resampler,0,ecc->det,0); ms_filter_link(ecc->det,0,ecc->rec,0); - ecc->play=ms_filter_new(MS_FILE_PLAYER_ID); + ecc->play=ms_filter_new(MS_VOID_SOURCE_ID); ecc->gen=ms_filter_new(MS_DTMF_GEN_ID); ms_filter_call_method(ecc->gen,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ecc->write_resampler=ms_filter_new(MS_RESAMPLE_ID); @@ -58,8 +64,12 @@ static void ecc_init_filters(EcCalibrator *ecc){ ms_filter_call_method(ecc->sndwrite,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ms_filter_call_method(ecc->sndwrite,MS_FILTER_GET_SAMPLE_RATE,&rate); + ms_filter_call_method(ecc->sndwrite,MS_FILTER_SET_NCHANNELS,&ecc_channels); + ms_filter_call_method(ecc->sndwrite,MS_FILTER_GET_NCHANNELS,&channels); ms_filter_call_method(ecc->write_resampler,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ms_filter_call_method(ecc->write_resampler,MS_FILTER_SET_OUTPUT_SAMPLE_RATE,&rate); + ms_filter_call_method(ecc->write_resampler,MS_FILTER_SET_NCHANNELS,&ecc_channels); + ms_filter_call_method(ecc->write_resampler,MS_FILTER_SET_OUTPUT_NCHANNELS,&channels); ms_filter_link(ecc->play,0,ecc->gen,0); ms_filter_link(ecc->gen,0,ecc->write_resampler,0); From e1830ee3077b47d1557a1292e8c8b80cd01fc403 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 23 Apr 2013 10:45:01 +0200 Subject: [PATCH 099/177] Add callbacks for audio (un)initialization in the echo canceller calibrator. --- coreapi/ec-calibrator.c | 19 +++++++++++++++---- coreapi/linphonecore_jni.cc | 2 ++ coreapi/linphonecore_utils.h | 5 ++++- coreapi/private.h | 2 ++ coreapi/test_ecc.c | 2 +- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/coreapi/ec-calibrator.c b/coreapi/ec-calibrator.c index d724669a4..223fb087d 100644 --- a/coreapi/ec-calibrator.c +++ b/coreapi/ec-calibrator.c @@ -77,10 +77,17 @@ static void ecc_init_filters(EcCalibrator *ecc){ ms_ticker_attach(ecc->ticker,ecc->sndread); ms_ticker_attach(ecc->ticker,ecc->play); - + + if (ecc->audio_init_cb != NULL) { + (*ecc->audio_init_cb)(ecc->cb_data); + } } static void ecc_deinit_filters(EcCalibrator *ecc){ + if (ecc->audio_uninit_cb != NULL) { + (*ecc->audio_uninit_cb)(ecc->cb_data); + } + ms_ticker_detach(ecc->ticker,ecc->sndread); ms_ticker_detach(ecc->ticker,ecc->play); @@ -232,12 +239,15 @@ static void * ecc_thread(void *p){ return NULL; } -EcCalibrator * ec_calibrator_new(MSSndCard *play_card, MSSndCard *capt_card, unsigned int rate, LinphoneEcCalibrationCallback cb, void *cb_data ){ +EcCalibrator * ec_calibrator_new(MSSndCard *play_card, MSSndCard *capt_card, unsigned int rate, LinphoneEcCalibrationCallback cb, + LinphoneEcCalibrationAudioInit audio_init_cb, LinphoneEcCalibrationAudioUninit audio_uninit_cb, void *cb_data){ EcCalibrator *ecc=ms_new0(EcCalibrator,1); ecc->rate=rate; ecc->cb=cb; ecc->cb_data=cb_data; + ecc->audio_init_cb=audio_init_cb; + ecc->audio_uninit_cb=audio_uninit_cb; ecc->capt_card=capt_card; ecc->play_card=play_card; ms_thread_create(&ecc->thread,NULL,ecc_thread,ecc); @@ -253,13 +263,14 @@ void ec_calibrator_destroy(EcCalibrator *ecc){ ms_free(ecc); } -int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibrationCallback cb, void *cb_data){ +int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibrationCallback cb, + LinphoneEcCalibrationAudioInit audio_init_cb, LinphoneEcCalibrationAudioUninit audio_uninit_cb, void *cb_data){ if (lc->ecc!=NULL){ ms_error("Echo calibration is still on going !"); return -1; } unsigned int rate = lp_config_get_int(lc->config,"sound","echo_cancellation_rate",8000); - lc->ecc=ec_calibrator_new(lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard,rate,cb,cb_data); + lc->ecc=ec_calibrator_new(lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard,rate,cb,audio_init_cb,audio_uninit_cb,cb_data); return 0; } diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index b721c6892..02ac62c7a 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -996,6 +996,8 @@ extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_startEchoCalibration(JNI ,jobject data) { return (jint)linphone_core_start_echo_calibration((LinphoneCore*)lc , LinphoneCoreData::ecCalibrationStatus + , NULL + , NULL , data?env->NewGlobalRef(data):NULL); } diff --git a/coreapi/linphonecore_utils.h b/coreapi/linphonecore_utils.h index cc0a6f692..b80992ad1 100644 --- a/coreapi/linphonecore_utils.h +++ b/coreapi/linphonecore_utils.h @@ -64,12 +64,15 @@ typedef enum { typedef void (*LinphoneEcCalibrationCallback)(LinphoneCore *lc, LinphoneEcCalibratorStatus status, int delay_ms, void *data); +typedef void (*LinphoneEcCalibrationAudioInit)(void *data); +typedef void (*LinphoneEcCalibrationAudioUninit)(void *data); /** * * Start an echo calibration of the sound devices, in order to find adequate settings for the echo canceller automatically. **/ -int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibrationCallback cb, void *cb_data); +int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibrationCallback cb, + LinphoneEcCalibrationAudioInit audio_init_cb, LinphoneEcCalibrationAudioUninit audio_uninit_cb, void *cb_data); /** * @ingroup IOS * Special function to warm up dtmf feeback stream. #linphone_core_stop_dtmf_stream must() be called before entering FG mode diff --git a/coreapi/private.h b/coreapi/private.h index d80607ca9..b5312bd60 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -662,6 +662,8 @@ struct _EcCalibrator{ MSTicker *ticker; LinphoneEcCalibrationCallback cb; void *cb_data; + LinphoneEcCalibrationAudioInit audio_init_cb; + LinphoneEcCalibrationAudioUninit audio_uninit_cb; int64_t acc; int delay; unsigned int rate; diff --git a/coreapi/test_ecc.c b/coreapi/test_ecc.c index 43ae0dcb2..38ba72765 100644 --- a/coreapi/test_ecc.c +++ b/coreapi/test_ecc.c @@ -45,7 +45,7 @@ int main(int argc, char *argv[]){ linphone_core_enable_logs(NULL); - linphone_core_start_echo_calibration(lc,calibration_finished,NULL); + linphone_core_start_echo_calibration(lc,calibration_finished,NULL,NULL,NULL); while(count++<1000){ linphone_core_iterate(lc); From 6fcf76e405a695f86a446f430903682f42155f43 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 22 Apr 2013 23:11:10 +0200 Subject: [PATCH 100/177] update ms2 and cleanup dead function --- coreapi/linphonecore.c | 20 -------------------- mediastreamer2 | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 559048c59..bb2b4a83c 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4927,26 +4927,6 @@ void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms){ else ms_filter_call_method(f, MS_DTMF_GEN_START, &dtmf); } -/** - * @ingroup media_parameters - * Plays a repeated tone to the local user until next further call to #linphone_core_stop_dtmf() - * @param lc #LinphoneCore -**/ -void linphone_core_play_tone(LinphoneCore *lc){ - MSFilter *f=get_dtmf_gen(lc); - MSDtmfGenCustomTone def; - if (f==NULL){ - ms_error("No dtmf generator at this time !"); - return; - } - memset(&def,0,sizeof(def)); - def.duration=300; - def.frequencies[0]=500; - def.amplitude=1; - def.interval=2000; - ms_filter_call_method(f, MS_DTMF_GEN_PLAY_CUSTOM,&def); -} - void linphone_core_play_named_tone(LinphoneCore *lc, LinphoneToneID toneid){ if (linphone_core_tone_indications_enabled(lc)){ MSFilter *f=get_dtmf_gen(lc); diff --git a/mediastreamer2 b/mediastreamer2 index 2720ab1d1..23b802c46 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 2720ab1d1568ced6f0bf63e454a35f340d8ace64 +Subproject commit 23b802c4631fdf909a218a0dd0a77c6cf6d4d5a9 From 6bf49e2a67c6bd11a573eae46d3d42a13c652388 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 23 Apr 2013 11:39:03 +0200 Subject: [PATCH 101/177] Change the README for linphone desktop (linux) --- README | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/README b/README index 658f07ae0..db78b72e5 100644 --- a/README +++ b/README @@ -2,24 +2,64 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. ******************Building linphone *********************************** + +- Install build time dependencies + - libtool + - intltool + - you need at least: - - libosip2>=3.0.3 - - libeXosip2>=3.0.3 - - speex>=1.2.0 (including libspeexdsp part) - - libreadline (optional: for convenient command line in linphonec) - + gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional) - + if you want to gtk/glade interface: - - gtk>=2.16.0 + - libosip2>=3.0.3 + - libeXosip2>=3.0.3 + - speex>=1.2.0 (including libspeexdsp part) + + + if you want the gtk/glade interface: + - libgtk >=2.16.0 + if you want video support: - SDL>=1.2.10 - libavcodec (ffmpeg) - libswscale (part of ffmpeg too) for better scaling performance + - libxv (x11 video extension) + - ligl1-mesa (OpenGL API -- GLX development files) + - libglew (OpenGL Extension Wrangler library) + - libv4l (Video for linux) + - libx11 (x11) - theora (optional) - + if you want uPnP support: + + + gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional) + + libreadline (optional: for convenient command line in linphonec) + + libsoup (optional: for wizard - account creation assistant) + + libsqlite3 (optional : for a local history of messages) + + if you want uPnP support (optional): - libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch)) + + + Install srtp (optional) for call encryption : + $ git clone git://git.linphone.org/srtp.git + $ cd srtp && autoconf && ./configure && make + $ sudo make install + + + Install zrtpcpp (optional), for unbreakable call encryption + $ sudo apt-get install cmake libssl-dev + $ git clone git://git.linphone.org/zrtpcpp.git + $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make + $ sudo make install with their corresponding -dev or -devel package if you don't use source packages. +- Compile linphone + + $ ./autogen.sh + $ ./configure + $ sudo make install + $ sudo ldconfig + +- Command line for Ubuntu && Debian + + $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev + + + for optional library + $ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev + + For windows compilation see README.mingw. For macOS X, see README.macos From adb9fa635e81c5e0521b4f0aa69b377454c6ad5d Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 23 Apr 2013 12:38:58 +0200 Subject: [PATCH 102/177] update chat state message changed --- gtk/chat.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index b1da70822..2cba0754f 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -62,6 +62,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *w=g_object_get_data(G_OBJECT(friendlist),"chatview"); gchar *from; + GHashTable *table=g_object_get_data(G_OBJECT(w),"table"); g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); @@ -72,6 +73,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_object_set_data(G_OBJECT(w),"from_message",NULL); g_free(from); } + g_hash_table_destroy(table); g_object_set_data(G_OBJECT(w),"cr",NULL); g_object_set_data(G_OBJECT(friendlist),"from",NULL); gtk_widget_destroy(w); @@ -134,7 +136,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, int off; char *from_str=linphone_address_as_string_uri_only(from); gchar *from_message=(gchar *)g_object_get_data(G_OBJECT(w),"from_message"); - GList *list=g_object_get_data(G_OBJECT(w),"list"); + GHashTable *table=(GHashTable*)g_object_get_data(G_OBJECT(w),"table"); time_t t; char buf[80]; time_t tnow; @@ -165,10 +167,10 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, switch (linphone_chat_message_get_state (msg)){ case LinphoneChatMessageStateInProgress: { - list=g_list_append(list,GINT_TO_POINTER(gtk_text_iter_get_line(&iter))); + g_hash_table_insert(table,(gpointer)msg,GINT_TO_POINTER(gtk_text_iter_get_line(&iter))); gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Sending .. ",-1, "right","small","italic","font_grey","bg",NULL); - g_object_set_data(G_OBJECT(w),"list",list); + g_object_set_data(G_OBJECT(w),"table",table); break; } case LinphoneChatMessageStateDelivered: @@ -213,7 +215,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); - GList *list=g_object_get_data(G_OBJECT(page),"list"); + GHashTable *table=(GHashTable*)g_object_get_data(G_OBJECT(page),"table"); if(page!=NULL){ GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(page,"textview")); @@ -222,21 +224,20 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag GtkTextIter end; GtkTextIter start; gchar *result; + gint line; + line=GPOINTER_TO_INT(g_hash_table_lookup(table,msg)); - gtk_text_buffer_get_iter_at_line(b,&iter, - GPOINTER_TO_INT(g_list_nth_data(list,0))); + gtk_text_buffer_get_iter_at_line(b,&iter,line); if(gtk_text_iter_get_chars_in_line(&iter) >0) { - gtk_text_buffer_get_iter_at_line_offset(b,&start, - GPOINTER_TO_INT(g_list_nth_data(list,0)), - gtk_text_iter_get_chars_in_line(&iter)-1); + gtk_text_buffer_get_iter_at_line_offset(b,&start,line, + gtk_text_iter_get_chars_in_line(&iter)-1); }else{ - gtk_text_buffer_get_iter_at_line_offset(b,&start, - GPOINTER_TO_INT(g_list_nth_data(list,0)),0); + gtk_text_buffer_get_iter_at_line_offset(b,&start,line,0); } - gtk_text_buffer_get_iter_at_line_offset(b,&end, - GPOINTER_TO_INT(g_list_nth_data(list,0)),0); + gtk_text_buffer_get_iter_at_line_offset(b,&end,line,0); gtk_text_buffer_delete(b,&start,&end); - gtk_text_buffer_get_iter_at_line(b,&iter,GPOINTER_TO_INT(g_list_nth_data(list,0))); + gtk_text_buffer_get_iter_at_line(b,&iter,line); + switch (state) { case LinphoneChatMessageStateInProgress: result="Sending "; @@ -251,14 +252,14 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag break; } case LinphoneChatMessageStateNotDelivered: - result="Error "; + result="Message not sent"; break; default : result="Sending .."; } gtk_text_buffer_insert_with_tags_by_name(b,&iter,result,-1, "right","small","italic","font_grey","bg",NULL); - list=g_list_remove(list,g_list_nth_data(list,0)); - g_object_set_data(G_OBJECT(page),"list",list); + g_hash_table_remove(table,msg); + g_object_set_data(G_OBJECT(page),"table",table); } } @@ -320,7 +321,6 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon } void linphone_gtk_chat_add_contact(const LinphoneAddress *addr){ - //LinphoneAddress *addr=(LinphoneAddress *)data; LinphoneFriend *lf=NULL; char *uri=linphone_address_as_string(addr); lf=linphone_friend_new_with_addr(uri); @@ -352,8 +352,8 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres int idx; GtkWidget *button; GtkWidget *entry; - GList *list=NULL; MSList *messages; + GHashTable *table; char *with_str; color.red = 32512; @@ -372,9 +372,10 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres idx = gtk_notebook_page_num(notebook, chat_view); gtk_notebook_set_current_page(notebook, idx); gtk_widget_show(chat_view); + table=g_hash_table_new_full(g_direct_hash,g_direct_equal,NULL,NULL); g_object_set_data(G_OBJECT(chat_view),"cr",cr); g_object_set_data(G_OBJECT(chat_view),"from_message",NULL); - g_object_set_data(G_OBJECT(chat_view),"list",list); + g_object_set_data(G_OBJECT(chat_view),"table",table); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), "right","justification", GTK_JUSTIFY_RIGHT,NULL); gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), From cf2c2337e334c4de95d3fca4732e996c9e2d0e3a Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 24 Apr 2013 11:57:52 +0200 Subject: [PATCH 103/177] link to libxml2 statically (shared version not working with android-ndk-r8e) --- build/android/common.mk | 4 +++- build/android/lpc2xml.mk | 1 - build/android/xml2lpc.mk | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/android/common.mk b/build/android/common.mk index 584649735..d0bf70cad 100644 --- a/build/android/common.mk +++ b/build/android/common.mk @@ -95,10 +95,12 @@ LOCAL_STATIC_LIBRARIES := \ libeXosip2 \ libosip2 \ libgsm + ifeq ($(BUILD_REMOTE_PROVISIONING),1) LOCAL_STATIC_LIBRARIES += \ libxml2lpc \ - liblpc2xml + liblpc2xml \ + liblpxml2 endif ifeq ($(BUILD_TUNNEL),1) diff --git a/build/android/lpc2xml.mk b/build/android/lpc2xml.mk index 91038adce..d93be9b79 100644 --- a/build/android/lpc2xml.mk +++ b/build/android/lpc2xml.mk @@ -39,7 +39,6 @@ LOCAL_C_INCLUDES = \ $(LOCAL_PATH)/../../externals/build/libxml2 \ LOCAL_SHARED_LIBRARIES = \ - libxml2 # liblinphonenoneon \ # liblinphone \ diff --git a/build/android/xml2lpc.mk b/build/android/xml2lpc.mk index e89ab383b..55e4a03a0 100644 --- a/build/android/xml2lpc.mk +++ b/build/android/xml2lpc.mk @@ -39,7 +39,6 @@ LOCAL_C_INCLUDES = \ $(LOCAL_PATH)/../../externals/build/libxml2 \ LOCAL_SHARED_LIBRARIES = \ - libxml2 # liblinphonenoneon \ # liblinphone \ From a3f10ccd2f494b834eb4f8dfc48cb3d1593f5dfd Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 25 Apr 2013 10:36:18 +0200 Subject: [PATCH 104/177] add special case to compute aac network birate --- coreapi/misc.c | 11 ++++++++++- mediastreamer2 | 2 +- oRTP | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index 35a58e200..5d4c0ebcc 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -234,12 +234,21 @@ static int get_codec_bitrate(LinphoneCore *lc, const PayloadType *pt){ return pt->normal_bitrate; } +/* + *((codec-birate*ptime/8) + RTP header + UDP header + IP header)*8/ptime; + *ptime=1/npacket + */ static double get_audio_payload_bandwidth(LinphoneCore *lc, const PayloadType *pt){ double npacket=50; double packet_size; int bitrate; + if (strcmp(payload_type_get_mime(&payload_type_aaceld_44k), payload_type_get_mime(pt))==0) { + /*special case of aac 44K because ptime= 10ms*/ + npacket=100; + } + bitrate=get_codec_bitrate(lc,pt); - packet_size= (((double)bitrate)/(50*8))+UDP_HDR_SZ+RTP_HDR_SZ+IP4_HDR_SZ; + packet_size= (((double)bitrate)/(npacket*8))+UDP_HDR_SZ+RTP_HDR_SZ+IP4_HDR_SZ; return packet_size*8.0*npacket; } diff --git a/mediastreamer2 b/mediastreamer2 index 07824fcf3..23b802c46 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 07824fcf3879d265c59beaf970d833b5859f3691 +Subproject commit 23b802c4631fdf909a218a0dd0a77c6cf6d4d5a9 diff --git a/oRTP b/oRTP index 20b527144..bd64df514 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 20b527144f9850dd9065d96db7a20244e8a8b227 +Subproject commit bd64df5148bdfd4a2ff5153927676fc497118279 From beb437ef55b7f1bc6c5fcd408bb53a67453cdb00 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 25 Apr 2013 10:54:29 +0200 Subject: [PATCH 105/177] Update ms2 submodule. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 23b802c46..c3e5bad58 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 23b802c4631fdf909a218a0dd0a77c6cf6d4d5a9 +Subproject commit c3e5bad583aad848e1e0d5391092311a31f3ea5a From 4b18b115a4377abc3ac9e5b898f004ca3ac7c2c6 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 25 Apr 2013 11:17:11 +0200 Subject: [PATCH 106/177] Increment tries in loop that have a maximum number of tries. --- coreapi/sal_eXosip2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index e577b6422..222e7c329 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -2400,6 +2400,7 @@ int sal_register_refresh(SalOp *op, int expires){ * the exosip lock in a non blocking way, and give up if it takes too long*/ while (eXosip_trylock()!=0){ ms_usleep(100000); + tries++; if (tries>30) {/*after 3 seconds, give up*/ ms_warning("Could not obtain exosip lock in a reasonable time, giving up."); return -1; From 5f109bfb55224b69dd598d95c2c0dd47fa87b960 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Thu, 25 Apr 2013 17:00:31 +0200 Subject: [PATCH 107/177] Aac-eld add missing header according to RFC3640 3.3.6 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index c3e5bad58..bec2520cb 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit c3e5bad583aad848e1e0d5391092311a31f3ea5a +Subproject commit bec2520cbb80daf9420bf71c05e25394e2b6024d From a0a70a59dfedfe22ed3fae3df88a6363bd8596e0 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Fri, 26 Apr 2013 01:12:51 +0200 Subject: [PATCH 108/177] aac-eld support multiframe per packet decoding --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index bec2520cb..3acaa7372 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit bec2520cbb80daf9420bf71c05e25394e2b6024d +Subproject commit 3acaa7372423ffb0d18923e9e41e1076cec51905 From dd0bb74c0a88ed4ba4679033c4fda9cfead1067d Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Fri, 26 Apr 2013 10:47:04 +0200 Subject: [PATCH 109/177] Fix UI feedbacks : - updates pixmaps - contact list resizable - property.ui modified - call stats remove when a call ends - update hebrew translation file --- README | 2 +- gtk/about.ui | 1 + gtk/incall_view.c | 3 +- gtk/main.ui | 76 +++++++--- gtk/parameters.ui | 252 +++++++++++++++++--------------- gtk/propertybox.c | 27 +++- pixmaps/contact_unstarred.png | Bin 3243 -> 2894 bytes pixmaps/startcall-small.png | Bin 3869 -> 3726 bytes po/cs.po | 50 +++---- po/de.po | 50 +++---- po/es.po | 50 +++---- po/fr.po | 207 +++++++++++++------------- po/he.po | 266 +++++++++++++++------------------- po/hu.po | 50 +++---- po/it.po | 50 +++---- po/ja.po | 50 +++---- po/nb_NO.po | 50 +++---- po/nl.po | 50 +++---- po/pl.po | 50 +++---- po/pt_BR.po | 50 +++---- po/ru.po | 50 +++---- po/sr.po | 50 +++---- po/sv.po | 50 +++---- po/zh_CN.po | 50 +++---- po/zh_TW.po | 50 +++---- 25 files changed, 807 insertions(+), 777 deletions(-) diff --git a/README b/README index db78b72e5..1a66f4a27 100644 --- a/README +++ b/README @@ -49,7 +49,7 @@ with their corresponding -dev or -devel package if you don't use source packages $ ./autogen.sh $ ./configure - $ sudo make install + $ make && sudo make install $ sudo ldconfig - Command line for Ubuntu && Debian diff --git a/gtk/about.ui b/gtk/about.ui index 1d79dbf7e..38fc2e796 100644 --- a/gtk/about.ui +++ b/gtk/about.ui @@ -30,6 +30,7 @@ pt_BR: Rafael Caesar Lenzi <rc_lenzi@yahoo.com.br> pl: Robert Nasiadek <darkone@darkone.pl> cs: Petr Pisar <petr.pisar@atlas.cz> hu: anonymous +he: Eli Zaretskii <eliz@gnu.org> Icons by kerosine.fr diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 44b35c03c..01e3b3cd9 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -758,10 +758,11 @@ void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_m gtk_widget_hide(linphone_gtk_get_widget(callview,"record_hbox")); gtk_widget_hide(linphone_gtk_get_widget(callview,"buttons_panel")); gtk_widget_hide(linphone_gtk_get_widget(callview,"incall_audioview")); + gtk_widget_hide(linphone_gtk_get_widget(callview,"quality_indicator")); linphone_gtk_enable_mute_button( GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),FALSE); linphone_gtk_enable_hold_button(call,FALSE,TRUE); - + if (taskid!=0) g_source_remove(taskid); g_timeout_add_seconds(2,(GSourceFunc)in_call_view_terminated,call); if (in_conf) diff --git a/gtk/main.ui b/gtk/main.ui index 347a402ea..591b042ae 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -7,6 +7,16 @@ False gtk-add + + True + False + gtk-add + + + True + False + gtk-add + False @@ -701,6 +711,16 @@ False gtk-edit + + True + False + gtk-edit + + + True + False + gtk-edit + True False @@ -751,11 +771,21 @@ False gtk-select-color + + True + False + gtk-add + True False gtk-refresh + + True + False + gtk-add + True False @@ -1088,9 +1118,9 @@ - + True - False + True True @@ -1144,16 +1174,14 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True True True True - Add immediate False - add_image + add_image2 1 @@ -1168,9 +1196,8 @@ True True True - Edit False - edit_image + edit_image2 @@ -1185,7 +1212,7 @@ True True False - remove_image + remove_image2 @@ -1203,10 +1230,8 @@ - False - False - 6 - 0 + False + True @@ -1353,7 +1378,7 @@ True True False - image16 + image20 @@ -1467,10 +1492,8 @@ - True - True - 6 - 1 + True + True @@ -1529,13 +1552,6 @@ False none - - - True - False - gtk-refresh - - True @@ -1880,4 +1896,16 @@ Delete gtk-remove + + True + False + Delete + gtk-remove + + + True + False + Delete + gtk-remove + diff --git a/gtk/parameters.ui b/gtk/parameters.ui index e4a6430fa..b8063792f 100644 --- a/gtk/parameters.ui +++ b/gtk/parameters.ui @@ -639,53 +639,115 @@ 0 none - + True False - - Direct connection to the Internet - True - True - False - False - True - True - - - - False - False - 0 - - - - + True False - - Behind NAT / Firewall (specify gateway IP below) + + Direct connection to the Internet True True False False True True + + + + False + False + 0 + + + + + Behind NAT / Firewall (specify gateway IP ) + True + True + False + False + True no_nat True True - 0 + 1 + + + Behind NAT / Firewall (use STUN to resolve) + True + True + False + False + True + no_nat + + + + True + True + 2 + + + + + Behind NAT / Firewall (use ICE) + True + True + False + False + True + no_nat + + + + True + True + 3 + + + + + Behind NAT / Firewall (use uPnP) + True + True + False + False + True + no_nat + + + + True + True + 4 + + + + + True + True + 0 + + + + + True + False True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True True @@ -705,6 +767,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + True False False True @@ -720,7 +784,53 @@ True - True + False + 0 + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Stun server: + right + + + True + True + 0 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + True + False + False + True + True + + + + True + True + 1 + + + + + True + False 1 @@ -731,102 +841,6 @@ 1 - - - Behind NAT / Firewall (use STUN to resolve) - True - True - False - False - True - no_nat - - - - True - True - 2 - - - - - Behind NAT / Firewall (use ICE) - True - True - False - False - True - no_nat - - - - True - True - 3 - - - - - Behind NAT / Firewall (use uPnP) - False - True - True - False - True - no_nat - - - - True - True - 4 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Stun server: - right - - - True - True - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - True - False - False - True - True - - - - True - True - 1 - - - - - True - True - 4 - - diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 1c189e0b8..f30b55d05 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -131,6 +131,13 @@ void linphone_gtk_update_my_port(GtkWidget *w){ linphone_core_set_sip_transports(lc,&tr); } +void linphone_gtk_set_propety_entry(GtkWidget *w, gboolean stunServer, gboolean ip){ + GtkWidget *stun_entry=linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"stun_server"); + GtkWidget *ip_entry=linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"nat_address"); + gtk_widget_set_sensitive(stun_entry,stunServer); + gtk_widget_set_sensitive(ip_entry,ip); +} + void linphone_gtk_stun_server_changed(GtkWidget *w){ const gchar *addr=gtk_entry_get_text(GTK_ENTRY(w)); linphone_core_set_stun_server(linphone_gtk_get_core(),addr); @@ -217,28 +224,38 @@ void linphone_gtk_max_video_port_changed(GtkWidget *w){ } void linphone_gtk_no_firewall_toggled(GtkWidget *w){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){ + linphone_gtk_set_propety_entry(w,FALSE,FALSE); linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyNoFirewall); + } } void linphone_gtk_use_nat_address_toggled(GtkWidget *w){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){ + linphone_gtk_set_propety_entry(w,FALSE,TRUE); linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseNatAddress); + } } void linphone_gtk_use_stun_toggled(GtkWidget *w){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){ + linphone_gtk_set_propety_entry(w,TRUE,FALSE); linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseStun); + } } void linphone_gtk_use_ice_toggled(GtkWidget *w){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){ + linphone_gtk_set_propety_entry(w,TRUE,FALSE); linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseIce); + } } void linphone_gtk_use_upnp_toggled(GtkWidget *w){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){ + linphone_gtk_set_propety_entry(w,FALSE,FALSE); linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseUpnp); + } } void linphone_gtk_mtu_changed(GtkWidget *w){ diff --git a/pixmaps/contact_unstarred.png b/pixmaps/contact_unstarred.png index ad041095b4696747d24dbc5d4392a74efb589bd1..38fdbbb7740c1712054214af3d63427b1b7201a7 100644 GIT binary patch delta 2861 zcmV+|3)1wf8O|1vBo78+OGiWi000000Qp0^e~~~Qf87Ka47tXjq#>wDYImCUg4&JWa%ekFB};FHBlL zt3;8qY16d+9*k{A_nLiN=)|Vm7U1wktS|KKwk|uM;;(=>0-H9l$!eqWOI>r%pE4W! zf6?0(fQ{X;Zr8W0Z(IP#0Gt7F9>h7MwYSjL{UDrM(ecVN)OFhdy!->ovs=-h@46o$ z{Qyi3Oqr$!I13=aCqo$6`6mW!w%>LDMtSS{U4ID)rPjy}#1V|igH0A>vheX~bPar# z2-rM$;KNDg4+($>;O$)lkFoeM5ZR`&e*>F5*yLb13-MQATrax%@280>HrzGX zaTd%uu*rf=79ly0_U;Fe&G)yxvj672a8m%UeTVq)M!v6W&7=8j$5u!f1Cdc8f1?Da z;7Hlzlubs7GfETz8bf6Y8+QMVCF}Mc+)tf16}-RJdEjZHLmP0HG3J5xt}Sl!!_Qe} zfrKe#b^uur8IbJ;Nev-+7b+g22{bfFL2&u|F?Mdh4jub@f$Dpjq(}FBMa#Do;NbVE z!-2N}*w()C9$vTe8?LSAK}aY`ZY66u8g4Cf>C#ZwXZbR@> z7(4g8TpIj=D$-G(`V(OT&hOi&@}U5{_8sCl!X{&BC)JW*c zQlADQ2{AOpP#Cc5gK>RG<57%X_zA|}|G5NTzpP$=wf70VxGaEI_fwA=bFXpj8@mU7 zi+a|5f?aN%5)mYnLBum6e?bmRuDSYbX8_Q;XWI)%9g@5aRSyXbh)jE;1t4+jc{~G1 z+yN8y6C;bMD@QPK@mFa)HPjH1V^foO`%_=la2>#_2gp*x>@k_{t^Id>+H|ho3o;#0 zscGwX^OlzacC~>A$^E20k5GV_Ppprnf(X(z4DMNf2!B?PC zK?r4tFB1`iO$IjVe}&83!S(Vbeec-6cnS6A_WqGp?A2y~RQ9Ff3{e6T` zf%rN^5|BnPt`lrmz_>0Ly8^~`fo&&@Er3lY*mi)p4a|9v$$_YWAb_d>Do{I6J?RcXV9pgf=`Poq2B6iW?K%-Ic;4*CIjY{XUHMf^?MM_p)~TNR`}FG zlmePIy&-jKUSp`#0I9b;Q-g#W0g6n16EbbvU~CUfjh)2E>HiH1dHsPuNRM8Z#DfRO zla z3ZekOPXmx@0@XSoaZ|j;%`&SVCc1+%ZFfUMg2~ZAEnPgJqIx+b{@{aO*6~Hl=->e| z6IE<7*4}5LY`%N#4%^YQ1tMkmd*%Do&!Alj8YuK` zL}Ardo9(<4;>QuvVW=;)8n#HANgaX60%VZu{5V2jl*eBLK>#QKPYMrc0@4)37B;g6 z#`eLde-%`&yorfRC%jMU4Tzpd6odPo(B!6Di9^p(hCMceXoqpxT=&}TuCV$(7~{~W zzS-K?qM02TWRNR73?CTP;?Jf%KneliK@eo}TVSKrsFvQs#D&*7co^4(%V%Hm3Oe@C6F5Fw{Bq`95@5MM20)+t zb0k6Z_}KYlo^3Zms6u=dAyg533BebkQiJ*`RBAA;2l3P?#8Z><%X4yKIi6ok3*Vq{ znq@qFf9M#F*Gr@DjS2uepEauJEGhM)Jnq;!N_0z0~)i&f8j-7 z7KPwtipM;nXM^w`KZR0AYH<=zQk1&`*0zI<1DgoOwUM<2vYCD=jhyqBMs;w`SaZk6 zav^vL@$g}g9YlvBl#v%zNi$=G(XCPQqqWNbTJrXL}xA*q$+t50Kip4F#i%)P8C zM2o=Ctl!aG5#RkG&Q-@RfYiWde|o?s2W#@MwjDOJ8pYu=VPX=e$7tNha=2$NNFt~7F1ZL|u;09}*V z-}_Hgt2HTB#)sfsHyPVOYzs6x^oIV=FZ`(miUH=CZy_B^0_YO&WdV>Gd*zLE@Pl`c z1a<{-u7}E3hN#}~<-gmH;tkBVln$t>F6IH9BYN)O+IlXtpcH^S^-mZnPt{77hh7sX z;r){@`4?VJj?VqwJmcw{fB6>j{I%Wa5_`d-iMv29;PFqQ?av-}pEOKvWL!^v{_E+9 zS)yf*=(*3944>(ab*7zOMk|2@D#n7l_3mA;pM400Z~Y@C=6F#TS@k93es;Tk&3RxM z9q4@3f|u9;7b^yGBMCd-Ibq%d%`#i*g=+Rf;$WD--_dcLsofFHF1i z9^Xk01HJ!()*1IG<28JI>*LgV&I4?HiqcSKY4h}3RjIHW&IKq3yD(|yO>ATM>^Tn* z3Ewhl#wQhAbQCWCAgkn}Vs6W`try;E0J`J(M=5sh0)MO^X2QMg@BLh?9KP90t3Z(N1NI^b-Er)&RKxX)A6x%>t!k9Pk}_odWbz?m2|B9L&c$=z1lwe(+O7k z?sFD^mHyn+x%VZb;z5AaGvHWAoM7U3P%gao-DJ~37}GF)(^{H+&H=pgB(@G?Da<|q``=Ni8&fX%R1B;>ea-C0>Cz~*-q?1sRUU0 zOv-;C3ihCJ$~B6BrMuRXcMbs%0sL2uQ?51=9S4!_BGMkQ0jmU9#YM62OLVMDnHDs* zy`TH@xaOPz*t{0kHBVbyue~NXJG711Y#`EcVt>yNCqV3j*k4ZUt+1v2U2U^&O)71^ zIt>2X23SE%$~-jX;yV&H>IbpzBGMa)O`gar6Z>F}gO%US%I~tJ{VP*Ve+WO(*0yO4 zuKle7Y+FTU^K`zyvHhx6ziuYP9tV-yN2KBeW5FI+#lb2D;uwfLzy<&5WbkOmW%nmZ zn}2Vym2ipEhW^!y5^bpOuy`FzLfg_XIB!bAAoc~tQ?UZdHQiM`yl0k z$OPr!wY{n4g?9R-cTG0h`_+~wyr(v=rfI)c_Pv`InwOuT=>~i&fZI|NX2+&pa#t$Z zybxkDaFSa|WbP%>1H=YI8l)xwE`*f!!hg9EoD^XtBq!k_IP;+PXU(FDsT zCnJaQPoi@4i0#0SJ3C$U8v)q1icH{PiPCf@>$+L37cN#4I+hqOaXy^nAvOyFKx`U_ z^Z=2;Fn|H;762u<@?KaQ!bu3R!7zvo{=!M|>!h07m1ze^BX@Koj=ZrxpF6SB0)Mnd zoP2BHQn%;V0(j-S)WV8yC&KNi=J$9l=YK3w-+C2@eTdBgE?h}ueoSm$BGOI7<}i_o zY5_>;4Tu!sYzUD6PC{54DktH^VuKyd2AvM-3O23Fm1#veID!)g|06na;H8p{!fh^c z4=z~dHoPN%Eo*3wQ|dltQdc)k`G0-YJoO`v55E=Ev$SA?c?*W_*|3)PEOX4~xudR*Yrv{I0MgO6n4+VqW z{UY+!!2zsUbh|5_2C!v4#i^+NQN@~;wO#Zle*L5cOsWn}3b0WQ#QIr~xqp+%^n$g= zoNrD1PKSOIhrVvb1YIU9=D;8TEHsbf>ywAY#{ z2Lm|1|E0pfu^lI1?G5vnx-D-5*!+~YYQoeH-8gyHO+Il9Vu#>t8RE(-A$A2=Yhv#p zlLxQ|rWlC5;qo|AB8SIQA%6t&0T7&&;9POoYygo0oD?8-XxO40oa7);4mKK!IT?br zxfY3Xtwg+>Rcx{LT3}-5AKKGh7+?L`uEnJSbDotQ$m`Mx}Ivr*vb$x*kfW!Kxmt>p+|Ya{{E|Ab%>t3bb=#;lw#t zhO|$V2mQaxb5j#Jkp$mks%DBHW!wPf^X&=B51f6qJK* zghRiA*xWW&@h;}X3|8^CSj9Im$Db$VTV@}`qX5G>5pTR2R)0K|>3!M~9EdD{=oEk} zY3ITS5_Cesxy}Xe6C1#}s8f08b;OeIg|j6L9N86R54~Cv=YDQW(H#qKc00x`qr29V z*Pq7?O6&WT=TB;yJSSDxJcC4Xh)Rbr+;JL^^1&Rxl9k^zEZ!T*g<$}{VG%@(KXCMi zA;AH#BUXZQWq$=%Y=e{@bS_*57ht&hv_qMR2nP2e+qbKbKi&f(`ks{K8w+lByWjOe zw&@94$e=Gc&>y8+rn~gSnF+uCd`NTxw%iLBWxI&|70h1Oa8i39(f}#M>px7^ay)n9 zg#tkUH~vW$G@MG%}1*w8^5 zfM^y$z7k8!=+xdM4#|KPTKK697|?%$omW20sAH`)uGgjq}T6w_A#y1cpLeSXvA zE4Y;Z1%Jd2b`hH;MEW?0tzS1EHgYHoYyk+GAQ8xV0RBFno_|-Va0o~Cyf73D4VE0a zzl(gV?Y!O%ot0*e==7J57guARr|DbiiRWL^deKMxVBlpC(FZ_k6G2HVbt$X`g4{1a zF7f)5cThXWfdk9>43${P=nEPYk ztpoLK-B6|lQSrb$klI1uK^tXYt-!fF05mv}h*@8)OyiusJ?rug^tH>Exo?iQ@0nnD zEa6q+slvE&e%)s=V8uOreE;@aUk5 z6S^pGhuep|M=FhM&+B0^au0oeISLi))Pgu82#*miG=}(5;i_`}w~wMwj%Zz>|FAW& zb^vm%bERv<4rV0kx6TC?F05mYKLBSjlz%yfpYFh#>UApipz%OX1E?V$HH252s#9a^WC>sTAIefx5UkGPc;!pHJLC4U6Q zg5VlY9<`FS2FPhZM>6twrti&A$J(HDYLZs5kFxgDN~b3K)Ge_8&opG1#Wgk5#4V;s?A={qe4Tn&?|xzt$jZF#ckm*v$xZ)`2FNyC_Cuu?D+qB&8c;e;Gp$D%%VmXQ5icN6l7QR53=&{~4QegN5BkySG_5!hxL|g6Cc- zJurH`>K>_@+ZubjF?0@hqkm(Z1$YOiv978{qa!W(DB3@>#C%^drTR{|RUiL+`LQbT zQUhMj@Z?=}lXtS69_KX17)eZ3mFTns=(4#;Tyr_5-}e}Hj)-(MyeL(|tXQM&aYW(2N68J?9#8s!_McDj=1p5RUO;eXRF_ Z{{;vjA1VGm?-u|7002ovPDHLkV1m_)B}o7P diff --git a/pixmaps/startcall-small.png b/pixmaps/startcall-small.png index 30b32789a802b49afbd0e0c576ca3fd92a743520..d5726e12c03df86864df4c48e8f98c33ba6af9fe 100644 GIT binary patch delta 1068 zcmV+{1k?MS9*!L$iBL{Q4GJ0x0000DNk~Le0000I0000G2nGNE02>A`T(Kc^3V#FR zNklr{;7}lhmBejO@CNpwn>|YB7(MCmq#Tc@+t)ijnqOAmUdxTmfgEE<6IIF(n;>U zXXebDd%o{{XMl4K*5l zxU3`6b-FI>t5%R>fJC-{)!lIxUqcGC^k(q9pqhku$e?fvR;E#w(68g>&J2>4_%w+cY~+)I2Mq#eI!NN@6t zYI6;XIPX@$U6M9C}h}hbS8`5u*oBt@;q1If7>#!xa_J5YF&+HENI8@Jw zeo;xo*OL+WQbq-BkibaN1zAcG@;E`@NnQa8%@GG@^1UFp113BE0%9oY-Xz5=+{F35 z%IG4eyazZoNeVBJSOS1kR*-6BPXZ@5iBpgv!!Tc>Ggbx@0!EvVhc0WyjN{L;0s$$7 ze^GkfwTCgh3leMqLw`*Y)fylUZ0yRNO=yt=ry%USC8<~`@0UKU88==o3#z$!S6q8& z63P(apqz$wV#fl7Q9Cls5aM)+RQ{HdBzD#=JBnYMDmwj3`NZtK)#c-Mp7|Y7Yz^XX zovK^v$ttEDih(C34Ir_~fl+>;@5Sh%oPu5&13QbuMWHFcBYz|5UqA1zZ^@IM`{a$x zlOJ1<%KK7E(XmmlI_-s`gWQ5Qlg9ZhH(BSSx%iFL9IaIleU?VpH^HLVJKGHlec(KG zuld5wh@U@9-tU@R8*ct#^@M9jH~FpL$o7G5&C7qc71m7Y-`7s-yz)=IyYvqu(^^L# z_epKg#;^sI(SOeaZ)V$aK3X9Q?%uVl_xo0QX8)m6^GL`RnA9comV-7d5>OOmaE`4h zXL_r`k1UOCcmE|gM!evs7NmuTvwP>2@y4M@?<=C?pZ$01&ORcmAV^&kcg3_M^GH*C5S9P{002ovPDHLkU;%doSNKD2@fdL&*7-8tx7RFZw-GBk@ZF}!IzULypJ;`a$ zdEfVW-p_M^a}IkOf*^g&f$rV^?|;9x2b`V>e)oV~3x~Y{*JL90sC)uH8t6XJ#;*)1l_5w}8PGQ(41cm3rGC zKnnCo1Q%{Rpl@uSp+oYjapkl`;XJiKny$hUW85?7j?dFXj@pL8eW1~kdt?G6z=8yi zqEXDCMJFN(RKlP;b`jmYti>QHDdd1e=;s1Qypzf#f|o)^;!SlCC4WyNa2DZ1A$PpP zFxZXMh|IWSbp9Y#t^}lDF;7-c+5(c9pJOVZkk?QI7lQ^P!dU0zU2`^VqYC-f8?k*Q zWP53fGe#_G&Vx8!f=tLv+Q5`Vg$qw5=J`v)~+geG1{^%!C)KO~gENFPQA*g+JsFZ#V(Yk>fv zwY?yTNb9H5U7iW+@3Nha$hOp&XVlg#U>wMlXcytcN-^<4^xuG+WGvTw!s7g@oFN)Z zU-FKpH~!WFQco?{1W;8qCzW}Vu5y=bCwX}G2|3ovPI2y8ihtjwjPq~IIW(^^vj6SQ zXFC&xCZC_JTYi)sya;!fm0E|Z$E_E=lh!jJNgrVGb&wF8Kq85R3_?m8bu1cZ>}OIE zEHP&m%#0S;E6eg}Y2$}^Uv~?m=Bc6=9_b6OA++9{O-z`H$PH2(n7j^a1ZS}SNbI~X zVtZb)!xe3lhkruun9q1AN5iDV>#QGgJ3aP7>ONha{oI#^XZ)#{CXbm@)+Zqa2XQc| zY=U{qYOJrjf$w<6Y|T{Sm(k3OQ(GZk3;4NT63_3<-z{YwE1%wq@;M%jFOGKI|E}$` zg*Wpt9>b}y+1tKRrK);D3D(`Qa_@w)?Fn0(gbwFZGJlK%y#cwswp|O1JZ*oy?ECjo z_s%_KTIpNrg2>jjI}6%B%MvvuIny(+J^3al$;8G0*6p&1v$H+r>YVtxt1G=;p36*VRtmSc!+`t>&WlpP~PMkze\n" "Language-Team: Czech \n" @@ -109,7 +109,7 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Neplatný sipový kontakt!" @@ -176,11 +176,11 @@ msgstr "" msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Příchozí hovor" @@ -1512,19 +1512,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "přerušen" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "dokončen" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "promeškán" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1539,70 +1539,70 @@ msgstr "" "Stav: %s\n" "Délka: %i min %i s\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Odchozí hovor" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Připraven." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Vyhledává se umístění čísla…" -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Toto číslo nelze vyhledat." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" "Špatně zadaná SIP adresa. Adresa má mít tento formát " -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Kontaktuji" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Nelze volat" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů." -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "vás volá" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " a požaduje automatickou zvednutí." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Upravují se parametry hovoru…" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Připojeno." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" @@ -1821,7 +1821,7 @@ msgstr "Registrace na %s selhala: %s" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/de.po b/po/de.po index 44c1e66ea..855048c94 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2012-11-07 19:27+0100\n" "Last-Translator: Gerhard Stengel \n" "Language-Team: German \n" @@ -96,7 +96,7 @@ msgstr "Eigenes Telefon" msgid "Couldn't find pixmap file: %s" msgstr "Pixmapdatei %s kann nicht gefunden werden." -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Ungültiger SIP-Kontakt!" @@ -165,11 +165,11 @@ msgstr "" msgid "Call error" msgstr "Anruf fehlgeschlagen" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Anruf beendet" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Eingehender Anruf" @@ -1492,19 +1492,19 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "abgebrochen" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "beendet" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "entgangen" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1519,23 +1519,23 @@ msgstr "" "Status: %s\n" "Dauer: %i min %i sec\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Abgehender Anruf" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Bereit" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Telefonnummernziel wird gesucht..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Diese Nummer kann nicht aufgelöst werden." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1543,47 +1543,47 @@ msgstr "" "SIP-Adresse kann nicht eingelesen werden. Eine SIP-Adresse hat folgenden " "Aufbau " -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Verbindungsaufbau" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Anruf kann nicht getätigt werden." -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht." -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "ruft Sie an" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " und fragt nach automatischer Antwort." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Die Anrufparameter werden verändert..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Verbunden." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Anruf abgebrochen" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Anruf kann nicht gehalten werden" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Aktueller Anruf wird gehalten..." @@ -1802,7 +1802,7 @@ msgstr "Registrierung auf %s fehlgeschlagen: %s" msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/es.po b/po/es.po index 90fa0f926..474f630f4 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2012-12-06 15:54+0100\n" "Last-Translator: BERAUDO Guillaume \n" "Language-Team: es \n" @@ -101,7 +101,7 @@ msgstr "Yo" msgid "Couldn't find pixmap file: %s" msgstr "No se pudo encontrar el archivo pixmap: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "¡Contacto SIP no válido!" @@ -170,12 +170,12 @@ msgstr "" msgid "Call error" msgstr "Error en la llamada." -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 #, fuzzy msgid "Call ended" msgstr "Llamada terminada" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Llamada entrante" @@ -1572,19 +1572,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "abortada" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "completada" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "perdida" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1599,24 +1599,24 @@ msgstr "" "Estado: %s\n" "Duración: %i min %i seg\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Llamada saliente" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 #, fuzzy msgid "Ready" msgstr "Preparado" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Buscando el número de teléfono del destinatario…" -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "No se ha podido resolver este número." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" @@ -1625,51 +1625,51 @@ msgstr "" "Dirección SIP mal escrita. Una dirección SIP es del tipo " -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 #, fuzzy msgid "Contacting" msgstr "Contactando" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "No se pudo llamar" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Disculpe, se ha alcanzado el máximo número de llamadas simultáneas" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "le está llamando" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "y ha solicitado auto respuesta." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Modificando parámetros de llamada…" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "Llamada abortada" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "No se pudo pausar la llamada" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Pausando la llamada actual..." @@ -1898,7 +1898,7 @@ msgstr "El registro en %s ha fallado." msgid "Authentication token is %s" msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/fr.po b/po/fr.po index 48e85b46b..02c1f8fca 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2013-04-09 13:57+0100\n" "Last-Translator: Simon Morlat \n" "Language-Team: french \n" @@ -15,14 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 -#: ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 #, c-format msgid "Call %s" msgstr "Appeler %s" -#: ../gtk/calllogs.c:140 -#: ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 #, c-format msgid "Send text to %s" msgstr "Chatter avec %s" @@ -62,8 +60,7 @@ msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: ../gtk/calllogs.c:321 -#: ../gtk/calllogs.c:327 +#: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format msgid "%s\t%s" msgstr "" @@ -84,8 +81,7 @@ msgid "" "%s" msgstr "" -#: ../gtk/conference.c:38 -#: ../gtk/main.ui.h:13 +#: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" msgstr "Conférence" @@ -93,15 +89,12 @@ msgstr "Conférence" msgid "Me" msgstr "Moi" -#: ../gtk/support.c:49 -#: ../gtk/support.c:73 -#: ../gtk/support.c:102 +#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/chat.c:324 -#: ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Contact sip invalide !" @@ -130,8 +123,12 @@ msgid "if set automatically answer incoming calls" msgstr "si positionné, répond automatiquement aux appels entrants" #: ../gtk/main.c:134 -msgid "Specifiy a working directory (should be the base of the installation, eg: c:\\Program Files\\Linphone)" -msgstr "Spécifie un répertoire de travail (qui devrait être le répertoire d'installation, par exemple c:\\Program Files\\Linphone)" +msgid "" +"Specifiy a working directory (should be the base of the installation, eg: c:" +"\\Program Files\\Linphone)" +msgstr "" +"Spécifie un répertoire de travail (qui devrait être le répertoire " +"d'installation, par exemple c:\\Program Files\\Linphone)" #: ../gtk/main.c:515 #, c-format @@ -142,12 +139,15 @@ msgstr "Appel avec %s" #, c-format msgid "" "%s would like to add you to his contact list.\n" -"Would you allow him to see your presence status or add him to your contact list ?\n" +"Would you allow him to see your presence status or add him to your contact " +"list ?\n" "If you answer no, this person will be temporarily blacklisted." msgstr "" "%s souhaite vous ajouter à sa liste de contact.\n" -"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter à votre liste également ?\n" -"Si vous répondez non, cette personne sera mise temporairement sur liste noire." +"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter " +"à votre liste également ?\n" +"Si vous répondez non, cette personne sera mise temporairement sur liste " +"noire." #: ../gtk/main.c:1023 #, c-format @@ -162,24 +162,19 @@ msgstr "" msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1129 -#: ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1132 -#: ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1134 -#: ../gtk/incall_view.c:497 -#: ../gtk/main.ui.h:5 +#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1136 -#: ../gtk/main.ui.h:6 +#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Refuser" @@ -210,8 +205,7 @@ msgstr "Linphone - un téléphone video pour l'internet" msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1796 -#: ../coreapi/callbacks.c:810 +#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" @@ -236,9 +230,7 @@ msgstr "Ajouter au carnet d'adresse" msgid "Presence status" msgstr "Info de présence" -#: ../gtk/friendlist.c:661 -#: ../gtk/propertybox.c:367 -#: ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nom" @@ -291,13 +283,11 @@ msgstr "Débit min. (kbit/s)" msgid "Parameters" msgstr "Paramètres" -#: ../gtk/propertybox.c:435 -#: ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "Activé" -#: ../gtk/propertybox.c:437 -#: ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "Désactivé" @@ -378,8 +368,11 @@ msgid "Serbian" msgstr "Serbe" #: ../gtk/propertybox.c:848 -msgid "You need to restart linphone for the new language selection to take effect." -msgstr "La nouvelle selection de langue prendra effet au prochain démarrage de linphone." +msgid "" +"You need to restart linphone for the new language selection to take effect." +msgstr "" +"La nouvelle selection de langue prendra effet au prochain démarrage de " +"linphone." #: ../gtk/propertybox.c:934 msgid "None" @@ -400,7 +393,8 @@ msgid "" "Would you like to open a browser to download it ?" msgstr "" "Une version plus récente est disponible sur %s.\n" -"Voulez vous ouvrir le navigateur afin de pouvoir télécharger la dernière version ?" +"Voulez vous ouvrir le navigateur afin de pouvoir télécharger la dernière " +"version ?" #: ../gtk/update.c:91 msgid "You are running the lastest version." @@ -461,8 +455,7 @@ msgstr "Entrez votre identifiant linphone.org" msgid "Username:" msgstr "Nom d'utilisateur:" -#: ../gtk/setupwizard.c:94 -#: ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 msgid "Password:" msgstr "Mot de passe:" @@ -511,7 +504,8 @@ msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -"Erreur, le compte n'est pas validé, l'identifiant est déjà utilisé ou le serveur n'est pas accessible.\n" +"Erreur, le compte n'est pas validé, l'identifiant est déjà utilisé ou le " +"serveur n'est pas accessible.\n" "Merci d'essayer à nouveau." #: ../gtk/setupwizard.c:380 @@ -520,10 +514,12 @@ msgstr "Merci. Votre compte est maintenant configuré et prêt à être utilisé #: ../gtk/setupwizard.c:388 msgid "" -"Please validate your account by clicking on the link we just sent you by email.\n" +"Please validate your account by clicking on the link we just sent you by " +"email.\n" "Then come back here and press Next button." msgstr "" -"Merci de valider votre compte en cliquant sur le lien que nous avons envoyé par email.\n" +"Merci de valider votre compte en cliquant sur le lien que nous avons envoyé " +"par email.\n" "Puis appuyez sur suivant." #: ../gtk/setupwizard.c:564 @@ -558,8 +554,7 @@ msgstr "Erreur" msgid "Terminating" msgstr "En cours d’arrêt." -#: ../gtk/incall_view.c:70 -#: ../gtk/incall_view.c:94 +#: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format msgid "Call #%i" msgstr "Appel #%i" @@ -569,8 +564,7 @@ msgstr "Appel #%i" msgid "Transfer to call #%i with %s" msgstr "Transférer vers l'appel #%i avec %s" -#: ../gtk/incall_view.c:210 -#: ../gtk/incall_view.c:213 +#: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 #, fuzzy msgid "Not used" msgstr "Non trouvé" @@ -621,13 +615,11 @@ msgstr "uPnP en cours d’exécution" msgid "uPnP failed" msgstr "uPnP a échoué." -#: ../gtk/incall_view.c:256 -#: ../gtk/incall_view.c:257 +#: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 msgid "Direct or through server" msgstr "Directe ou via un serveur" -#: ../gtk/incall_view.c:259 -#: ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format msgid "" "download: %f\n" @@ -639,8 +631,7 @@ msgstr "" msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 -#: ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Raccrocher" @@ -648,8 +639,7 @@ msgstr "Raccrocher" msgid "Calling..." msgstr "Tentative d'appel..." -#: ../gtk/incall_view.c:479 -#: ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 msgid "00::00::00" msgstr "" @@ -677,8 +667,7 @@ msgstr "très faible" msgid "too bad" msgstr "nulle" -#: ../gtk/incall_view.c:536 -#: ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 msgid "unavailable" msgstr "indisponible" @@ -695,8 +684,7 @@ msgstr "Sécurisé par ZRTP- [jeton: %s]" msgid "Set unverified" msgstr "Marquer comme non vérifié" -#: ../gtk/incall_view.c:663 -#: ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Marquer comme vérifié" @@ -737,8 +725,7 @@ msgstr "Transfert échoué" msgid "Resume" msgstr "Reprendre" -#: ../gtk/incall_view.c:835 -#: ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" @@ -843,13 +830,11 @@ msgstr "Démarrer un nouvel appel" msgid "Contacts" msgstr "Contacts" -#: ../gtk/main.ui.h:28 -#: ../gtk/parameters.ui.h:50 +#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 msgid "Add" msgstr "Ajouter" -#: ../gtk/main.ui.h:29 -#: ../gtk/parameters.ui.h:51 +#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 msgid "Edit" msgstr "Editer" @@ -873,13 +858,11 @@ msgstr "Appels récents" msgid "My current identity:" msgstr "Mon identité sip:" -#: ../gtk/main.ui.h:35 -#: ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Nom d'utilisateur" -#: ../gtk/main.ui.h:36 -#: ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Mot de passe" @@ -1066,8 +1049,7 @@ msgstr "Codecs audio" msgid "Video codecs" msgstr "Codecs vidéo" -#: ../gtk/parameters.ui.h:7 -#: ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" @@ -1218,7 +1200,9 @@ msgstr "Paramètres multimedia" #: ../gtk/parameters.ui.h:44 msgid "This section defines your SIP address when not using a SIP account" -msgstr "Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de compte SIP" +msgstr "" +"Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de " +"compte SIP" #: ../gtk/parameters.ui.h:45 msgid "Your display name (eg: John Doe):" @@ -1260,13 +1244,11 @@ msgstr "Sécurité" msgid "Manage SIP Accounts" msgstr "Gérer mes comptes SIP" -#: ../gtk/parameters.ui.h:57 -#: ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Activer" -#: ../gtk/parameters.ui.h:58 -#: ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Désactiver" @@ -1291,8 +1273,13 @@ msgid "Enable adaptive rate control" msgstr "Activer le control de débit adaptatif." #: ../gtk/parameters.ui.h:64 -msgid "Adaptive rate control is a technique to dynamically guess the available bandwidth during a call." -msgstr "Le control de débit adaptatif est une technique pour adapter la qualité de l'audio et de la video en fonction de la bande passante disponible, durant l'appel." +msgid "" +"Adaptive rate control is a technique to dynamically guess the available " +"bandwidth during a call." +msgstr "" +"Le control de débit adaptatif est une technique pour adapter la qualité " +"de l'audio et de la video en fonction de la bande passante disponible, " +"durant l'appel." #: ../gtk/parameters.ui.h:65 msgid "Bandwidth control" @@ -1481,19 +1468,19 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "abandonné" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "terminé" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "manqué" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1508,67 +1495,70 @@ msgstr "" "Etat: %s\n" "Durée: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Appel sortant" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Prêt." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Recherche de la destination du numéro de téléphone..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "La destination n'a pu être trouvée." -#: ../coreapi/linphonecore.c:2231 -msgid "Could not parse given sip address. A sip url usually looks like sip:user@domain" -msgstr "Adresse SIP mal formulée. Une address sip ressemble à " +#: ../coreapi/linphonecore.c:2252 +msgid "" +"Could not parse given sip address. A sip url usually looks like sip:" +"user@domain" +msgstr "" +"Adresse SIP mal formulée. Une address sip ressemble à " -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Appel de" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Echec de l'appel" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Désolé, le nombre maximum d'appels simultanés est atteint." -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "vous appelle" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "et sollicite un décrochage automatique." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Modifications des paramètres d'appels..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "En ligne." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Appel abandonné" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "La mise en attente a échoué" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Mise en attente de l'appel..." @@ -1654,8 +1644,12 @@ msgid "Unknown-bug" msgstr "Bug inconnu" #: ../coreapi/proxy.c:204 -msgid "The sip proxy address you entered is invalid, it must start with \"sip:\" followed by a hostname." -msgstr "L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine." +msgid "" +"The sip proxy address you entered is invalid, it must start with \"sip:\" " +"followed by a hostname." +msgstr "" +"L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie " +"par un nom de domaine." #: ../coreapi/proxy.c:210 msgid "" @@ -1663,7 +1657,8 @@ msgid "" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" "L'identité SIP que vous avez fourni est invalide.\n" -"Elle doit être de la forme sip:username@domain, comme par example sip:alice@example.net" +"Elle doit être de la forme sip:username@domain, comme par example sip:" +"alice@example.net" #: ../coreapi/proxy.c:1069 #, c-format @@ -1784,7 +1779,7 @@ msgstr "Echec de l'enregistrement sur %s: %s" msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/he.po b/po/he.po index b8b2895b8..32e51337c 100644 --- a/po/he.po +++ b/po/he.po @@ -2,16 +2,16 @@ # Copyright (C) Belledonne Communications,2010 # This file is distributed under the same license as the linphone package. # Eli Zaretskii , 2012. -# Isratine Citizen , 2012. +# Isratine Citizen , 2012, 2013. # msgid "" msgstr "" -"Project-Id-Version: Linphone 3.5.2\n" +"Project-Id-Version: Linphone 3.5.99.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-08 16:59+0200\n" -"PO-Revision-Date: 2012-12-27 10:14+0200\n" +"PO-Revision-Date: 2013-04-24 21:31+0200\n" "Last-Translator: Isratine Citizen \n" -"Language-Team: Rahut \n" +"Language-Team: Rahut Project \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,29 +31,25 @@ msgid "Send text to %s" msgstr "שלח טקסט אל %s" #: ../gtk/calllogs.c:223 -#, fuzzy, c-format +#, c-format msgid "Recent calls (%i)" -msgstr "בשיחה כעת" +msgstr "שיחות אחרונות (%i)" #: ../gtk/calllogs.c:300 msgid "n/a" msgstr "לא זמין (n/a)" #: ../gtk/calllogs.c:303 -#, fuzzy msgid "Aborted" msgstr "ננטשה" #: ../gtk/calllogs.c:306 -#, fuzzy msgid "Missed" msgstr "הוחמצה" -# דחיה #: ../gtk/calllogs.c:309 -#, fuzzy msgid "Declined" -msgstr "לדחות" +msgstr "נדחתה" #: ../gtk/calllogs.c:315 #, c-format @@ -70,29 +66,25 @@ msgstr[0] "שניה %i" msgstr[1] "%i שניות" #: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 -#, fuzzy, c-format +#, c-format msgid "%s\t%s" msgstr "" -"%s\t%s\tאיכות: %s\n" -"%s\t%s %s\t" #: ../gtk/calllogs.c:323 -#, fuzzy, c-format +#, c-format msgid "" "%s\tQuality: %s\n" "%s\t%s\t" msgstr "" -"%s\t%s\tאיכות: %s\n" -"%s\t%s %s\t" +"%s\tאיכות: %s\n" +"%s\t%s\t" #: ../gtk/calllogs.c:329 -#, fuzzy, c-format +#, c-format msgid "" "%s\t\n" "%s" msgstr "" -"%s\t%s\tאיכות: %s\n" -"%s\t%s %s\t" #: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" @@ -124,9 +116,11 @@ msgstr "רשום אל stdout מידע ניפוי שגיאות מסוים בזמ msgid "path to a file to write logs into." msgstr "נתיב אל קובץ שברצונך לרשום אליו את הרשומות." +# cli #: ../gtk/main.c:106 +#, fuzzy msgid "Start linphone with video disabled." -msgstr "" +msgstr "התחל את לינפון עם וידאו מנוטרל." # cli #: ../gtk/main.c:113 @@ -214,14 +208,14 @@ msgid "Call paused" msgstr "שיחה הושהתה" #: ../gtk/main.c:1142 -#, fuzzy, c-format +#, c-format msgid "by %s" -msgstr "Ports utilisés" +msgstr "על ידי %s" #: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" -msgstr "" +msgstr "‏%s רוצה להתחיל וידאו. האם אתה מסכים ?" #: ../gtk/main.c:1353 msgid "Website link" @@ -232,10 +226,11 @@ msgstr "קישור אתר רשת" msgid "Linphone - a video internet phone" msgstr "‫Linphone - וידאופון אינטרנטי" +# משתמטת #: ../gtk/main.c:1494 #, c-format msgid "%s (Default)" -msgstr "‫%s (משתמטת)" +msgstr "‫%s (ברירת מחדל)" #: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 #, c-format @@ -249,7 +244,7 @@ msgid "" "You won't be able to send or receive audio calls." msgstr "" "לא אותרו כרטיסי קול במחשב זה.\n" -"לא תהיה ביכולתך לשלוח או לקבל שיחות שמע." +"לא תהיה ביכולתך לשלוח או לקבל שיחות אודיו." #: ../gtk/main.c:1911 msgid "A free SIP video-phone" @@ -273,7 +268,7 @@ msgstr "קריאה" #: ../gtk/friendlist.c:678 msgid "Chat" -msgstr "" +msgstr "שיחה" # a name or a number #: ../gtk/friendlist.c:708 @@ -292,9 +287,9 @@ msgid "Delete contact '%s'" msgstr "מחק איש קשר '%s'" #: ../gtk/friendlist.c:926 -#, fuzzy, c-format +#, c-format msgid "Delete chat history of '%s'" -msgstr "מחק איש קשר '%s'" +msgstr "מחק היסטוריית שיחה של '%s'" #: ../gtk/friendlist.c:977 #, c-format @@ -319,10 +314,12 @@ msgstr "קצב נתונים מינימלי (קי״ב/שנ׳)" msgid "Parameters" msgstr "פרמטרים" +# מאופשר #: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 msgid "Enabled" msgstr "מופעל" +# מנוטרל #: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 msgid "Disabled" msgstr "לא מופעל" @@ -399,11 +396,11 @@ msgstr "norsk" #: ../gtk/propertybox.c:780 msgid "Hebrew" -msgstr "" +msgstr "עברית" #: ../gtk/propertybox.c:781 msgid "Serbian" -msgstr "" +msgstr "српски srpski" # selected הנבחרת #: ../gtk/propertybox.c:848 @@ -548,7 +545,6 @@ msgstr "" "שגיאה, חשבון לא אומת, שם משתמש כבר בשימוש או שרת לא ניתן להשגה.\n" "נא לחזור ולנסות שוב." -# תודה רבה #: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." msgstr "תודה לך. חשבונך מוגדר ומוכן לשימוש כעת." @@ -610,63 +606,56 @@ msgid "Transfer to call #%i with %s" msgstr "העברה אל שיחה מס׳ %i עם %s" #: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 -#, fuzzy msgid "Not used" -msgstr "לא נמצא" +msgstr "לא בשימוש" #: ../gtk/incall_view.c:220 msgid "ICE not activated" -msgstr "" +msgstr "‏ICE לא מופעלת" #: ../gtk/incall_view.c:222 -#, fuzzy msgid "ICE failed" -msgstr "קריאה נכשלה." +msgstr "‏ICE נכשלה" #: ../gtk/incall_view.c:224 msgid "ICE in progress" -msgstr "" +msgstr "‏ICE מצויה כעת בעיצומה" #: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" -msgstr "" +msgstr "עובר דרך NAT אחד או יותר" #: ../gtk/incall_view.c:228 -#, fuzzy msgid "Direct" -msgstr "מכוון מחדש" +msgstr "ישיר" #: ../gtk/incall_view.c:230 msgid "Through a relay server" -msgstr "" +msgstr "דרך שרת ממסר" #: ../gtk/incall_view.c:238 msgid "uPnP not activated" -msgstr "" +msgstr "‏uPnP לא מופעלת" -# במהלך (או) באמצע חיפוש... #: ../gtk/incall_view.c:240 -#, fuzzy msgid "uPnP in progress" -msgstr "בדיקת STUN מצויה כעת בעיצומה..." +msgstr "‏uPnP מצויה כעת בעיצומה" #: ../gtk/incall_view.c:242 -#, fuzzy msgid "uPnp not available" -msgstr "לא זמינה" +msgstr "‏uPnp לא זמינה" #: ../gtk/incall_view.c:244 msgid "uPnP is running" -msgstr "" +msgstr "‏uPnP מורצת כעת" #: ../gtk/incall_view.c:246 -#, fuzzy msgid "uPnP failed" -msgstr "קריאה נכשלה." +msgstr "‏uPnP נכשלה" #: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 msgid "Direct or through server" -msgstr "" +msgstr "ישיר או דרך שרת" #: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format @@ -674,15 +663,17 @@ msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" +"הורדה: %f\n" +"העלאה: %f (קי״ב/שנ׳)" #: ../gtk/incall_view.c:286 -#, fuzzy, c-format +#, c-format msgid "%.3f seconds" -msgstr "שניה %i" +msgstr "%.3f שניות" #: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" -msgstr "" +msgstr "נתק" #: ../gtk/incall_view.c:476 msgid "Calling..." @@ -767,25 +758,23 @@ msgstr "שיחה הסתיימה." #: ../gtk/incall_view.c:778 msgid "Transfer in progress" -msgstr "" +msgstr "העברה מצויה כעת בעיצומה" #: ../gtk/incall_view.c:781 -#, fuzzy msgid "Transfer done." -msgstr "העברה" +msgstr "העברה הסתיימה." #: ../gtk/incall_view.c:784 -#, fuzzy msgid "Transfer failed." -msgstr "העברה" +msgstr "העברה נכשלה." #: ../gtk/incall_view.c:828 msgid "Resume" -msgstr "חזרה" +msgstr "חזור" #: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 msgid "Pause" -msgstr "השהיה" +msgstr "השהה" #: ../gtk/incall_view.c:900 #, c-format @@ -793,11 +782,12 @@ msgid "" "Recording into\n" "%s %s" msgstr "" +"מקליט אל תוך\n" +"%s %s" #: ../gtk/incall_view.c:900 -#, fuzzy msgid "(Paused)" -msgstr "השהיה" +msgstr "(מושהה)" #: ../gtk/loginframe.c:93 #, c-format @@ -808,32 +798,32 @@ msgstr "נא להזין מידע התחברות עבור %s" # זה ש: נתקשר או מתוקשר או הותקשר? #: ../gtk/main.ui.h:1 msgid "Callee name" -msgstr "שם המקבל" +msgstr "שם מקבל" +# שגר #: ../gtk/main.ui.h:2 msgid "Send" -msgstr "שיגור" +msgstr "שלח" #: ../gtk/main.ui.h:3 -#, fuzzy msgid "End conference" -msgstr "בשיחת ועידה" +msgstr "סיים ועידה" #: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" -msgstr "" +msgstr "הקלט את שיחה זו אל קובץ אודיו" #: ../gtk/main.ui.h:8 msgid "Video" -msgstr "" +msgstr "וידאו" #: ../gtk/main.ui.h:10 msgid "Mute" -msgstr "" +msgstr "השתק" #: ../gtk/main.ui.h:11 msgid "Transfer" -msgstr "העברה" +msgstr "העבר" #: ../gtk/main.ui.h:14 msgid "In call" @@ -853,7 +843,7 @@ msgstr "_אפשרויות" #: ../gtk/main.ui.h:18 msgid "Always start video" -msgstr "" +msgstr "התחל תמיד וידאו" #: ../gtk/main.ui.h:19 msgid "Enable self-view" @@ -885,7 +875,7 @@ msgstr "כתובת SIP או מספר טלפון" #: ../gtk/main.ui.h:26 msgid "Initiate a new call" -msgstr "התחלת שיחה חדשה" +msgstr "התחל שיחה חדשה" #: ../gtk/main.ui.h:27 msgid "Contacts" @@ -909,7 +899,7 @@ msgstr "הוסף אנשי קשר מן מדור" #: ../gtk/main.ui.h:32 msgid "Add contact" -msgstr "הוספת איש קשר" +msgstr "הוסף איש קשר" # קריאות אחרונות #: ../gtk/main.ui.h:33 @@ -969,7 +959,7 @@ msgstr "ברירת מחדל" #: ../gtk/main.ui.h:46 msgid "Delete" -msgstr "" +msgstr "מחק" #: ../gtk/about.ui.h:1 msgid "About linphone" @@ -1035,7 +1025,7 @@ msgstr "נא להזין את סיסמת המתחם" #: ../gtk/password.ui.h:3 msgid "UserID" -msgstr "זהות משתמש (‫UID)" +msgstr "מזהה משתמש" # קריאות #: ../gtk/call_logs.ui.h:1 @@ -1113,7 +1103,7 @@ msgstr "" #: ../gtk/parameters.ui.h:5 msgid "Audio codecs" -msgstr "קודקים של שמע" +msgstr "קודקים של אודיו" #: ../gtk/parameters.ui.h:6 msgid "Video codecs" @@ -1125,15 +1115,15 @@ msgstr "" #: ../gtk/parameters.ui.h:8 msgid "SIP (UDP)" -msgstr "" +msgstr "‏SIP ‏(UDP)" #: ../gtk/parameters.ui.h:9 msgid "SIP (TCP)" -msgstr "" +msgstr "‏SIP ‏(TCP)" #: ../gtk/parameters.ui.h:10 msgid "SIP (TLS)" -msgstr "" +msgstr "‏SIP ‏(TLS)" #: ../gtk/parameters.ui.h:11 msgid "Settings" @@ -1167,29 +1157,27 @@ msgstr "וידאו RTP/UDP:" #: ../gtk/parameters.ui.h:18 msgid "Audio RTP/UDP:" -msgstr "שמע RTP/UDP:" +msgstr "אודיו RTP/UDP:" #: ../gtk/parameters.ui.h:19 msgid "DSCP fields" -msgstr "" +msgstr "שדות DSCP" #: ../gtk/parameters.ui.h:20 msgid "Fixed" -msgstr "" +msgstr "מקובע" -# מנהרה #: ../gtk/parameters.ui.h:21 msgid "Tunnel" -msgstr "" +msgstr "מינהור" #: ../gtk/parameters.ui.h:22 -#, fuzzy msgid "Media encryption is mandatory" -msgstr "סוג הצפנת מדיה" +msgstr "הצפנת מדיה הינה מנדטורית" #: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" -msgstr "פרוטוקולי רשת עבודה ופורטים" +msgstr "פרוטוקולי רשת תקשורת ופורטים" #: ../gtk/parameters.ui.h:24 msgid "Direct connection to the Internet" @@ -1197,31 +1185,30 @@ msgstr "חיבור ישיר אל האינטרנט" #: ../gtk/parameters.ui.h:25 msgid "Behind NAT / Firewall (specify gateway IP below)" -msgstr "מאחורי NAT \\ חומת־אש (ציון כתובת שער (Gateway IP) למטה)" +msgstr "מאחורי NAT / חומת אש (ציון כתובת שער (Gateway IP) למטה)" #: ../gtk/parameters.ui.h:26 msgid "Public IP address:" msgstr "כתובת IP פומבית:" +# ניצול STUN # שימוש ב־STUN # utilize #: ../gtk/parameters.ui.h:27 msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" +msgstr "מאחורי NAT / חומת אש (בעזרת STUN לפתירה)" # שימוש ב־STUN # utilize #: ../gtk/parameters.ui.h:28 -#, fuzzy msgid "Behind NAT / Firewall (use ICE)" -msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" +msgstr "מאחורי NAT / חומת אש (בעזרת ICE)" # שימוש ב־STUN # utilize #: ../gtk/parameters.ui.h:29 -#, fuzzy msgid "Behind NAT / Firewall (use uPnP)" -msgstr "מאחורי NAT \\ חומת־אש (ניצול STUN)" +msgstr "מאחורי NAT / חומת אש (בעזרת uPnP)" #: ../gtk/parameters.ui.h:30 msgid "Stun server:" @@ -1233,7 +1220,7 @@ msgstr "‫NAT וחומת אש" #: ../gtk/parameters.ui.h:32 msgid "Network settings" -msgstr "הגדרות רשת עבודה" +msgstr "הגדרות רשת תקשורת" #: ../gtk/parameters.ui.h:33 msgid "Ring sound:" @@ -1261,7 +1248,7 @@ msgstr "אפשר ביטול הד" #: ../gtk/parameters.ui.h:39 msgid "Audio" -msgstr "שמע" +msgstr "אודיו" #: ../gtk/parameters.ui.h:40 msgid "Video input device:" @@ -1342,12 +1329,12 @@ msgstr "קודקים" msgid "0 stands for \"unlimited\"" msgstr "0 מסמל \"בלי הגבלה\"" -# האם KiB means kibibyte? +# does KiB mean kibibyte? #: ../gtk/parameters.ui.h:61 msgid "Upload speed limit in Kbit/sec:" msgstr "מגבלת מהירות העלאה בקי״ב/שנ׳:" -# האם KiB means kibibyte? +# האם KiB זה kibibyte? # קי״ב (1024) אל מול ק״ב (1000) #: ../gtk/parameters.ui.h:62 msgid "Download speed limit in Kbit/sec:" @@ -1418,89 +1405,80 @@ msgid "Please wait" msgstr "נא להמתין" #: ../gtk/dscp_settings.ui.h:1 -#, fuzzy msgid "Dscp settings" -msgstr "הגדרות" +msgstr "הגדרות Dscp" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" msgstr "" #: ../gtk/dscp_settings.ui.h:3 -#, fuzzy msgid "Audio RTP stream" -msgstr "שמע RTP/UDP:" +msgstr "זרם RTP אודיו" #: ../gtk/dscp_settings.ui.h:4 -#, fuzzy msgid "Video RTP stream" -msgstr "וידאו RTP/UDP:" +msgstr "זרם RTP וידאו" #: ../gtk/dscp_settings.ui.h:5 msgid "Set DSCP values (in hexadecimal)" -msgstr "" +msgstr "קבע ערכי DSCP (בהקסדצימלי)" #: ../gtk/call_statistics.ui.h:1 msgid "Call statistics" -msgstr "" +msgstr "סטטיסטיקות שיחה" #: ../gtk/call_statistics.ui.h:2 -#, fuzzy msgid "Audio codec" -msgstr "קודקים של שמע" +msgstr "קודק של אודיו" #: ../gtk/call_statistics.ui.h:3 -#, fuzzy msgid "Video codec" -msgstr "קודקים של וידאו" +msgstr "קודק של וידאו" #: ../gtk/call_statistics.ui.h:4 msgid "Audio IP bandwidth usage" -msgstr "" +msgstr "ניצול רוחב פס IP אודיו" #: ../gtk/call_statistics.ui.h:5 -#, fuzzy msgid "Audio Media connectivity" -msgstr "סוג הצפנת מדיה" +msgstr "קישוריות מדיום אודיו" #: ../gtk/call_statistics.ui.h:6 msgid "Video IP bandwidth usage" -msgstr "" +msgstr "ניצול רוחב פס IP וידאו" #: ../gtk/call_statistics.ui.h:7 -#, fuzzy msgid "Video Media connectivity" -msgstr "סוג הצפנת מדיה" +msgstr "קישוריות מדיום וידאו" #: ../gtk/call_statistics.ui.h:8 msgid "Round trip time" -msgstr "" +msgstr "זמן הלוך ושוב" #: ../gtk/call_statistics.ui.h:9 -#, fuzzy msgid "Call statistics and information" -msgstr "מידע איש קשר" +msgstr "סטטיסטיקות ומידע שיחה" #: ../gtk/tunnel_config.ui.h:1 -#, fuzzy msgid "Configure VoIP tunnel" -msgstr "הגדרת חשבון ‫SIP" +msgstr "הגדר תיעול VoIP" #: ../gtk/tunnel_config.ui.h:2 msgid "Host" -msgstr "" +msgstr "מארח" #: ../gtk/tunnel_config.ui.h:3 msgid "Port" -msgstr "" +msgstr "פורט" #: ../gtk/tunnel_config.ui.h:6 msgid "Configure tunnel" -msgstr "" +msgstr "הגדר מינהור" #: ../gtk/tunnel_config.ui.h:9 msgid "Configure http proxy (optional)" -msgstr "" +msgstr "הגדר http proxy (רשות)" #: ../gtk/keypad.ui.h:1 msgid "D" @@ -1520,15 +1498,15 @@ msgstr "" #: ../gtk/keypad.ui.h:6 msgid "9" -msgstr "9 (סעפ)" +msgstr "9 [סעפ]" #: ../gtk/keypad.ui.h:7 msgid "8" -msgstr "8 (צק)" +msgstr "8 [צק]" #: ../gtk/keypad.ui.h:8 msgid "7" -msgstr "7 (רשת)" +msgstr "7 [רשת]" #: ../gtk/keypad.ui.h:9 msgid "B" @@ -1536,15 +1514,15 @@ msgstr "" #: ../gtk/keypad.ui.h:10 msgid "6" -msgstr "6 (זחט)" +msgstr "6 [זחט]" #: ../gtk/keypad.ui.h:11 msgid "5" -msgstr "5 (יכל)" +msgstr "5 [יכל]" #: ../gtk/keypad.ui.h:12 msgid "4" -msgstr "4 (מנ)" +msgstr "4 [מנ]" #: ../gtk/keypad.ui.h:13 msgid "A" @@ -1552,11 +1530,11 @@ msgstr "" #: ../gtk/keypad.ui.h:14 msgid "3" -msgstr "3 (אבג)" +msgstr "3 [אבג]" #: ../gtk/keypad.ui.h:15 msgid "2" -msgstr "2 (דהו)" +msgstr "2 [דהו]" #: ../gtk/keypad.ui.h:16 msgid "1" @@ -1692,7 +1670,7 @@ msgstr "בדיקת STUN מצויה כעת בעיצומה..." #: ../coreapi/misc.c:630 msgid "ICE local candidates gathering in progress..." -msgstr "" +msgstr "צבירת מועמדים מקומיים של ICE מצויה כעת בעיצומה..." #: ../coreapi/friend.c:33 msgid "Online" @@ -1745,14 +1723,14 @@ msgstr "בהמתנה" #: ../coreapi/friend.c:66 msgid "Unknown-bug" -msgstr "תקלה לא ידועה" +msgstr "תקלה לא מוכרת" #: ../coreapi/proxy.c:204 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -"כתובת sip proxy שהוזנה הינה שגויה, זו צריכה להתחיל עם‭\"sip:\" ‬ לאחר שם מארח." +"כתובת sip proxy שהזנת הינה שגויה, זו צריכה להתחיל עם‭\"sip:\" ‬ לאחר שם מארח." # כמו למשל #: ../coreapi/proxy.c:210 @@ -1806,24 +1784,21 @@ msgstr "קריאה נענתה על ידי %s." # אי תאימות # אי התאמה #: ../coreapi/callbacks.c:412 -#, fuzzy msgid "Incompatible, check codecs or security settings..." -msgstr "חוסר תאימות, נא לבדוק קודקים..." +msgstr "חוסר תאימות, בדוק קודקים או הגדרות אבטחה..." #: ../coreapi/callbacks.c:460 -#, fuzzy msgid "We have been resumed." -msgstr "חזרנו..." +msgstr "חזרנו." #: ../coreapi/callbacks.c:469 msgid "We are paused by other party." -msgstr "" +msgstr "אנו מושהים על ידי צד אחר." # באופן מרוחק #: ../coreapi/callbacks.c:475 -#, fuzzy msgid "Call is updated by remote." -msgstr "שיחה עודכנה מרחוק..." +msgstr "שיחה עודכנה מרחוק." #: ../coreapi/callbacks.c:544 msgid "Call terminated." @@ -1862,9 +1837,8 @@ msgstr "מכוון מחדש" # אי תאימות # אי התאמה #: ../coreapi/callbacks.c:627 -#, fuzzy msgid "Incompatible media parameters." -msgstr "חוסר תאימות, נא לבדוק קודקים..." +msgstr "פרמטריי מדיה חסרי תואמים." #: ../coreapi/callbacks.c:633 msgid "Call failed." diff --git a/po/hu.po b/po/hu.po index 256e7ffba..65bbb3e7b 100644 --- a/po/hu.po +++ b/po/hu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2013-03-26 19:00+0100\n" "Last-Translator: Viktor \n" "Language-Team: \n" @@ -98,7 +98,7 @@ msgstr "én" msgid "Couldn't find pixmap file: %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Érvénytelen sip partner !" @@ -165,11 +165,11 @@ msgstr "" msgid "Call error" msgstr "Hiba a hívás közben" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Hívás vége" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Beérkező hívás" @@ -1475,19 +1475,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "megszakítva" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "befejezve" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "elhibázva" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1502,70 +1502,70 @@ msgstr "" "Állapot: %s\n" "Időtartam: %i perc %i másodperc\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Kimenő hívás" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Kész" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Telefonszám-cél keresése..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Nem sikkerült értelmezni a számot." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" "Az adott szám nem értelmezhető. Egy sip cím általában így néz ki: user@domain" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Kapcsolódás" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Nem sikerült hívni" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Elnézést, elértük a egyidejű hívások maximális számát" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "kapcsolatba lépett veled." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "és automatikus választ kért." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "A hívási jellemzők módosítása..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Kapcsolódva." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Hívás megszakítva" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Nem sikerült várakoztatni a hívást" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Jelenlegi hívás várakoztatásának aktiválása..." @@ -1784,7 +1784,7 @@ msgstr "A regisztáció a %s -n nem sikerült: %s" msgid "Authentication token is %s" msgstr "Hitelesítési jel: %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/it.po b/po/it.po index f1c29e8b0..e7c8cfc13 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2002-10-15 HO:MI+ZONE\n" "Last-Translator: Matteo Piazza \n" "Language-Team: it \n" @@ -98,7 +98,7 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Contatto SIP non valido" @@ -161,11 +161,11 @@ msgstr "Prego inserire la password per username %s e dominio %s" msgid "Call error" msgstr "Cronologia" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Chiamata terminata" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Chimata in entrata" @@ -1505,19 +1505,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "comletato" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "mancante" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1532,23 +1532,23 @@ msgstr "" "Stato: %s\n" "Durata: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Chiamata in uscita" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Pronto" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Ricerca numero destinazione..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Impossibile risolvere il numero." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1556,51 +1556,51 @@ msgstr "" "Errore nel formato del contatto sip. Usualmente un indirizzo appare sip:" "user@domain" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "In connessione" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "ti sta conttatando." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Connessione" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 #, fuzzy msgid "Could not pause the call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 #, fuzzy msgid "Pausing the current call..." msgstr "Mostra chiamata corrente" @@ -1822,7 +1822,7 @@ msgstr "Registrazione su %s fallita: %s" msgid "Authentication token is %s" msgstr "Linphone - Autenticazione richiesta" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/ja.po b/po/ja.po index 668018fd1..56362238b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2003-01-21 00:05+9000\n" "Last-Translator: YAMAGUCHI YOSHIYA \n" "Language-Team: \n" @@ -96,7 +96,7 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "pixmapファイルが見つかりません %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "" @@ -156,12 +156,12 @@ msgstr "" msgid "Call error" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 #, fuzzy msgid "Call ended" msgstr "通話は拒否されました。" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "" @@ -1516,19 +1516,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1538,24 +1538,24 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 #, fuzzy msgid "Ready" msgstr "準備完了。" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" @@ -1564,51 +1564,51 @@ msgstr "" "SIPアドレスの形式エラーです。SIPアドレスは、のような" "形式です。" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 #, fuzzy msgid "Contacting" msgstr "接続中" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "から電話です。" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "接続しました。" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "通話はキャンセルされました。" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "" @@ -1832,7 +1832,7 @@ msgstr "登録しました。" msgid "Authentication token is %s" msgstr "コーデックの情報" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/nb_NO.po b/po/nb_NO.po index 8b7f20c28..470e0d024 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2011-04-05 01:56+0200\n" "Last-Translator: Øyvind Sæther \n" "Language-Team: Norwegian Bokmål \n" @@ -98,7 +98,7 @@ msgstr "Skru mikrofonen av" msgid "Couldn't find pixmap file: %s" msgstr "Fant ikke pixmap fli: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Ugyldig SIP kontakt !" @@ -166,11 +166,11 @@ msgstr "" msgid "Call error" msgstr "Samtalehistorikk" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Samtale avsluttet" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Innkommende samtale" @@ -1498,19 +1498,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "avbrutt" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "Fullført" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "ubesvart" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1525,23 +1525,23 @@ msgstr "" "Status: %s\n" "Lengde: %i min %i sek\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Utgående samtale" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Klar" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Ser etter telefonnummer for destinasjonen..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Kan ikke tilkoble dette nummeret." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1549,47 +1549,47 @@ msgstr "" "Klarer ikke å tolke angitt SIP-adresse. En SIP-adresse er vanligvis ut som " "sip: brukernavn@domenenavn" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Tilknytter" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Kunne ikke ringe" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Beklager, du har nådd maksimalt antall samtidige samtaler" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "Kontakter deg." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " og ba om autosvar." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Endrer ringeparametre..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Tilkoblet" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Samtale avbrutt" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Kunne ikke pause samtalen" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Pauser nåværende samtale" @@ -1810,7 +1810,7 @@ msgstr "Registrering hos %s mislykkes: %s" msgid "Authentication token is %s" msgstr "Autorisering kreves" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/nl.po b/po/nl.po index 8cfe7febd..fcd4ca42b 100644 --- a/po/nl.po +++ b/po/nl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: nl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2007-09-05 10:40+0200\n" "Last-Translator: Hendrik-Jan Heins \n" "Language-Team: Nederlands \n" @@ -99,7 +99,7 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "" @@ -159,11 +159,11 @@ msgstr "" msgid "Call error" msgstr "Linphone - Oproepgeschiedenis" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Oproep beeindigd" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Inkomende oproep" @@ -1527,19 +1527,19 @@ msgstr "" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "voltooid" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "gemist" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1554,23 +1554,23 @@ msgstr "" "Status: %s\n" "Tijdsduur: %i mins %i secs\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Uitgaande oproep" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Gereed." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Zoekt de lokatie van het telefoonnummer..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Kon dit nummer niet vinden." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1578,51 +1578,51 @@ msgstr "" "Slecht geformuleerd SIP-adres. Een SIP-adres ziet er uit als sip:" "gebruikersnaam@domeinnaam" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Verbinden" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "belt u." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Verbonden." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 #, fuzzy msgid "Could not pause the call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 #, fuzzy msgid "Pausing the current call..." msgstr "Kon niet oproepen" @@ -1848,7 +1848,7 @@ msgstr "Registratie op %s mislukt (time-out)." msgid "Authentication token is %s" msgstr "Authorisatie gegevens" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pl.po b/po/pl.po index 4512b7230..869f9b85e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2003-08-22 12:50+0200\n" "Last-Translator: Robert Nasiadek \n" "Language-Team: Polski \n" @@ -94,7 +94,7 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "" @@ -154,12 +154,12 @@ msgstr "" msgid "Call error" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 #, fuzzy msgid "Call ended" msgstr "Rozmowa odrzucona." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "" @@ -1515,19 +1515,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1537,75 +1537,75 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 #, fuzzy msgid "Ready" msgstr "Gotowy." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 #, fuzzy msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "Nie poprawny adres sip. Adres sip wygląda tak " -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 #, fuzzy msgid "Contacting" msgstr "Dzwonie do " -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "dzwoni do Ciebie." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Połączony" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "Połączenie odwołane." -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "" @@ -1829,7 +1829,7 @@ msgstr "Rejestracja powiodła się." msgid "Authentication token is %s" msgstr "Informacje o kodeku" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pt_BR.po b/po/pt_BR.po index 821ba910f..1ebd70a43 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-1.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2006-07-11 23:30+0200\n" "Last-Translator: Rafael Caesar Lenzi \n" "Language-Team: pt_BR \n" @@ -97,7 +97,7 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "" @@ -157,12 +157,12 @@ msgstr "" msgid "Call error" msgstr "Linphone - Histórico de chamadas" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 #, fuzzy msgid "Call ended" msgstr "Chamada cancelada." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Camadas recebidas" @@ -1520,19 +1520,19 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "Competado" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "Perdido" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, fuzzy, c-format msgid "" "%s at %s\n" @@ -1546,74 +1546,74 @@ msgstr "" "Status: %s\n" "Duração: %i min %i seg\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Chamadas efetuadas" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 #, fuzzy msgid "Ready" msgstr "Pronto." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Procurando por telefone de destino..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Não foi possível encontrar este número." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 #, fuzzy msgid "Contacting" msgstr "Contatando " -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "está chamado você." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "" @@ -1827,7 +1827,7 @@ msgstr "Registro falhou (tempo esgotado)." msgid "Authentication token is %s" msgstr "Informações de autenticação" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/ru.po b/po/ru.po index 66419e69a..0c81d472b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2010-01-22 18:43+0300\n" "Last-Translator: Maxim Prokopyev \n" "Language-Team: Russian \n" @@ -105,7 +105,7 @@ msgstr "Я" msgid "Couldn't find pixmap file: %s" msgstr "Невозможно найти графический файл: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Неверный sip-контакт!" @@ -174,11 +174,11 @@ msgstr "" msgid "Call error" msgstr "Ошибка вызова" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Разговор окончен" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Входящий вызов" @@ -1508,19 +1508,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "отмененный" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "завершённый" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "пропущенный" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1535,23 +1535,23 @@ msgstr "" "Статус: %s\n" "Длительность: %i мин %i сек\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Исходящий звонок" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Готов" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Поиск адреса для телефонного номера..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Не могу найти этот номер." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1559,47 +1559,47 @@ msgstr "" "Не могу опознать sip адрес. SIP-URL обычно выглядит как sip:" "username@domainname" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Соединение" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Не удалось позвонить" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, мы превысили максимальное количество одновременных вызовов" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "пытается связаться с вами" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " и ответил автоответчик." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Изменение параметров вызова..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Соединён." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Вызов отменён" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Не удалось приостановить вызов" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Приостановление текущего вызова..." @@ -1823,7 +1823,7 @@ msgstr "Регистрация на %s не удалась: %s" msgid "Authentication token is %s" msgstr "Аутентификационный токен: %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/sr.po b/po/sr.po index 814b4d050..d0b470f95 100644 --- a/po/sr.po +++ b/po/sr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2013-02-11 19:03+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" @@ -106,7 +106,7 @@ msgstr "Ја" msgid "Couldn't find pixmap file: %s" msgstr "Не могу да пронађем датотеку сличице: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Неисправан сип контакт !" @@ -173,11 +173,11 @@ msgstr "" msgid "Call error" msgstr "Грешка позива" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Позив је завршен" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Долазни позив" @@ -1503,19 +1503,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "прекинути" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "завршени" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "пропуштени" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1530,23 +1530,23 @@ msgstr "" "Стање: %s\n" "Трајање: %i мин %i сек\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Одлазни позив" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Спреман" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Тражим одредиште телефонског броја..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Не могу да решим овај број." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1554,47 +1554,47 @@ msgstr "" "Не могу да обрадим дату сип адресу. Сип адреса обично изгледа као „sip:" "корисник@домен“" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Ступам у везу" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "Не могу да позовем" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, достигли смо највећи број истовремених позива" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "вам се обраћа" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " и затражени само-одговор." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "Мењам параметре позива..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Повезан сам." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "Позив је прекинут" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "Не могу да зауставим позив" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "Заустављам тренутни позив..." @@ -1814,7 +1814,7 @@ msgstr "Уписивање на „%s“ није успело: %s" msgid "Authentication token is %s" msgstr "Симбол потврђивања идентитета је „%s“" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/sv.po b/po/sv.po index 4f7ec762c..c814f86c4 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2009-02-17 15:22+0100\n" "Last-Translator: Emmanuel Frécon \n" "Language-Team: SWEDISH \n" @@ -97,7 +97,7 @@ msgstr "Mikrofon av" msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta pixmap filen: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "ogiltig SIP kontakt!" @@ -165,11 +165,11 @@ msgstr "" msgid "Call error" msgstr "Samtalshistorik" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "Samtalet slut" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "Inkommande samtal" @@ -1503,19 +1503,19 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "avslutade" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "missade" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1530,23 +1530,23 @@ msgstr "" "Status: %s\n" "Längd: %i min %i sek\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "Utgående samtal" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "Redo" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "Leta efter telefonnummer för destinationen..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "Kan inte nå dett nummer." -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1554,51 +1554,51 @@ msgstr "" "Kan inte förstå angiven SIP adress. En SIP adress vanligen ser ut som sip:" "användare@domänen" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "Kontaktar" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 #, fuzzy msgid "is contacting you" msgstr "kontaktar dig." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "Kopplad" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 #, fuzzy msgid "Could not pause the call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 #, fuzzy msgid "Pausing the current call..." msgstr "Nuvarande samtal" @@ -1821,7 +1821,7 @@ msgstr "Registrering hos %s mislyckades: %s" msgid "Authentication token is %s" msgstr "Linphone - Autentisering krävs" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/zh_CN.po b/po/zh_CN.po index 7c81df3fc..0d21351a8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2011-01-08 23:51+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" @@ -97,7 +97,7 @@ msgstr "静音" msgid "Couldn't find pixmap file: %s" msgstr "无法打开位图文件:%s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "无效的 SIP 联系人!" @@ -160,11 +160,11 @@ msgstr "请输入 %s@%s 的密码:" msgid "Call error" msgstr "呼叫历史" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "呼叫结束" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "呼入" @@ -1514,19 +1514,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "完成" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "丢失" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1541,23 +1541,23 @@ msgstr "" "状态:%s\n" "状态:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "呼出" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "就绪" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "查询电话号码目的地..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "该号码无法解析。" -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" @@ -1565,50 +1565,50 @@ msgstr "" "无法解析给定的 SIP 地址,SIP 地址应有如下格式:\n" "sip:用户名@域名" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "联系中" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 #, fuzzy msgid "Could not call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "正在联系您" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr " 并询问了自动回答。" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "已连接。" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 #, fuzzy msgid "Call aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 #, fuzzy msgid "Could not pause the call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "" @@ -1823,7 +1823,7 @@ msgstr "注册到 %s 失败: %s" msgid "Authentication token is %s" msgstr "Linphone - 需要认证" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/zh_TW.po b/po/zh_TW.po index d1b2ce1a7..26a086150 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2013-04-24 14:04+0200\n" "PO-Revision-Date: 2011-04-06 21:24+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: \n" @@ -96,7 +96,7 @@ msgstr "靜音" msgid "Couldn't find pixmap file: %s" msgstr "找不到 pixmap 檔:%s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "無效的 sip 連絡人!" @@ -162,11 +162,11 @@ msgstr "" msgid "Call error" msgstr "通話紀錄" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 msgid "Call ended" msgstr "通話已結束" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 msgid "Incoming call" msgstr "來電" @@ -1489,19 +1489,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../coreapi/linphonecore.c:228 msgid "aborted" msgstr "已放棄" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:231 msgid "completed" msgstr "已完成" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:234 msgid "missed" msgstr "未接" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:239 #, c-format msgid "" "%s at %s\n" @@ -1516,69 +1516,69 @@ msgstr "" "狀態:%s\n" "持續時間:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:240 msgid "Outgoing call" msgstr "去電" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1321 msgid "Ready" msgstr "準備就緒" -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:2205 msgid "Looking for telephone number destination..." msgstr "尋找電話號碼目的端..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2208 msgid "Could not resolve this number." msgstr "無法解析這個號碼。" -#: ../coreapi/linphonecore.c:2231 +#: ../coreapi/linphonecore.c:2252 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "無法解析指定的 sip 位址。sip 網址通常看起來像 sip:user@domain" -#: ../coreapi/linphonecore.c:2432 +#: ../coreapi/linphonecore.c:2453 msgid "Contacting" msgstr "正在連絡" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2460 msgid "Could not call" msgstr "無法通話" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2570 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "抱歉,我們已達瀏同步通話的最大數目" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2752 msgid "is contacting you" msgstr "正在連絡您" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid " and asked autoanswer." msgstr "並要求自動接聽。" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2753 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:2820 msgid "Modifying call parameters..." msgstr "修改通話參數..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3159 msgid "Connected." msgstr "已連線。" -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3187 msgid "Call aborted" msgstr "通話已放棄" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3378 msgid "Could not pause the call" msgstr "無法暫停通話" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3383 msgid "Pausing the current call..." msgstr "暫停目前的通話..." @@ -1795,7 +1795,7 @@ msgstr "在 %s 註冊失敗:%s" msgid "Authentication token is %s" msgstr "驗證失敗" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2355 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." From dd1a451c363a88f01094f5f85f018bcf098bdc6c Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Fri, 26 Apr 2013 12:24:38 +0200 Subject: [PATCH 110/177] hold_call disabled in conf set minimum size to contact list --- gtk/incall_view.c | 2 ++ gtk/main.ui | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 01e3b3cd9..5e13f2602 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -701,9 +701,11 @@ void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call){ if (in_conf){ linphone_gtk_set_in_conference(call); gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"incall_mute"),FALSE); + gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"hold_call"),FALSE); }else{ linphone_gtk_unset_from_conference(call); /*in case it was previously*/ gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"incall_mute"),TRUE); + gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"hold_call"),TRUE); } gtk_widget_show_all(linphone_gtk_get_widget(callview,"buttons_panel")); if (!in_conf) gtk_widget_show_all(linphone_gtk_get_widget(callview,"record_hbox")); diff --git a/gtk/main.ui b/gtk/main.ui index 591b042ae..dde462ec3 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -1118,7 +1118,7 @@ - + True True @@ -1231,7 +1231,7 @@ False - True + False From f7c594507b16a3f158f75cbaa0a4fe8f92b1e49a Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 29 Apr 2013 13:42:04 +0200 Subject: [PATCH 111/177] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 3acaa7372..89c644022 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 3acaa7372423ffb0d18923e9e41e1076cec51905 +Subproject commit 89c644022b1dbf32be6afb08b0425bd4c788fc1b From 009630c1b5093505b5e55af6b29ae9fc37e037e2 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 29 Apr 2013 17:04:11 +0200 Subject: [PATCH 112/177] Fix swapped soundcards and use voidsink. --- coreapi/ec-calibrator.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coreapi/ec-calibrator.c b/coreapi/ec-calibrator.c index 223fb087d..fa92b4992 100644 --- a/coreapi/ec-calibrator.c +++ b/coreapi/ec-calibrator.c @@ -36,7 +36,7 @@ static void ecc_init_filters(EcCalibrator *ecc){ params.prio=MS_TICKER_PRIO_HIGH; ecc->ticker=ms_ticker_new_with_params(¶ms); - ecc->sndread=ms_snd_card_create_reader(ecc->play_card); + ecc->sndread=ms_snd_card_create_reader(ecc->capt_card); ms_filter_call_method(ecc->sndread,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ms_filter_call_method(ecc->sndread,MS_FILTER_GET_SAMPLE_RATE,&rate); ms_filter_call_method(ecc->sndread,MS_FILTER_SET_NCHANNELS,&ecc_channels); @@ -50,7 +50,7 @@ static void ecc_init_filters(EcCalibrator *ecc){ ecc->det=ms_filter_new(MS_TONE_DETECTOR_ID); ms_filter_call_method(ecc->det,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); - ecc->rec=ms_filter_new(MS_FILE_REC_ID); + ecc->rec=ms_filter_new(MS_VOID_SINK_ID); ms_filter_link(ecc->sndread,0,ecc->read_resampler,0); ms_filter_link(ecc->read_resampler,0,ecc->det,0); @@ -60,7 +60,7 @@ static void ecc_init_filters(EcCalibrator *ecc){ ecc->gen=ms_filter_new(MS_DTMF_GEN_ID); ms_filter_call_method(ecc->gen,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ecc->write_resampler=ms_filter_new(MS_RESAMPLE_ID); - ecc->sndwrite=ms_snd_card_create_writer(ecc->capt_card); + ecc->sndwrite=ms_snd_card_create_writer(ecc->play_card); ms_filter_call_method(ecc->sndwrite,MS_FILTER_SET_SAMPLE_RATE,&ecc->rate); ms_filter_call_method(ecc->sndwrite,MS_FILTER_GET_SAMPLE_RATE,&rate); From f906188cefb6da53193f5cd60f58fdf140c0edf1 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 30 Apr 2013 10:32:56 +0200 Subject: [PATCH 113/177] fix crash when receiving an incorrect SDP message in a 200Ok. fix indentation --- coreapi/callbacks.c | 3 ++- coreapi/sal_eXosip2_presence.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 8a6ea631c..a6b49a0e8 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -351,7 +351,8 @@ static void call_accepted(SalOp *op){ #endif //BUILD_UPNP md=sal_call_get_final_media_description(op); - call->params.has_video &= linphone_core_media_description_contains_video_stream(md); + if (md) + call->params.has_video &= linphone_core_media_description_contains_video_stream(md); if (call->state==LinphoneCallOutgoingProgress || call->state==LinphoneCallOutgoingRinging || diff --git a/coreapi/sal_eXosip2_presence.c b/coreapi/sal_eXosip2_presence.c index c81910986..b9f7b5763 100644 --- a/coreapi/sal_eXosip2_presence.c +++ b/coreapi/sal_eXosip2_presence.c @@ -85,19 +85,19 @@ static const char *days[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; static const char *months[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; static void msg_add_current_date(osip_message_t *msg){ - char tmp[64]={0}; - time_t curtime=time(NULL); - struct tm *ret; + char tmp[64]={0}; + time_t curtime=time(NULL); + struct tm *ret; #ifndef WIN32 - struct tm gmt; - ret=gmtime_r(&curtime,&gmt); + struct tm gmt; + ret=gmtime_r(&curtime,&gmt); #else - ret=gmtime(&curtime); + ret=gmtime(&curtime); #endif - /*cannot use strftime because it is locale dependant*/ - snprintf(tmp,sizeof(tmp)-1,"%s, %i %s %i %02i:%02i:%02i GMT", - days[ret->tm_wday],ret->tm_mday,months[ret->tm_mon],1900+ret->tm_year,ret->tm_hour,ret->tm_min,ret->tm_sec); - osip_message_replace_header(msg,"Date",tmp); + /*cannot use strftime because it is locale dependant*/ + snprintf(tmp,sizeof(tmp)-1,"%s, %i %s %i %02i:%02i:%02i GMT", + days[ret->tm_wday],ret->tm_mday,months[ret->tm_mon],1900+ret->tm_year,ret->tm_hour,ret->tm_min,ret->tm_sec); + osip_message_replace_header(msg,"Date",tmp); } From 9aa335252136a56a21c83b83d5cf247c3ef49e70 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 30 Apr 2013 10:34:40 +0200 Subject: [PATCH 114/177] update ms2 and oRTP --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index 89c644022..4ad5b7bec 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 89c644022b1dbf32be6afb08b0425bd4c788fc1b +Subproject commit 4ad5b7becb57b10775d024f89140c8c462c9de57 diff --git a/oRTP b/oRTP index bd64df514..8cf1bea6d 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit bd64df5148bdfd4a2ff5153927676fc497118279 +Subproject commit 8cf1bea6dfa66332cad995fc1c9f38b0b98d77c0 From 288fa8fd7d67820ad51b2ff1fb1a4bd583ecf3fd Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 30 Apr 2013 12:17:24 +0200 Subject: [PATCH 115/177] Update oRTP submodule. --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 8cf1bea6d..2d8a82247 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 8cf1bea6dfa66332cad995fc1c9f38b0b98d77c0 +Subproject commit 2d8a82247fbebbd690ae2fc8300522ab9b71a542 From 0b03d319099ce66435b44b2ea1450c32eb782ce6 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 30 Apr 2013 15:30:30 +0200 Subject: [PATCH 116/177] Update ms2 submodule for NEON detection fix. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 4ad5b7bec..239be1a39 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 4ad5b7becb57b10775d024f89140c8c462c9de57 +Subproject commit 239be1a39fa3f4ab460e8e7ab6d4d3d31e15e72a From 4da039cd52a3258f6ce0c09a9a53da1026beadfb Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 3 May 2013 14:36:21 +0200 Subject: [PATCH 117/177] fix bug when comparing event name (there can be parameters) --- coreapi/sal_eXosip2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 222e7c329..0c1b12445 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1653,7 +1653,7 @@ static void process_notify(Sal *sal, eXosip_event_t *ev){ //osip_content_type_t *ct=NULL; osip_message_get_body(ev->request,0,&body); //ct=osip_message_get_content_type(ev->request); - if (h->hvalue && strcasecmp(h->hvalue,"refer")==0){ + if (h->hvalue && strncasecmp(h->hvalue,"refer",strlen("refer"))==0){ /*special handling of refer events*/ if (body && body->body){ osip_message_t *msg; From ca42ee87ded3fa4cbf44757f13e2f5537afbb498 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 6 May 2013 22:09:31 +0200 Subject: [PATCH 118/177] important conference bugfixes --- coreapi/conference.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/coreapi/conference.c b/coreapi/conference.c index c9d51b151..0d8ea39a0 100644 --- a/coreapi/conference.c +++ b/coreapi/conference.c @@ -182,7 +182,6 @@ float linphone_core_get_conference_local_input_volume(LinphoneCore *lc){ * @returns 0 if successful, -1 otherwise. **/ int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call){ - LinphoneCallParams params; LinphoneConference *conf=&lc->conf_ctx; if (call->current_params.in_conference){ @@ -190,21 +189,25 @@ int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call){ return -1; } conference_check_init(&lc->conf_ctx, lp_config_get_int(lc->config, "sound","conference_rate",16000)); - call->params.in_conference=TRUE; - call->params.has_video=FALSE; - call->params.media_encryption=LinphoneMediaEncryptionNone; - params=call->params; - if (call->state==LinphoneCallPaused) + + if (call->state==LinphoneCallPaused){ + call->params.in_conference=TRUE; + call->params.has_video=FALSE; linphone_core_resume_call(lc,call); - else if (call->state==LinphoneCallStreamsRunning){ - /*this will trigger a reINVITE that will later redraw the streams */ + }else if (call->state==LinphoneCallStreamsRunning){ + LinphoneCallParams *params=linphone_call_params_copy(linphone_call_get_current_params(call)); + params->in_conference=TRUE; + params->has_video=FALSE; + if (call->audiostream || call->videostream){ linphone_call_stop_media_streams (call); /*free the audio & video local resources*/ } if (call==lc->current_call){ lc->current_call=NULL; } - linphone_core_update_call(lc,call,¶ms); + /*this will trigger a reINVITE that will later redraw the streams */ + linphone_core_update_call(lc,call,params); + linphone_call_params_destroy(params); add_local_endpoint(conf,lc); }else{ ms_error("Call is in state %s, it cannot be added to the conference.",linphone_call_state_to_string(call->state)); @@ -231,13 +234,16 @@ static int remove_from_conference(LinphoneCore *lc, LinphoneCall *call, bool_t a ms_message("%s will be removed from conference", str); ms_free(str); if (active){ + LinphoneCallParams *params=linphone_call_params_copy(linphone_call_get_current_params(call)); + params->in_conference=FALSE; // reconnect local audio with this call if (linphone_core_is_in_conference(lc)){ ms_message("Leaving conference for reconnecting with unique call."); linphone_core_leave_conference(lc); } ms_message("Updating call to actually remove from conference"); - err=linphone_core_update_call(lc,call,&call->params); + err=linphone_core_update_call(lc,call,params); + linphone_call_params_destroy(params); } else{ ms_message("Pausing call to actually remove from conference"); err=_linphone_core_pause_call(lc,call); From bfd0d728ec6a185bfcb4d8836d611765f8bc45e2 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 7 May 2013 09:19:46 +0200 Subject: [PATCH 119/177] Update Czech translation Add patch for search in friendlist no case sensitive --- gtk/dscp_settings.ui | 2 +- gtk/friendlist.c | 6 +- po/cs.po | 346 ++++++++++++++++++++----------------------- 3 files changed, 166 insertions(+), 188 deletions(-) diff --git a/gtk/dscp_settings.ui b/gtk/dscp_settings.ui index 22679a49b..7f5061f72 100644 --- a/gtk/dscp_settings.ui +++ b/gtk/dscp_settings.ui @@ -5,7 +5,7 @@ False 5 - Dscp settings + DSCP settings True dialog diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 8f73c2fcb..f7e683f95 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -513,7 +513,11 @@ static gboolean friend_search_func(GtkTreeModel *model, gint column, gboolean ret=TRUE; gtk_tree_model_get(model,iter,FRIEND_NAME,&name,-1); if (name!=NULL){ - ret=strstr(name,key)==NULL; + gchar *uname=g_utf8_casefold(name,-1); /* need that to perform case-insensitive search in utf8 */ + gchar *ukey=g_utf8_casefold(key,-1); + ret=strstr(uname,ukey)==NULL; + g_free(uname); + g_free(ukey); g_free(name); } return ret; diff --git a/po/cs.po b/po/cs.po index 233eddbcf..4c1cb6503 100644 --- a/po/cs.po +++ b/po/cs.po @@ -2,12 +2,13 @@ # This file is distributed under the same license as the linphone package. # Copyright (C) 2009 Simon Morlat (msgids) # Klara Cihlarova , 2005. -# Petr Pisar , 2006, 2007, 2008, 2009, 2010, 2011. +# Petr Pisar , 2006, 2007, 2008, 2009, 2010, 2011, 2013. # # XXX: Don't translate gtk-* messages. They will be replaced from GTK+ # catalogue. # # On hold → odložen +# chat → diskuze # Pause call → odložit hovor # Resume call → obnovit hovor # token → klíč @@ -15,10 +16,10 @@ # msgid "" msgstr "" -"Project-Id-Version: linphone-3.4.99.4\n" +"Project-Id-Version: linphone-3.5.99.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" -"PO-Revision-Date: 2011-11-04 22:30+0100\n" +"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"PO-Revision-Date: 2013-05-01 09:55+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" @@ -38,49 +39,46 @@ msgid "Send text to %s" msgstr "Poslat text komu: %s" #: ../gtk/calllogs.c:223 -#, fuzzy, c-format +#, c-format msgid "Recent calls (%i)" -msgstr "Probíhá hovor" +msgstr "Nedávné hovory (%i)" #: ../gtk/calllogs.c:300 msgid "n/a" msgstr "–" #: ../gtk/calllogs.c:303 -#, fuzzy msgid "Aborted" -msgstr "přerušen" +msgstr "Přerušen" #: ../gtk/calllogs.c:306 -#, fuzzy msgid "Missed" -msgstr "promeškán" +msgstr "Zmeškán" #: ../gtk/calllogs.c:309 -#, fuzzy msgid "Declined" -msgstr "Odmítnout" +msgstr "Odmítnut" #: ../gtk/calllogs.c:315 #, c-format msgid "%i minute" msgid_plural "%i minutes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%i minuta" +msgstr[1] "%i minuty" +msgstr[2] "%i minut" #: ../gtk/calllogs.c:318 #, c-format msgid "%i second" msgid_plural "%i seconds" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%i sekunda" +msgstr[1] "%i sekundy" +msgstr[2] "%i sekund" #: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format msgid "%s\t%s" -msgstr "" +msgstr "%s\t%s" #: ../gtk/calllogs.c:323 #, c-format @@ -88,6 +86,8 @@ msgid "" "%s\tQuality: %s\n" "%s\t%s\t" msgstr "" +"%s\tKvalita: %s\n" +"%s\t%s\t" #: ../gtk/calllogs.c:329 #, c-format @@ -95,6 +95,8 @@ msgid "" "%s\t\n" "%s" msgstr "" +"%s\t\n" +"%s" #: ../gtk/conference.c:38 ../gtk/main.ui.h:13 msgid "Conference" @@ -109,7 +111,7 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 msgid "Invalid sip contact !" msgstr "Neplatný sipový kontakt!" @@ -123,7 +125,7 @@ msgstr "Soubor, kam zapisovat protokol." #: ../gtk/main.c:106 msgid "Start linphone with video disabled." -msgstr "" +msgstr "Spustí linphone se zakázaným obrazem." #: ../gtk/main.c:113 msgid "Start only in the system tray, do not show the main interface." @@ -176,11 +178,11 @@ msgstr "" msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 msgid "Incoming call" msgstr "Příchozí hovor" @@ -197,14 +199,14 @@ msgid "Call paused" msgstr "Hovor odložen" #: ../gtk/main.c:1142 -#, fuzzy, c-format +#, c-format msgid "by %s" -msgstr "Porty" +msgstr "kým: %s" #: ../gtk/main.c:1191 #, c-format msgid "%s proposed to start video. Do you accept ?" -msgstr "" +msgstr "%s navrhuje začít videohovor. Přijímáte?" #: ../gtk/main.c:1353 msgid "Website link" @@ -237,9 +239,8 @@ msgid "A free SIP video-phone" msgstr "Volný SIP videofon" #: ../gtk/friendlist.c:469 -#, fuzzy msgid "Add to addressbook" -msgstr "Zobrazit adresář" +msgstr "Přidat do adresáře" #: ../gtk/friendlist.c:643 msgid "Presence status" @@ -250,14 +251,12 @@ msgid "Name" msgstr "Jméno" #: ../gtk/friendlist.c:673 -#, fuzzy msgid "Call" -msgstr "Volat komu: %s" +msgstr "Zavolat" #: ../gtk/friendlist.c:678 -#, fuzzy msgid "Chat" -msgstr "Diskuzní skupina" +msgstr "Diskuze" #: ../gtk/friendlist.c:708 #, c-format @@ -275,9 +274,9 @@ msgid "Delete contact '%s'" msgstr "Odstranit kontakt „%s“" #: ../gtk/friendlist.c:926 -#, fuzzy, c-format +#, c-format msgid "Delete chat history of '%s'" -msgstr "Odstranit kontakt „%s“" +msgstr "Odstranit historii diskuze u kontaktu „%s“" #: ../gtk/friendlist.c:977 #, c-format @@ -378,20 +377,21 @@ msgstr "norština" #: ../gtk/propertybox.c:780 msgid "Hebrew" -msgstr "" +msgstr "hebrejština" #: ../gtk/propertybox.c:781 msgid "Serbian" -msgstr "" +msgstr "srbština" #: ../gtk/propertybox.c:848 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Aby se projevil výběr nového jazyka, je nutné znovu spustit linphone." +# Media encryption type: #: ../gtk/propertybox.c:934 msgid "None" -msgstr "Žádná" +msgstr "Žádné" #: ../gtk/propertybox.c:938 msgid "SRTP" @@ -451,23 +451,20 @@ msgstr "" "Tento průvodce vám pomůže používat sipový účet při vašich hovorech." #: ../gtk/setupwizard.c:43 -#, fuzzy msgid "Create an account on linphone.org" -msgstr "Vytvořit účet vybráním uživatelského jména" +msgstr "Vytvořit účet na linphone.org" #: ../gtk/setupwizard.c:44 -#, fuzzy msgid "I have already a linphone.org account and I just want to use it" -msgstr "Účet již mám a chci jej použít" +msgstr "Účet na linphone.org již mám a chci jej použít" #: ../gtk/setupwizard.c:45 -#, fuzzy msgid "I have already a sip account and I just want to use it" -msgstr "Účet již mám a chci jej použít" +msgstr "SIP účet již mám a chci jej použít" #: ../gtk/setupwizard.c:85 msgid "Enter your linphone.org username" -msgstr "" +msgstr "Zadejte uživatelské jméno na linphone.org" #: ../gtk/setupwizard.c:92 msgid "Username:" @@ -479,53 +476,52 @@ msgstr "Heslo:" #: ../gtk/setupwizard.c:114 msgid "Enter your account informations" -msgstr "" +msgstr "Zadejte údaje o vašem účtu" #: ../gtk/setupwizard.c:121 -#, fuzzy msgid "Username*" -msgstr "Uživatelské jméno" +msgstr "Uživatelské jméno*" #: ../gtk/setupwizard.c:122 -#, fuzzy msgid "Password*" -msgstr "Heslo" +msgstr "Heslo*" #: ../gtk/setupwizard.c:125 msgid "Domain*" -msgstr "" +msgstr "Doména*" #: ../gtk/setupwizard.c:126 msgid "Proxy" -msgstr "" +msgstr "Proxy" #: ../gtk/setupwizard.c:298 msgid "(*) Required fields" -msgstr "" +msgstr "(*) Povinné položky" #: ../gtk/setupwizard.c:299 -#, fuzzy msgid "Username: (*)" -msgstr "Uživatelské jméno:" +msgstr "Uživatelské jméno: (*)" #: ../gtk/setupwizard.c:301 -#, fuzzy msgid "Password: (*)" -msgstr "Heslo:" +msgstr "Heslo: (*)" #: ../gtk/setupwizard.c:303 msgid "Email: (*)" -msgstr "" +msgstr "E-mail: (*)" #: ../gtk/setupwizard.c:305 msgid "Confirm your password: (*)" -msgstr "" +msgstr "Potvrďte heslo: (*)" #: ../gtk/setupwizard.c:369 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" +"Došlo k chybě (účet nebyl ověřen, uživatelské jméno již existuje nebo server " +"není dostupný).\n" +"Prosím, vraťte se a zkoste to znovu." #: ../gtk/setupwizard.c:380 msgid "Thank you. Your account is now configured and ready for use." @@ -537,6 +533,9 @@ msgid "" "email.\n" "Then come back here and press Next button." msgstr "" +"Prosím, ověřte svůj účet tak, že kliknete na odkaz, který jsme vám právě " +"zaslali e-mailem.\n" +"Pak se sem vraťte a stiskněte tlačítko Další." #: ../gtk/setupwizard.c:564 msgid "Welcome to the account setup assistant" @@ -547,31 +546,28 @@ msgid "Account setup assistant" msgstr "Průvodce nastavením účtu" #: ../gtk/setupwizard.c:575 -#, fuzzy msgid "Configure your account (step 1/1)" -msgstr "Nastavit SIP účet" +msgstr "Nastavit účet (krok 1/1)" #: ../gtk/setupwizard.c:580 msgid "Enter your sip username (step 1/1)" -msgstr "" +msgstr "Zadejte vaše sipové uživatelské jméno (krok 1/1)" #: ../gtk/setupwizard.c:584 msgid "Enter account information (step 1/2)" -msgstr "" +msgstr "Zadejte údaje o účtu (krok 1/2)" #: ../gtk/setupwizard.c:593 msgid "Validation (step 2/2)" -msgstr "" +msgstr "Ověření (krok 2/2)" #: ../gtk/setupwizard.c:598 -#, fuzzy msgid "Error" -msgstr "Chyba." +msgstr "Chyba" #: ../gtk/setupwizard.c:602 -#, fuzzy msgid "Terminating" -msgstr "Ukončit hovor" +msgstr "Ukončuje se" #: ../gtk/incall_view.c:70 ../gtk/incall_view.c:94 #, c-format @@ -584,62 +580,56 @@ msgid "Transfer to call #%i with %s" msgstr "Přepojit hovor č. %i s %s" #: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 -#, fuzzy msgid "Not used" -msgstr "Nenalezeno" +msgstr "Nepoužito" #: ../gtk/incall_view.c:220 msgid "ICE not activated" -msgstr "" +msgstr "ICE není zapnuto" #: ../gtk/incall_view.c:222 -#, fuzzy msgid "ICE failed" -msgstr "Filtr ICE" +msgstr "ICE selhalo" #: ../gtk/incall_view.c:224 msgid "ICE in progress" -msgstr "" +msgstr "Probíhá ICE" #: ../gtk/incall_view.c:226 msgid "Going through one or more NATs" -msgstr "" +msgstr "Prochází se jedním nebo více NATy" #: ../gtk/incall_view.c:228 -#, fuzzy msgid "Direct" -msgstr "Přesměrováno" +msgstr "Přímé" #: ../gtk/incall_view.c:230 msgid "Through a relay server" -msgstr "" +msgstr "Skrze relay server" #: ../gtk/incall_view.c:238 msgid "uPnP not activated" -msgstr "" +msgstr "UPnP není zapnuto" #: ../gtk/incall_view.c:240 -#, fuzzy msgid "uPnP in progress" -msgstr "Hledá se adresa pomocí STUN…" +msgstr "Probíhá UPnP" #: ../gtk/incall_view.c:242 -#, fuzzy msgid "uPnp not available" -msgstr "nedostupná" +msgstr "UPnP není nedostupné" #: ../gtk/incall_view.c:244 msgid "uPnP is running" -msgstr "" +msgstr "UPnP běží" #: ../gtk/incall_view.c:246 -#, fuzzy msgid "uPnP failed" -msgstr "Filtr ICE" +msgstr "UPnP selhalo" #: ../gtk/incall_view.c:256 ../gtk/incall_view.c:257 msgid "Direct or through server" -msgstr "" +msgstr "Přímé nebo skrze server" #: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 #, c-format @@ -647,15 +637,17 @@ msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" +"příchozí: %f\n" +"odchozí: %f (kb/s)" #: ../gtk/incall_view.c:286 #, c-format msgid "%.3f seconds" -msgstr "" +msgstr "%.3f sekund" #: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 msgid "Hang up" -msgstr "" +msgstr "Zavěsit" #: ../gtk/incall_view.c:476 msgid "Calling..." @@ -695,20 +687,20 @@ msgstr "nedostupná" #: ../gtk/incall_view.c:651 msgid "Secured by SRTP" -msgstr "" +msgstr "Zabezpečeno pomocí SRTP" #: ../gtk/incall_view.c:657 #, c-format msgid "Secured by ZRTP - [auth token: %s]" -msgstr "" +msgstr "Zabezpečeno pomocí ZRTP – [ověřovací klíč: %s]" #: ../gtk/incall_view.c:663 msgid "Set unverified" -msgstr "" +msgstr "Nastavit na neověřeno" #: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 msgid "Set verified" -msgstr "" +msgstr "Nastavit na ověřeno" #: ../gtk/incall_view.c:684 msgid "In conference" @@ -733,17 +725,15 @@ msgstr "Hovor skončil." #: ../gtk/incall_view.c:778 msgid "Transfer in progress" -msgstr "" +msgstr "Probíhá přepojení" #: ../gtk/incall_view.c:781 -#, fuzzy msgid "Transfer done." -msgstr "Přepojit" +msgstr "Přepojení dokončeno." #: ../gtk/incall_view.c:784 -#, fuzzy msgid "Transfer failed." -msgstr "Přepojit" +msgstr "Přepojení selhalo." #: ../gtk/incall_view.c:828 msgid "Resume" @@ -759,11 +749,12 @@ msgid "" "Recording into\n" "%s %s" msgstr "" +"Nahrává se do\n" +"%s %s" #: ../gtk/incall_view.c:900 -#, fuzzy msgid "(Paused)" -msgstr "Odložit" +msgstr "(Odloženo)" #: ../gtk/loginframe.c:93 #, c-format @@ -779,21 +770,20 @@ msgid "Send" msgstr "Odeslat" #: ../gtk/main.ui.h:3 -#, fuzzy msgid "End conference" -msgstr "Probíhá konference" +msgstr "Ukončit konferenci" #: ../gtk/main.ui.h:7 msgid "Record this call to an audio file" -msgstr "" +msgstr "Nahrát tento hovor do zvukového souboru" #: ../gtk/main.ui.h:8 msgid "Video" -msgstr "" +msgstr "Obraz" #: ../gtk/main.ui.h:10 msgid "Mute" -msgstr "" +msgstr "Ztišit" #: ../gtk/main.ui.h:11 msgid "Transfer" @@ -817,7 +807,7 @@ msgstr "V_olby" #: ../gtk/main.ui.h:18 msgid "Always start video" -msgstr "" +msgstr "Vždy spustit obraz" #: ../gtk/main.ui.h:19 msgid "Enable self-view" @@ -840,9 +830,8 @@ msgid "Check _Updates" msgstr "Vyhledat akt_ualizace" #: ../gtk/main.ui.h:24 -#, fuzzy msgid "Account assistant" -msgstr "Průvodce nastavením účtu" +msgstr "Průvodce účtem" #: ../gtk/main.ui.h:25 msgid "SIP address or phone number:" @@ -930,7 +919,7 @@ msgstr "Výchozí" #: ../gtk/main.ui.h:46 msgid "Delete" -msgstr "" +msgstr "Smazat" #: ../gtk/about.ui.h:1 msgid "About linphone" @@ -992,7 +981,7 @@ msgstr "Ladicí okno Linphonu" #: ../gtk/log.ui.h:2 msgid "Scroll to end" -msgstr "" +msgstr "Přejít na konec" #: ../gtk/password.ui.h:1 msgid "Linphone - Authentication required" @@ -1052,7 +1041,7 @@ msgstr "Registrační období (s):" #: ../gtk/sip_account.ui.h:9 msgid "Register" -msgstr "" +msgstr "Zaregistrovat se" #: ../gtk/sip_account.ui.h:10 msgid "Publish presence information" @@ -1136,20 +1125,20 @@ msgstr "Zvukový RTP/UDP:" #: ../gtk/parameters.ui.h:19 msgid "DSCP fields" -msgstr "" +msgstr "Položky DSCP" +# Port number #: ../gtk/parameters.ui.h:20 msgid "Fixed" -msgstr "" +msgstr "Stálý" #: ../gtk/parameters.ui.h:21 msgid "Tunnel" -msgstr "" +msgstr "Tunel" #: ../gtk/parameters.ui.h:22 -#, fuzzy msgid "Media encryption is mandatory" -msgstr "Druh šifrování médií" +msgstr "Šifrování médií je povinné" #: ../gtk/parameters.ui.h:23 msgid "Network protocol and ports" @@ -1172,14 +1161,12 @@ msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Za NAT/firewallem (adresu určí STUN)" #: ../gtk/parameters.ui.h:28 -#, fuzzy msgid "Behind NAT / Firewall (use ICE)" -msgstr "Za NAT/firewallem (adresu určí STUN)" +msgstr "Za NAT/firewallem (adresu určí ICE)" #: ../gtk/parameters.ui.h:29 -#, fuzzy msgid "Behind NAT / Firewall (use uPnP)" -msgstr "Za NAT/firewallem (adresu určí STUN)" +msgstr "Za NAT/firewallem (adresu určí UPnP)" #: ../gtk/parameters.ui.h:30 msgid "Stun server:" @@ -1259,7 +1246,7 @@ msgstr "Implicitní totožnost" #: ../gtk/parameters.ui.h:49 msgid "Wizard" -msgstr "" +msgstr "Průvodce" #: ../gtk/parameters.ui.h:52 msgid "Remove" @@ -1307,7 +1294,7 @@ msgstr "Omezení příchozí rychlosti (kb/s):" #: ../gtk/parameters.ui.h:63 msgid "Enable adaptive rate control" -msgstr "Zapnout přizpůsobující řízení rychlosti" +msgstr "Zapnout přizpůsobující se řízení rychlosti" #: ../gtk/parameters.ui.h:64 msgid "" @@ -1366,91 +1353,80 @@ msgid "Please wait" msgstr "Prosím, čekejte" #: ../gtk/dscp_settings.ui.h:1 -#, fuzzy msgid "Dscp settings" -msgstr "Nastavení" +msgstr "Nastavení DSCP" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" msgstr "SIP" #: ../gtk/dscp_settings.ui.h:3 -#, fuzzy msgid "Audio RTP stream" -msgstr "Převzorkování zvuku" +msgstr "RTP proud zvuku" #: ../gtk/dscp_settings.ui.h:4 -#, fuzzy msgid "Video RTP stream" -msgstr "Obrazový RTP/UDP:" +msgstr "RTP proud obrazu" #: ../gtk/dscp_settings.ui.h:5 msgid "Set DSCP values (in hexadecimal)" -msgstr "" +msgstr "Nastavit hodnoty DSCP (šestnáctkově)" #: ../gtk/call_statistics.ui.h:1 -#, fuzzy msgid "Call statistics" -msgstr "Informace o hovoru" +msgstr "Statistické údaje o hovoru" #: ../gtk/call_statistics.ui.h:2 -#, fuzzy msgid "Audio codec" -msgstr "Kodeky zvuku" +msgstr "Kodek zvuku" #: ../gtk/call_statistics.ui.h:3 -#, fuzzy msgid "Video codec" -msgstr "Kodeky obrazu" +msgstr "Kodek obrazu" #: ../gtk/call_statistics.ui.h:4 msgid "Audio IP bandwidth usage" -msgstr "" +msgstr "Přenosová rychlost zvuku na úrovni IP" #: ../gtk/call_statistics.ui.h:5 -#, fuzzy msgid "Audio Media connectivity" -msgstr "Druh šifrování médií" +msgstr "Zvukové spojení" #: ../gtk/call_statistics.ui.h:6 msgid "Video IP bandwidth usage" -msgstr "" +msgstr "Přenosová rychlost obrazu na úrovni IP" #: ../gtk/call_statistics.ui.h:7 -#, fuzzy msgid "Video Media connectivity" -msgstr "Druh šifrování médií" +msgstr "Obrazové spojení" #: ../gtk/call_statistics.ui.h:8 -#, fuzzy msgid "Round trip time" -msgstr "Vlastnosti zvuku" +msgstr "Odezva" #: ../gtk/call_statistics.ui.h:9 -#, fuzzy msgid "Call statistics and information" -msgstr "Informace o kontaktu" +msgstr "Statistické a ostatní údaje o hovoru" #: ../gtk/tunnel_config.ui.h:1 -#, fuzzy msgid "Configure VoIP tunnel" -msgstr "Nastavit SIP účet" +msgstr "Nastavit VoIP tunel" #: ../gtk/tunnel_config.ui.h:2 msgid "Host" -msgstr "" +msgstr "Stroj" #: ../gtk/tunnel_config.ui.h:3 msgid "Port" -msgstr "" +msgstr "Port" #: ../gtk/tunnel_config.ui.h:6 msgid "Configure tunnel" -msgstr "" +msgstr "Nastavit tunel" #: ../gtk/tunnel_config.ui.h:9 msgid "Configure http proxy (optional)" -msgstr "" +msgstr "Nastavit HTTP proxy (volitelné)" #: ../gtk/keypad.ui.h:1 msgid "D" @@ -1512,19 +1488,19 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../coreapi/linphonecore.c:227 msgid "aborted" msgstr "přerušen" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:230 msgid "completed" msgstr "dokončen" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:233 msgid "missed" msgstr "promeškán" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:238 #, c-format msgid "" "%s at %s\n" @@ -1539,70 +1515,70 @@ msgstr "" "Stav: %s\n" "Délka: %i min %i s\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:239 msgid "Outgoing call" msgstr "Odchozí hovor" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1312 msgid "Ready" msgstr "Připraven." -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:2184 msgid "Looking for telephone number destination..." msgstr "Vyhledává se umístění čísla…" -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2187 msgid "Could not resolve this number." msgstr "Toto číslo nelze vyhledat." -#: ../coreapi/linphonecore.c:2252 +#: ../coreapi/linphonecore.c:2231 msgid "" "Could not parse given sip address. A sip url usually looks like sip:" "user@domain" msgstr "" "Špatně zadaná SIP adresa. Adresa má mít tento formát " -#: ../coreapi/linphonecore.c:2453 +#: ../coreapi/linphonecore.c:2432 msgid "Contacting" -msgstr "Kontaktuji" +msgstr "Navazuje se spojení" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2439 msgid "Could not call" msgstr "Nelze volat" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2549 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů." -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2731 msgid "is contacting you" msgstr "vás volá" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2732 msgid " and asked autoanswer." msgstr " a požaduje automatickou zvednutí." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2732 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:2799 msgid "Modifying call parameters..." msgstr "Upravují se parametry hovoru…" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3138 msgid "Connected." msgstr "Připojeno." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3166 msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3357 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3362 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" @@ -1636,11 +1612,11 @@ msgstr "Hledá se adresa pomocí STUN…" #: ../coreapi/misc.c:630 msgid "ICE local candidates gathering in progress..." -msgstr "" +msgstr "Shromažďují se místní kandidáti ICE…" #: ../coreapi/friend.c:33 msgid "Online" -msgstr "Připojeno" +msgstr "Připojen" #: ../coreapi/friend.c:36 msgid "Busy" @@ -1668,19 +1644,19 @@ msgstr "Nerušit" #: ../coreapi/friend.c:54 msgid "Moved" -msgstr "Přestěhoval se" +msgstr "Přestěhoval jsem se" #: ../coreapi/friend.c:57 msgid "Using another messaging service" -msgstr "Používá jinou službu přenosu zpráv" +msgstr "Používám jinou službu přenosu zpráv" #: ../coreapi/friend.c:60 msgid "Offline" -msgstr "Odpojeno" +msgstr "Odpojen" #: ../coreapi/friend.c:63 msgid "Pending" -msgstr "Čeká" +msgstr "Čekám" #: ../coreapi/friend.c:66 msgid "Unknown-bug" @@ -1691,7 +1667,7 @@ msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -"Adresa SIP proxy, kterou jste zadali, není platná. Musí začínat na „sip:“ a " +"Adresa SIP proxy, kterou jste zadali, není platná. Musí začínat na „sip:“ a " "pak musí následovat jméno stroje." #: ../coreapi/proxy.c:210 @@ -1740,21 +1716,19 @@ msgstr "Hovor přijat kým: %s." #: ../coreapi/callbacks.c:412 msgid "Incompatible, check codecs or security settings..." -msgstr "" +msgstr "Není slučitelné. Zkontrolujte nastavení kodeků a zabezpečení…" #: ../coreapi/callbacks.c:460 -#, fuzzy msgid "We have been resumed." -msgstr "Byli jsme obnoveni…" +msgstr "Byli jsme obnoveni." #: ../coreapi/callbacks.c:469 msgid "We are paused by other party." -msgstr "" +msgstr "Byli jsme odloženi protistranou." #: ../coreapi/callbacks.c:475 -#, fuzzy msgid "Call is updated by remote." -msgstr "Hovor byl aktualizován protistranou…" +msgstr "Hovor byl aktualizován protistranou." #: ../coreapi/callbacks.c:544 msgid "Call terminated." @@ -1791,7 +1765,7 @@ msgstr "Přesměrováno" #: ../coreapi/callbacks.c:627 msgid "Incompatible media parameters." -msgstr "" +msgstr "Neslučitelné parametry médií." #: ../coreapi/callbacks.c:633 msgid "Call failed." @@ -1821,7 +1795,7 @@ msgstr "Registrace na %s selhala: %s" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2319 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." From f9236d1a0be70edcba7db7e8c51271d83b208f25 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 7 May 2013 11:49:54 +0200 Subject: [PATCH 120/177] Fix bug report --- console/linphonec.c | 3 +++ coreapi/message_storage.c | 4 ++-- coreapi/sal_eXosip2.c | 1 + coreapi/sal_eXosip2_sdp.c | 2 +- gtk/incall_view.c | 3 ++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/console/linphonec.c b/console/linphonec.c index fca5a9b86..60c3c2af1 100644 --- a/console/linphonec.c +++ b/console/linphonec.c @@ -1400,6 +1400,7 @@ copy_file(const char *from, const char *to) snprintf(message, 255, "Can't open %s for writing: %s\n", to, strerror(errno)); fprintf(stderr, "%s", message); + fclose(in); return 0; } @@ -1408,6 +1409,8 @@ copy_file(const char *from, const char *to) { if ( ! fwrite(buf, 1, n, out) ) { + fclose(in); + fclose(out); return 0; } } diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 8ba642b68..deed140c7 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -204,13 +204,13 @@ void linphone_create_table(sqlite3* db){ void linphone_core_message_storage_init(LinphoneCore *lc){ int ret; - char *errmsg=NULL; + const char *errmsg; sqlite3 *db; ret=sqlite3_open(lc->chat_db_file,&db); if(ret != SQLITE_OK) { + errmsg=sqlite3_errmsg(db); printf("Error in the opening: %s.\n", errmsg); sqlite3_close(db); - sqlite3_free(errmsg); } linphone_create_table(db); lc->db=db; diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 0c1b12445..284773c9d 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1464,6 +1464,7 @@ static bool_t call_failure(Sal *sal, eXosip_event_t *ev){ case 480: error=SalErrorFailure; sr=SalReasonTemporarilyUnavailable; + break; case 486: error=SalErrorFailure; sr=SalReasonBusy; diff --git a/coreapi/sal_eXosip2_sdp.c b/coreapi/sal_eXosip2_sdp.c index debd8550f..54865aab6 100644 --- a/coreapi/sal_eXosip2_sdp.c +++ b/coreapi/sal_eXosip2_sdp.c @@ -547,7 +547,7 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){ for (k=0;valid_count < SAL_CRYPTO_ALGO_MAX && (attr=sdp_message_attribute_get(msg,i,k))!=NULL;k++){ char tmp[256], tmp2[256]; if (keywordcmp("crypto",attr->a_att_field)==0 && attr->a_att_value!=NULL){ - int nb = sscanf(attr->a_att_value, "%d %256s inline:%256s", + int nb = sscanf(attr->a_att_value, "%d %255s inline:%255s", &stream->crypto[valid_count].tag, tmp, tmp2); diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 5e13f2602..da954a45b 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -741,11 +741,12 @@ static gboolean in_call_view_terminated(LinphoneCall *call){ void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_msg){ GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call); + if(callview==NULL) return; GtkWidget *status=linphone_gtk_get_widget(callview,"in_call_status"); guint taskid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(callview),"taskid")); gboolean in_conf=linphone_call_params_local_conference_mode(linphone_call_get_current_params(call)); - if ((callview==NULL) || (status==NULL)) return; + if (status==NULL) return; if (error_msg==NULL) gtk_label_set_markup(GTK_LABEL(status),_("Call ended.")); else{ From 12a3d795131ab1b367ae000f8b70f9b8af684df6 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Thu, 9 May 2013 21:48:20 +0200 Subject: [PATCH 121/177] AAC-EL: fix SDP/fmtp content according to new recommendation from Fraunhofer --- coreapi/linphonecore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index bb2b4a83c..12c8880b6 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1285,8 +1285,8 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_silk_wb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_silk_swb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); - linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); - linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=24; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); linphone_core_handle_static_payloads(lc); ms_init(); From 5f0d5793b7e65a518076de6f8e253770503f8824 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 10 May 2013 15:05:42 +0200 Subject: [PATCH 122/177] - do not register outside of tunnel when tunnel is activated but not yet connected. - move TUNNEL_ENABLED to config.h, which avoids recompilation issues with -D flags. --- configure.ac | 4 +- coreapi/TunnelManager.cc | 7 +- coreapi/TunnelManager.hh | 3 +- coreapi/linphone_tunnel.cc | 4 + coreapi/linphone_tunnel.h | 6 + coreapi/linphone_tunnel_stubs.c | 4 + coreapi/proxy.c | 411 ++++++++++++++++---------------- 7 files changed, 233 insertions(+), 206 deletions(-) diff --git a/configure.ac b/configure.ac index 7bc526bbb..5bd0570cc 100644 --- a/configure.ac +++ b/configure.ac @@ -656,9 +656,7 @@ AC_ARG_ENABLE(tunnel, AM_CONDITIONAL(BUILD_TUNNEL, test x$enable_tunnel = xtrue) if test x$enable_tunnel = xtrue; then PKG_CHECK_MODULES(TUNNEL, tunnel >= 0.3.3) - TUNNEL_CFLAGS+="-DTUNNEL_ENABLED" - AC_SUBST(TUNNEL_CFLAGS) - AC_SUBST(TUNNEL_LIBS) + AC_DEFINE(TUNNEL_ENABLED,1,[Tells tunnel extension is built-in]) fi AC_ARG_ENABLE(msg-storage, diff --git a/coreapi/TunnelManager.cc b/coreapi/TunnelManager.cc index d1020b1b2..409f9c42a 100644 --- a/coreapi/TunnelManager.cc +++ b/coreapi/TunnelManager.cc @@ -189,7 +189,7 @@ bool TunnelManager::isStarted() { } bool TunnelManager::isReady() const { - return mTunnelClient && mTunnelClient->isReady(); + return mTunnelClient && mTunnelClient->isReady() && mReady; } int TunnelManager::customSendto(struct _RtpTransport *t, mblk_t *msg , int flags, const struct sockaddr *to, socklen_t tolen){ @@ -214,6 +214,7 @@ TunnelManager::TunnelManager(LinphoneCore* lc) :TunnelClientController() ,mEnabled(false) ,mTunnelClient(NULL) ,mAutoDetectStarted(false) +,mReady(false) ,mHttpProxyPort(0){ mExosipTransport.data=this; @@ -271,6 +272,7 @@ void TunnelManager::processTunnelEvent(const Event &ev){ if (lProxy) { linphone_proxy_config_done(lProxy); } + mReady=true; }else if (mEnabled && !mTunnelClient->isReady()){ /* we got disconnected from the tunnel */ if (lProxy && linphone_proxy_config_is_registered(lProxy)) { @@ -278,6 +280,7 @@ void TunnelManager::processTunnelEvent(const Event &ev){ linphone_proxy_config_edit(lProxy); linphone_core_iterate(mCore); } + mReady=false; } } @@ -317,7 +320,7 @@ void TunnelManager::enable(bool isEnable) { mEnabled=false; stopClient(); - + mReady=false; linphone_core_set_rtp_transport_factories(mCore,NULL); eXosip_transport_hook_register(NULL); diff --git a/coreapi/TunnelManager.hh b/coreapi/TunnelManager.hh index d4c1458fc..113f76786 100644 --- a/coreapi/TunnelManager.hh +++ b/coreapi/TunnelManager.hh @@ -129,6 +129,7 @@ class UdpMirrorClient; */ LinphoneCore *getLinphoneCore(); virtual void setHttpProxy(const char *host,int port, const char *username, const char *passwd); + virtual bool isReady() const; private: enum EventType{ UdpMirrorClientEvent, @@ -143,7 +144,6 @@ class UdpMirrorClient; }; typedef std::list UdpMirrorClientList; virtual bool isStarted(); - virtual bool isReady() const; void onIterate(); static int customSendto(struct _RtpTransport *t, mblk_t *msg , int flags, const struct sockaddr *to, socklen_t tolen); static int customRecvfrom(struct _RtpTransport *t, mblk_t *msg, int flags, struct sockaddr *from, socklen_t *fromlen); @@ -173,6 +173,7 @@ class UdpMirrorClient; Mutex mMutex; static Mutex sMutex; bool mAutoDetectStarted; + bool mReady; LinphoneRtpTransportFactories mTransportFactories; std::string mHttpUserName; std::string mHttpPasswd; diff --git a/coreapi/linphone_tunnel.cc b/coreapi/linphone_tunnel.cc index f0de56694..079074aa8 100644 --- a/coreapi/linphone_tunnel.cc +++ b/coreapi/linphone_tunnel.cc @@ -233,6 +233,10 @@ bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){ return bcTunnel(tunnel)->isEnabled(); } +bool_t linphone_tunnel_connected(LinphoneTunnel *tunnel){ + return bcTunnel(tunnel)->isReady(); +} + static OrtpLogFunc tunnelOrtpLogHandler=NULL; /* diff --git a/coreapi/linphone_tunnel.h b/coreapi/linphone_tunnel.h index e42a054dc..f02baab54 100644 --- a/coreapi/linphone_tunnel.h +++ b/coreapi/linphone_tunnel.h @@ -165,6 +165,12 @@ void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled); **/ bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel); +/** + * @param tunnel object + * Returns a boolean indicating whether tunnel is connected successfully. +**/ +bool_t linphone_tunnel_connected(LinphoneTunnel *tunnel); + /** * @param tunnel object * Forces reconnection to the tunnel server. diff --git a/coreapi/linphone_tunnel_stubs.c b/coreapi/linphone_tunnel_stubs.c index 0560b3956..0865704a0 100644 --- a/coreapi/linphone_tunnel_stubs.c +++ b/coreapi/linphone_tunnel_stubs.c @@ -59,6 +59,10 @@ bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){ return FALSE; } +bool_t linphone_tunnel_connected(LinphoneTunnel *tunnel){ + return FALSE; +} + void linphone_tunnel_enable_logs_with_handler(LinphoneTunnel *tunnel, bool_t enabled, OrtpLogFunc logHandler){ } diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 42c21f01b..05258c1d1 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -413,7 +413,7 @@ static dial_plan_t const dial_plans[]={ {"Bahrain" ,"BH" , "973" , 8 , "00" }, {"Bangladesh" ,"BD" , "880" , 10 , "00" }, {"Barbados" ,"BB" , "1" , 10 , "011" }, - {"Belarus" ,"BY" , "375" , 9 , "00" }, + {"Belarus" ,"BY" , "375" , 9 , "00" }, {"Belgium" ,"BE" , "32" , 9 , "00" }, {"Belize" ,"BZ" , "501" , 7 , "00" }, {"Benin" ,"BJ" , "229" , 8 , "00" }, @@ -422,12 +422,12 @@ static dial_plan_t const dial_plans[]={ {"Bolivia" ,"BO" , "591" , 8 , "00" }, {"Bosnia and Herzegovina" ,"BA" , "387" , 8 , "00" }, {"Botswana" ,"BW" , "267" , 8 , "00" }, - {"Brazil" ,"BR" , "55" , 10 , "00" }, + {"Brazil" ,"BR" , "55" , 10 , "00" }, {"Brunei Darussalam" ,"BN" , "673" , 7 , "00" }, {"Bulgaria" ,"BG" , "359" , 9 , "00" }, {"Burkina Faso" ,"BF" , "226" , 8 , "00" }, {"Burundi" ,"BI" , "257" , 8 , "011" }, - {"Cambodia" ,"KH" , "855" , 9 , "00" }, + {"Cambodia" ,"KH" , "855" , 9 , "00" }, {"Cameroon" ,"CM" , "237" , 8 , "00" }, {"Canada" ,"CA" , "1" , 10 , "011" }, {"Cape Verde" ,"CV" , "238" , 7 , "00" }, @@ -436,188 +436,188 @@ static dial_plan_t const dial_plans[]={ {"Chad" ,"TD" , "235" , 8 , "00" }, {"Chile" ,"CL" , "56" , 9 , "00" }, {"China" ,"CN" , "86" , 11 , "00" }, - {"Colombia" ,"CO" , "57" , 10 , "00" }, - {"Comoros" ,"KM" , "269" , 7 , "00" }, - {"Congo" ,"CG" , "242" , 9 , "00" }, - {"Congo Democratic Republic" ,"CD" , "243" , 9 , "00" }, - {"Cook Islands" ,"CK" , "682" , 5 , "00" }, - {"Costa Rica" ,"CR" , "506" , 8 , "00" }, - {"C�te d'Ivoire" ,"AD" , "225" , 8 , "00" }, - {"Croatia" ,"HR" , "385" , 9 , "00" }, - {"Cuba" ,"CU" , "53" , 8 , "119" }, - {"Cyprus" ,"CY" , "357" , 8 , "00" }, - {"Czech Republic" ,"CZ" , "420" , 9 , "00" }, - {"Denmark" ,"DK" , "45" , 8 , "00" }, - {"Djibouti" ,"DJ" , "253" , 8 , "00" }, - {"Dominica" ,"DM" , "1" , 10 , "011" }, - {"Dominican Republic" ,"DO" , "1" , 10 , "011" }, - {"Ecuador" ,"EC" , "593" , 9 , "00" }, - {"Egypt" ,"EG" , "20" , 10 , "00" }, - {"El Salvador" ,"SV" , "503" , 8 , "00" }, - {"Equatorial Guinea" ,"GQ" , "240" , 9 , "00" }, - {"Eritrea" ,"ER" , "291" , 7 , "00" }, - {"Estonia" ,"EE" , "372" , 8 , "00" }, - {"Ethiopia" ,"ET" , "251" , 9 , "00" }, - {"Falkland Islands" ,"FK" , "500" , 5 , "00" }, - {"Faroe Islands" ,"FO" , "298" , 6 , "00" }, - {"Fiji" ,"FJ" , "679" , 7 , "00" }, - {"Finland" ,"FI" , "358" , 9 , "00" }, - {"France" ,"FR" , "33" , 9 , "00" }, - {"French Guiana" ,"GF" , "594" , 9 , "00" }, - {"French Polynesia" ,"PF" , "689" , 6 , "00" }, - {"Gabon" ,"GA" , "241" , 8 , "00" }, - {"Gambia" ,"GM" , "220" , 7 , "00" }, - {"Georgia" ,"GE" , "995" , 9 , "00" }, - {"Germany" ,"DE" , "49" , 11 , "00" }, - {"Ghana" ,"GH" , "233" , 9 , "00" }, - {"Gibraltar" ,"GI" , "350" , 8 , "00" }, - {"Greece" ,"GR" , "30" ,10 , "00" }, - {"Greenland" ,"GL" , "299" , 6 , "00" }, - {"Grenada" ,"GD" , "1" , 10 , "011" }, - {"Guadeloupe" ,"GP" , "590" , 9 , "00" }, - {"Guam" ,"GU" , "1" , 10 , "011" }, - {"Guatemala" ,"GT" , "502" , 8 , "00" }, - {"Guinea" ,"GN" , "224" , 8 , "00" }, - {"Guinea-Bissau" ,"GW" , "245" , 7 , "00" }, - {"Guyana" ,"GY" , "592" , 7 , "001" }, - {"Haiti" ,"HT" , "509" , 8 , "00" }, - {"Honduras" ,"HN" , "504" , 8 , "00" }, - {"Hong Kong" ,"HK" , "852" , 8 , "001" }, - {"Hungary" ,"HU" , "36" , 9 , "00" }, - {"Iceland" ,"IS" , "354" , 9 , "00" }, - {"India" ,"IN" , "91" , 10 , "00" }, - {"Indonesia" ,"ID" , "62" , 10 , "001" }, - {"Iran" ,"IR" , "98" , 10 , "00" }, - {"Iraq" ,"IQ" , "964" , 10 , "00" }, - {"Ireland" ,"IE" , "353" , 9 , "00" }, - {"Israel" ,"IL" , "972" , 9 , "00" }, - {"Italy" ,"IT" , "39" , 10 , "00" }, - {"Jamaica" ,"JM" , "1" , 10 , "011" }, - {"Japan" ,"JP" , "81" , 10 , "010" }, - {"Jordan" ,"JO" , "962" , 9 , "00" }, - {"Kazakhstan" ,"KZ" , "7" , 10 , "00" }, - {"Kenya" ,"KE" , "254" , 9 , "000" }, - {"Kiribati" ,"KI" , "686" , 5 , "00" }, - {"Korea, North" ,"KP" , "850" , 12 , "99" }, - {"Korea, South" ,"KR" , "82" , 12 , "001" }, - {"Kuwait" ,"KW" , "965" , 8 , "00" }, - {"Kyrgyzstan" ,"KG" , "996" , 9 , "00" }, - {"Laos" ,"LA" , "856" , 10 , "00" }, - {"Latvia" ,"LV" , "371" , 8 , "00" }, - {"Lebanon" ,"LB" , "961" , 7 , "00" }, - {"Lesotho" ,"LS" , "266" , 8 , "00" }, - {"Liberia" ,"LR" , "231" , 8 , "00" }, - {"Libya" ,"LY" , "218" , 8 , "00" }, - {"Liechtenstein" ,"LI" , "423" , 7 , "00" }, - {"Lithuania" ,"LT" , "370" , 8 , "00" }, - {"Luxembourg" ,"LU" , "352" , 9 , "00" }, - {"Macau" ,"MO" , "853" , 8 , "00" }, - {"Macedonia" ,"MK" , "389" , 8 , "00" }, - {"Madagascar" ,"MG" , "261" , 9 , "00" }, - {"Malawi" ,"MW" , "265" , 9 , "00" }, - {"Malaysia" ,"MY" , "60" , 9 , "00" }, - {"Maldives" ,"MV" , "960" , 7 , "00" }, - {"Mali" ,"ML" , "223" , 8 , "00" }, - {"Malta" ,"MT" , "356" , 8 , "00" }, - {"Marshall Islands" ,"MH" , "692" , 7 , "011" }, - {"Martinique" ,"MQ" , "596" , 9 , "00" }, - {"Mauritania" ,"MR" , "222" , 8 , "00" }, - {"Mauritius" ,"MU" , "230" , 7 , "00" }, - {"Mayotte Island" ,"YT" , "262" , 9 , "00" }, - {"Mexico" ,"MX" , "52" , 10 , "00" }, - {"Micronesia" ,"FM" , "691" , 7 , "011" }, - {"Moldova" ,"MD" , "373" , 8 , "00" }, - {"Monaco" ,"MC" , "377" , 8 , "00" }, - {"Mongolia" ,"MN" , "976" , 8 , "001" }, - {"Montenegro" ,"ME" , "382" , 8 , "00" }, - {"Montserrat" ,"MS" , "664" , 10 , "011" }, - {"Morocco" ,"MA" , "212" , 9 , "00" }, - {"Mozambique" ,"MZ" , "258" , 9 , "00" }, - {"Myanmar" ,"MM" , "95" , 8 , "00" }, - {"Namibia" ,"NA" , "264" , 9 , "00" }, - {"Nauru" ,"NR" , "674" , 7 , "00" }, - {"Nepal" ,"NP" , "43" , 10 , "00" }, - {"Netherlands" ,"NL" , "31" , 9 , "00" }, - {"New Caledonia" ,"NC" , "687" , 6 , "00" }, - {"New Zealand" ,"NZ" , "64" , 10 , "00" }, - {"Nicaragua" ,"NI" , "505" , 8 , "00" }, - {"Niger" ,"NE" , "227" , 8 , "00" }, - {"Nigeria" ,"NG" , "234" , 10 , "009" }, - {"Niue" ,"NU" , "683" , 4 , "00" }, - {"Norfolk Island" ,"NF" , "672" , 5 , "00" }, - {"Northern Mariana Islands" ,"MP" , "1" , 10 , "011" }, - {"Norway" ,"NO" , "47" , 8 , "00" }, - {"Oman" ,"OM" , "968" , 8 , "00" }, - {"Pakistan" ,"PK" , "92" , 10 , "00" }, - {"Palau" ,"PW" , "680" , 7 , "011" }, - {"Palestine" ,"PS" , "970" , 9 , "00" }, - {"Panama" ,"PA" , "507" , 8 , "00" }, - {"Papua New Guinea" ,"PG" , "675" , 8 , "00" }, - {"Paraguay" ,"PY" , "595" , 9 , "00" }, - {"Peru" ,"PE" , "51" , 9 , "00" }, - {"Philippines" ,"PH" , "63" , 10 , "00" }, - {"Poland" ,"PL" , "48" , 9 , "00" }, - {"Portugal" ,"PT" , "351" , 9 , "00" }, - {"Puerto Rico" ,"PR" , "1" , 10 , "011" }, - {"Qatar" ,"QA" , "974" , 8 , "00" }, - {"R�union Island" ,"RE" , "262" , 9 , "011" }, - {"Romania" ,"RO" , "40" , 9 , "00" }, - {"Russian Federation" ,"RU" , "7" , 10 , "8" }, - {"Rwanda" ,"RW" , "250" , 9 , "00" }, - {"Saint Helena" ,"SH" , "290" , 4 , "00" }, - {"Saint Kitts and Nevis" ,"KN" , "1" , 10 , "011" }, - {"Saint Lucia" ,"LC" , "1" , 10 , "011" }, - {"Saint Pierre and Miquelon" ,"PM" , "508" , 6 , "00" }, - {"Saint Vincent and the Grenadines","VC" , "1" , 10 , "011" }, - {"Samoa" ,"WS" , "685" , 7 , "0" }, - {"San Marino" ,"SM" , "378" , 10 , "00" }, - {"S�o Tom� and Pr�ncipe" ,"ST" , "239" , 7 , "00" }, - {"Saudi Arabia" ,"SA" , "966" , 9 , "00" }, - {"Senegal" ,"SN" , "221" , 9 , "00" }, - {"Serbia" ,"RS" , "381" , 9 , "00" }, - {"Seychelles" ,"SC" , "248" , 7 , "00" }, - {"Sierra Leone" ,"SL" , "232" , 8 , "00" }, - {"Singapore" ,"SG" , "65" , 8 , "001" }, - {"Slovakia" ,"SK" , "421" , 9 , "00" }, - {"Slovenia" ,"SI" , "386" , 8 , "00" }, - {"Solomon Islands" ,"SB" , "677" , 7 , "00" }, - {"Somalia" ,"SO" , "252" , 8 , "00" }, - {"South Africa" ,"ZA" , "27" , 9 , "00" }, - {"Spain" ,"ES" , "34" , 9 , "00" }, - {"Sri Lanka" ,"LK" , "94" , 9 , "00" }, - {"Sudan" ,"SD" , "249" , 9 , "00" }, - {"Suriname" ,"SR" , "597" , 7 , "00" }, - {"Swaziland" ,"SZ" , "268" , 8 , "00" }, - {"Sweden" ,"SE" , "1" , 9 , "00" }, - {"Switzerland" ,"XK" , "41" , 9 , "00" }, - {"Syria" ,"SY" , "963" , 9 , "00" }, - {"Taiwan" ,"TW" , "886" , 9 , "810" }, - {"Tajikistan" ,"TJ" , "992" , 9 , "002" }, - {"Tanzania" ,"TZ" , "255" , 9 , "000" }, - {"Thailand" ,"TH" , "66" , 9 , "001" }, - {"Togo" ,"TG" , "228" , 8 , "00" }, - {"Tokelau" ,"TK" , "690" , 4 , "00" }, - {"Tonga" ,"TO" , "676" , 5 , "00" }, - {"Trinidad and Tobago" ,"TT" , "1" , 10 , "011" }, - {"Tunisia" ,"TN" , "216" , 8 , "00" }, - {"Turkey" ,"TR" , "90" , 10 , "00" }, - {"Turkmenistan" ,"TM" , "993" , 8 , "00" }, - {"Turks and Caicos Islands" ,"TC" , "1" , 7 , "0" }, - {"Tuvalu" ,"TV" , "688" , 5 , "00" }, - {"Uganda" ,"UG" , "256" , 9 , "000" }, - {"Ukraine" ,"UA" , "380" , 9 , "00" }, - {"United Arab Emirates" ,"AE" , "971" , 9 , "00" }, - {"United Kingdom" ,"UK" , "44" , 10 , "00" }, - {"United States" ,"US" , "1" , 10 , "011" }, - {"Uruguay" ,"UY" , "598" , 8 , "00" }, - {"Uzbekistan" ,"UZ" , "998" , 9 , "8" }, - {"Vanuatu" ,"VU" , "678" , 7 , "00" }, - {"Venezuela" ,"VE" , "58" , 10 , "00" }, - {"Vietnam" ,"VN" , "84" , 9 , "00" }, - {"Wallis and Futuna" ,"WF" , "681" , 5 , "00" }, - {"Yemen" ,"YE" , "967" , 9 , "00" }, - {"Zambia" ,"ZM" , "260" , 9 , "00" }, - {"Zimbabwe" ,"ZW" , "263" , 9 , "00" }, + {"Colombia" ,"CO" , "57" , 10 , "00" }, + {"Comoros" ,"KM" , "269" , 7 , "00" }, + {"Congo" ,"CG" , "242" , 9 , "00" }, + {"Congo Democratic Republic" ,"CD" , "243" , 9 , "00" }, + {"Cook Islands" ,"CK" , "682" , 5 , "00" }, + {"Costa Rica" ,"CR" , "506" , 8 , "00" }, + {"C�te d'Ivoire" ,"AD" , "225" , 8 , "00" }, + {"Croatia" ,"HR" , "385" , 9 , "00" }, + {"Cuba" ,"CU" , "53" , 8 , "119" }, + {"Cyprus" ,"CY" , "357" , 8 , "00" }, + {"Czech Republic" ,"CZ" , "420" , 9 , "00" }, + {"Denmark" ,"DK" , "45" , 8 , "00" }, + {"Djibouti" ,"DJ" , "253" , 8 , "00" }, + {"Dominica" ,"DM" , "1" , 10 , "011" }, + {"Dominican Republic" ,"DO" , "1" , 10 , "011" }, + {"Ecuador" ,"EC" , "593" , 9 , "00" }, + {"Egypt" ,"EG" , "20" , 10 , "00" }, + {"El Salvador" ,"SV" , "503" , 8 , "00" }, + {"Equatorial Guinea" ,"GQ" , "240" , 9 , "00" }, + {"Eritrea" ,"ER" , "291" , 7 , "00" }, + {"Estonia" ,"EE" , "372" , 8 , "00" }, + {"Ethiopia" ,"ET" , "251" , 9 , "00" }, + {"Falkland Islands" ,"FK" , "500" , 5 , "00" }, + {"Faroe Islands" ,"FO" , "298" , 6 , "00" }, + {"Fiji" ,"FJ" , "679" , 7 , "00" }, + {"Finland" ,"FI" , "358" , 9 , "00" }, + {"France" ,"FR" , "33" , 9 , "00" }, + {"French Guiana" ,"GF" , "594" , 9 , "00" }, + {"French Polynesia" ,"PF" , "689" , 6 , "00" }, + {"Gabon" ,"GA" , "241" , 8 , "00" }, + {"Gambia" ,"GM" , "220" , 7 , "00" }, + {"Georgia" ,"GE" , "995" , 9 , "00" }, + {"Germany" ,"DE" , "49" , 11 , "00" }, + {"Ghana" ,"GH" , "233" , 9 , "00" }, + {"Gibraltar" ,"GI" , "350" , 8 , "00" }, + {"Greece" ,"GR" , "30" ,10 , "00" }, + {"Greenland" ,"GL" , "299" , 6 , "00" }, + {"Grenada" ,"GD" , "1" , 10 , "011" }, + {"Guadeloupe" ,"GP" , "590" , 9 , "00" }, + {"Guam" ,"GU" , "1" , 10 , "011" }, + {"Guatemala" ,"GT" , "502" , 8 , "00" }, + {"Guinea" ,"GN" , "224" , 8 , "00" }, + {"Guinea-Bissau" ,"GW" , "245" , 7 , "00" }, + {"Guyana" ,"GY" , "592" , 7 , "001" }, + {"Haiti" ,"HT" , "509" , 8 , "00" }, + {"Honduras" ,"HN" , "504" , 8 , "00" }, + {"Hong Kong" ,"HK" , "852" , 8 , "001" }, + {"Hungary" ,"HU" , "36" , 9 , "00" }, + {"Iceland" ,"IS" , "354" , 9 , "00" }, + {"India" ,"IN" , "91" , 10 , "00" }, + {"Indonesia" ,"ID" , "62" , 10 , "001" }, + {"Iran" ,"IR" , "98" , 10 , "00" }, + {"Iraq" ,"IQ" , "964" , 10 , "00" }, + {"Ireland" ,"IE" , "353" , 9 , "00" }, + {"Israel" ,"IL" , "972" , 9 , "00" }, + {"Italy" ,"IT" , "39" , 10 , "00" }, + {"Jamaica" ,"JM" , "1" , 10 , "011" }, + {"Japan" ,"JP" , "81" , 10 , "010" }, + {"Jordan" ,"JO" , "962" , 9 , "00" }, + {"Kazakhstan" ,"KZ" , "7" , 10 , "00" }, + {"Kenya" ,"KE" , "254" , 9 , "000" }, + {"Kiribati" ,"KI" , "686" , 5 , "00" }, + {"Korea, North" ,"KP" , "850" , 12 , "99" }, + {"Korea, South" ,"KR" , "82" , 12 , "001" }, + {"Kuwait" ,"KW" , "965" , 8 , "00" }, + {"Kyrgyzstan" ,"KG" , "996" , 9 , "00" }, + {"Laos" ,"LA" , "856" , 10 , "00" }, + {"Latvia" ,"LV" , "371" , 8 , "00" }, + {"Lebanon" ,"LB" , "961" , 7 , "00" }, + {"Lesotho" ,"LS" , "266" , 8 , "00" }, + {"Liberia" ,"LR" , "231" , 8 , "00" }, + {"Libya" ,"LY" , "218" , 8 , "00" }, + {"Liechtenstein" ,"LI" , "423" , 7 , "00" }, + {"Lithuania" ,"LT" , "370" , 8 , "00" }, + {"Luxembourg" ,"LU" , "352" , 9 , "00" }, + {"Macau" ,"MO" , "853" , 8 , "00" }, + {"Macedonia" ,"MK" , "389" , 8 , "00" }, + {"Madagascar" ,"MG" , "261" , 9 , "00" }, + {"Malawi" ,"MW" , "265" , 9 , "00" }, + {"Malaysia" ,"MY" , "60" , 9 , "00" }, + {"Maldives" ,"MV" , "960" , 7 , "00" }, + {"Mali" ,"ML" , "223" , 8 , "00" }, + {"Malta" ,"MT" , "356" , 8 , "00" }, + {"Marshall Islands" ,"MH" , "692" , 7 , "011" }, + {"Martinique" ,"MQ" , "596" , 9 , "00" }, + {"Mauritania" ,"MR" , "222" , 8 , "00" }, + {"Mauritius" ,"MU" , "230" , 7 , "00" }, + {"Mayotte Island" ,"YT" , "262" , 9 , "00" }, + {"Mexico" ,"MX" , "52" , 10 , "00" }, + {"Micronesia" ,"FM" , "691" , 7 , "011" }, + {"Moldova" ,"MD" , "373" , 8 , "00" }, + {"Monaco" ,"MC" , "377" , 8 , "00" }, + {"Mongolia" ,"MN" , "976" , 8 , "001" }, + {"Montenegro" ,"ME" , "382" , 8 , "00" }, + {"Montserrat" ,"MS" , "664" , 10 , "011" }, + {"Morocco" ,"MA" , "212" , 9 , "00" }, + {"Mozambique" ,"MZ" , "258" , 9 , "00" }, + {"Myanmar" ,"MM" , "95" , 8 , "00" }, + {"Namibia" ,"NA" , "264" , 9 , "00" }, + {"Nauru" ,"NR" , "674" , 7 , "00" }, + {"Nepal" ,"NP" , "43" , 10 , "00" }, + {"Netherlands" ,"NL" , "31" , 9 , "00" }, + {"New Caledonia" ,"NC" , "687" , 6 , "00" }, + {"New Zealand" ,"NZ" , "64" , 10 , "00" }, + {"Nicaragua" ,"NI" , "505" , 8 , "00" }, + {"Niger" ,"NE" , "227" , 8 , "00" }, + {"Nigeria" ,"NG" , "234" , 10 , "009" }, + {"Niue" ,"NU" , "683" , 4 , "00" }, + {"Norfolk Island" ,"NF" , "672" , 5 , "00" }, + {"Northern Mariana Islands" ,"MP" , "1" , 10 , "011" }, + {"Norway" ,"NO" , "47" , 8 , "00" }, + {"Oman" ,"OM" , "968" , 8 , "00" }, + {"Pakistan" ,"PK" , "92" , 10 , "00" }, + {"Palau" ,"PW" , "680" , 7 , "011" }, + {"Palestine" ,"PS" , "970" , 9 , "00" }, + {"Panama" ,"PA" , "507" , 8 , "00" }, + {"Papua New Guinea" ,"PG" , "675" , 8 , "00" }, + {"Paraguay" ,"PY" , "595" , 9 , "00" }, + {"Peru" ,"PE" , "51" , 9 , "00" }, + {"Philippines" ,"PH" , "63" , 10 , "00" }, + {"Poland" ,"PL" , "48" , 9 , "00" }, + {"Portugal" ,"PT" , "351" , 9 , "00" }, + {"Puerto Rico" ,"PR" , "1" , 10 , "011" }, + {"Qatar" ,"QA" , "974" , 8 , "00" }, + {"R�union Island" ,"RE" , "262" , 9 , "011" }, + {"Romania" ,"RO" , "40" , 9 , "00" }, + {"Russian Federation" ,"RU" , "7" , 10 , "8" }, + {"Rwanda" ,"RW" , "250" , 9 , "00" }, + {"Saint Helena" ,"SH" , "290" , 4 , "00" }, + {"Saint Kitts and Nevis" ,"KN" , "1" , 10 , "011" }, + {"Saint Lucia" ,"LC" , "1" , 10 , "011" }, + {"Saint Pierre and Miquelon" ,"PM" , "508" , 6 , "00" }, + {"Saint Vincent and the Grenadines","VC" , "1" , 10 , "011" }, + {"Samoa" ,"WS" , "685" , 7 , "0" }, + {"San Marino" ,"SM" , "378" , 10 , "00" }, + {"S�o Tom� and Pr�ncipe" ,"ST" , "239" , 7 , "00" }, + {"Saudi Arabia" ,"SA" , "966" , 9 , "00" }, + {"Senegal" ,"SN" , "221" , 9 , "00" }, + {"Serbia" ,"RS" , "381" , 9 , "00" }, + {"Seychelles" ,"SC" , "248" , 7 , "00" }, + {"Sierra Leone" ,"SL" , "232" , 8 , "00" }, + {"Singapore" ,"SG" , "65" , 8 , "001" }, + {"Slovakia" ,"SK" , "421" , 9 , "00" }, + {"Slovenia" ,"SI" , "386" , 8 , "00" }, + {"Solomon Islands" ,"SB" , "677" , 7 , "00" }, + {"Somalia" ,"SO" , "252" , 8 , "00" }, + {"South Africa" ,"ZA" , "27" , 9 , "00" }, + {"Spain" ,"ES" , "34" , 9 , "00" }, + {"Sri Lanka" ,"LK" , "94" , 9 , "00" }, + {"Sudan" ,"SD" , "249" , 9 , "00" }, + {"Suriname" ,"SR" , "597" , 7 , "00" }, + {"Swaziland" ,"SZ" , "268" , 8 , "00" }, + {"Sweden" ,"SE" , "1" , 9 , "00" }, + {"Switzerland" ,"XK" , "41" , 9 , "00" }, + {"Syria" ,"SY" , "963" , 9 , "00" }, + {"Taiwan" ,"TW" , "886" , 9 , "810" }, + {"Tajikistan" ,"TJ" , "992" , 9 , "002" }, + {"Tanzania" ,"TZ" , "255" , 9 , "000" }, + {"Thailand" ,"TH" , "66" , 9 , "001" }, + {"Togo" ,"TG" , "228" , 8 , "00" }, + {"Tokelau" ,"TK" , "690" , 4 , "00" }, + {"Tonga" ,"TO" , "676" , 5 , "00" }, + {"Trinidad and Tobago" ,"TT" , "1" , 10 , "011" }, + {"Tunisia" ,"TN" , "216" , 8 , "00" }, + {"Turkey" ,"TR" , "90" , 10 , "00" }, + {"Turkmenistan" ,"TM" , "993" , 8 , "00" }, + {"Turks and Caicos Islands" ,"TC" , "1" , 7 , "0" }, + {"Tuvalu" ,"TV" , "688" , 5 , "00" }, + {"Uganda" ,"UG" , "256" , 9 , "000" }, + {"Ukraine" ,"UA" , "380" , 9 , "00" }, + {"United Arab Emirates" ,"AE" , "971" , 9 , "00" }, + {"United Kingdom" ,"UK" , "44" , 10 , "00" }, + {"United States" ,"US" , "1" , 10 , "011" }, + {"Uruguay" ,"UY" , "598" , 8 , "00" }, + {"Uzbekistan" ,"UZ" , "998" , 9 , "8" }, + {"Vanuatu" ,"VU" , "678" , 7 , "00" }, + {"Venezuela" ,"VE" , "58" , 10 , "00" }, + {"Vietnam" ,"VN" , "84" , 9 , "00" }, + {"Wallis and Futuna" ,"WF" , "681" , 5 , "00" }, + {"Yemen" ,"YE" , "967" , 9 , "00" }, + {"Zambia" ,"ZM" , "260" , 9 , "00" }, + {"Zimbabwe" ,"ZW" , "263" , 9 , "00" }, {NULL ,NULL , "" , 0 , NULL } }; static dial_plan_t most_common_dialplan={ "generic" ,"", "", 10, "00"}; @@ -1092,29 +1092,40 @@ SipSetup *linphone_proxy_config_get_sip_setup(LinphoneProxyConfig *cfg){ return NULL; } +static bool_t can_register(LinphoneProxyConfig *cfg){ + LinphoneCore *lc=cfg->lc; +#ifdef BUILD_UPNP + if (linphone_core_get_firewall_policy(lc)==LinphonePolicyUseUpnp){ + if(lc->sip_conf.register_only_when_upnp_is_ok && + (lc->upnp == NULL || !linphone_upnp_context_is_ready_for_register(lc->upnp))) { + return FALSE; + } + } +#endif //BUILD_UPNP + if (lc->sip_conf.register_only_when_network_is_up){ + LinphoneTunnel *tunnel=linphone_core_get_tunnel(lc); + if (tunnel && linphone_tunnel_enabled(tunnel)){ + return linphone_tunnel_connected(tunnel); + }else{ + return lc->network_reachable; + } + } + return TRUE; +} + void linphone_proxy_config_update(LinphoneProxyConfig *cfg){ LinphoneCore *lc=cfg->lc; if (cfg->commit){ if (cfg->type && cfg->ssctx==NULL){ linphone_proxy_config_activate_sip_setup(cfg); } - switch(linphone_core_get_firewall_policy(lc)) { - case LinphonePolicyUseUpnp: -#ifdef BUILD_UPNP - if(lc->sip_conf.register_only_when_upnp_is_ok && - (lc->upnp == NULL || !linphone_upnp_context_is_ready_for_register(lc->upnp))) { - break; + if (can_register(cfg)){ + linphone_proxy_config_register(cfg); + if (cfg->publish && cfg->publish_op==NULL){ + linphone_proxy_config_send_publish(cfg,lc->presence_mode); } -#endif //BUILD_UPNP - default: - if ((!lc->sip_conf.register_only_when_network_is_up || lc->network_reachable)) { - linphone_proxy_config_register(cfg); - } - } - if (cfg->publish && cfg->publish_op==NULL){ - linphone_proxy_config_send_publish(cfg,lc->presence_mode); + cfg->commit=FALSE; } - cfg->commit=FALSE; } } From 02b7c282a153ba96b3f82d5f38a06c27cc207518 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 13 May 2013 15:12:14 +0200 Subject: [PATCH 123/177] Remove useless arguement in linphone_core_upnp_available --- coreapi/linphonecore.c | 2 +- coreapi/linphonecore.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 12c8880b6..02db3b54f 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4190,7 +4190,7 @@ const char * linphone_core_get_stun_server(const LinphoneCore *lc){ return lc->net_conf.stun_server; } -bool_t linphone_core_upnp_available(const LinphoneCore *lc){ +bool_t linphone_core_upnp_available(){ #ifdef BUILD_UPNP return TRUE; #else diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 5ae73cc4d..67d4fb255 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1199,10 +1199,9 @@ const char * linphone_core_get_stun_server(const LinphoneCore *lc); * @ingroup network_parameters * Return the availability of uPnP. * - * @param lc #LinphoneCore * @return true if uPnP is available otherwise return false. */ -bool_t linphone_core_upnp_available(const LinphoneCore *lc); +bool_t linphone_core_upnp_available(); /** * @ingroup network_parameters From 440d51434a3214a994a3db9955712080b202cc35 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 14 May 2013 11:57:30 +0200 Subject: [PATCH 124/177] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 239be1a39..382f7d766 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 239be1a39fa3f4ab460e8e7ab6d4d3d31e15e72a +Subproject commit 382f7d766dcc2505a2bce2f2144d5f48103dfbd5 From d42202ac67387f668e7201ab4b1e6b5d39b769ea Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 14 May 2013 12:03:41 +0200 Subject: [PATCH 125/177] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 382f7d766..3f06cd60f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 382f7d766dcc2505a2bce2f2144d5f48103dfbd5 +Subproject commit 3f06cd60f1864b8c811e0f4e4590991802ce5ea7 From 66dd5cec662d83030955966da96bb6addcde55f1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 14 May 2013 12:13:37 +0200 Subject: [PATCH 126/177] Renamed android libraries to avoid confusion --- build/android/Android-no-neon.mk | 8 ++++++- build/android/Android.mk | 3 +++ .../core/LinphoneCoreFactoryImpl.java | 24 +++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/build/android/Android-no-neon.mk b/build/android/Android-no-neon.mk index d8e75ca0b..061a96217 100644 --- a/build/android/Android-no-neon.mk +++ b/build/android/Android-no-neon.mk @@ -35,7 +35,13 @@ endif LOCAL_MODULE := liblinphonenoneon ifeq ($(TARGET_ARCH_ABI),armeabi) -LOCAL_MODULE_FILENAME := liblinphonearmv5 +LOCAL_MODULE_FILENAME := liblinphonearmv5noneon +endif +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +LOCAL_MODULE_FILENAME := liblinphonearmv7noneon +endif +ifeq ($(TARGET_ARCH_ABI),x86) +LOCAL_MODULE_FILENAME := liblinphonex86noneon endif include $(BUILD_SHARED_LIBRARY) diff --git a/build/android/Android.mk b/build/android/Android.mk index 10fba32dd..0dc0bd041 100755 --- a/build/android/Android.mk +++ b/build/android/Android.mk @@ -34,6 +34,9 @@ LOCAL_SHARED_LIBRARIES += \ endif LOCAL_MODULE := liblinphone +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +LOCAL_MODULE_FILENAME := liblinphonearmv7 +endif include $(BUILD_SHARED_LIBRARY) diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 0b799f33e..1d14ceb14 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -71,20 +71,20 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { loadOptionalLibrary("bcg729"); //Main library - if (!hasNeonInCpuFeatures()) { - try { - if (!isArmv7() && !Version.isX86()) { - System.loadLibrary("linphonearmv5"); - } else { - System.loadLibrary("linphonenoneon"); - } - Log.w("linphone", "No-neon liblinphone loaded"); - } catch (UnsatisfiedLinkError ule) { - Log.w("linphone", "Failed to load no-neon liblinphone, loading neon liblinphone"); - System.loadLibrary("linphone"); + if (isArmv7()) { + if (hasNeonInCpuFeatures()) { + Log.d("linphone", "armv7 liblinphone loaded"); + System.loadLibrary("linphonearmv7"); + } else { + Log.w("linphone", "No-neon armv7 liblinphone loaded"); + System.loadLibrary("linphonearmv7noneon"); } + } else if (Version.isX86()) { + Log.d("linphone", "No-neon x86 liblinphone loaded"); + System.loadLibrary("linphonex86noneon"); } else { - System.loadLibrary("linphone"); + Log.d("linphone", "No-neon armv5 liblinphone loaded"); + System.loadLibrary("linphonearmv5noneon"); } Version.dumpCapabilities(); From 381690328a26dfbb4d5258c7d060e2bafaef5b13 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 15 May 2013 10:46:15 +0200 Subject: [PATCH 127/177] Remove core argument in upnp_available in jni --- coreapi/linphonecore_jni.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 02ac62c7a..5619993ab 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2491,7 +2491,7 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_getConfig(JNIEnv *env, } extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_upnpAvailable(JNIEnv *env, jobject thiz, jlong lc) { - return (jboolean) linphone_core_upnp_available((LinphoneCore *)lc); + return (jboolean) linphone_core_upnp_available(); } extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getUpnpState(JNIEnv *env, jobject thiz, jlong lc) { From 7a9df2a1f7166e8516b47fe4b365e6187911b0ad Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 15 May 2013 10:50:30 +0200 Subject: [PATCH 128/177] Renamed liblinphonex86noneon to liblinphonex86 --- build/android/Android-no-neon.mk | 2 +- java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/android/Android-no-neon.mk b/build/android/Android-no-neon.mk index 061a96217..39818fbf4 100644 --- a/build/android/Android-no-neon.mk +++ b/build/android/Android-no-neon.mk @@ -41,7 +41,7 @@ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) LOCAL_MODULE_FILENAME := liblinphonearmv7noneon endif ifeq ($(TARGET_ARCH_ABI),x86) -LOCAL_MODULE_FILENAME := liblinphonex86noneon +LOCAL_MODULE_FILENAME := liblinphonex86 endif include $(BUILD_SHARED_LIBRARY) diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 1d14ceb14..8cedba445 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -81,7 +81,7 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { } } else if (Version.isX86()) { Log.d("linphone", "No-neon x86 liblinphone loaded"); - System.loadLibrary("linphonex86noneon"); + System.loadLibrary("linphonex86"); } else { Log.d("linphone", "No-neon armv5 liblinphone loaded"); System.loadLibrary("linphonearmv5noneon"); From 771c7f0e71699d60f2c2c8860a35154a8140c44d Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 21 Nov 2012 16:12:35 +0100 Subject: [PATCH 129/177] Add opus codec. --- coreapi/linphonecore.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 02db3b54f..186f6f976 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -825,6 +825,7 @@ typedef struct codec_desc{ }codec_desc_t; static codec_desc_t codec_pref_order[]={ + {"opus", 48000}, {"SILK", 16000}, {"speex", 16000}, {"speex", 8000}, @@ -1287,6 +1288,7 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_opus,-1,NULL); linphone_core_handle_static_payloads(lc); ms_init(); From 1a38d9fd74ae654adceff746be61d0dd29557924 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 15 May 2013 14:30:41 +0200 Subject: [PATCH 130/177] improve notifications of incoming chat messages - star appears even if already in the good chat tab - contact with active chats are displayed first in the friend list - activate icon pumping on Mac OS --- gtk/chat.c | 28 ++++++++++------------------ gtk/friendlist.c | 8 ++++++++ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 2cba0754f..a58f443d6 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -66,6 +66,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); + linphone_chat_room_mark_as_read(cr); linphone_gtk_friend_list_update_chat_picture(); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); from=g_object_get_data(G_OBJECT(w),"from_message"); @@ -364,7 +365,6 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.blue = 61952; with_str=linphone_address_as_string_uri_only(with); - linphone_chat_room_mark_as_read(cr); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text),FALSE); @@ -404,8 +404,9 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres } LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){ - LinphoneChatRoom *cr=linphone_core_create_chat_room(linphone_gtk_get_core(),linphone_address_as_string(with)); - if (!cr) return NULL; + char *tmp=linphone_address_as_string(with); + LinphoneChatRoom *cr=linphone_core_create_chat_room(linphone_gtk_get_core(),tmp); + ms_free(tmp); return cr; } @@ -424,7 +425,6 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, GtkTextIter end; GtkTextBuffer *text_buffer; - linphone_chat_room_mark_as_read(cr); text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); gtk_text_buffer_delete (text_buffer, &start, &end); @@ -434,6 +434,8 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); g_object_set_data(G_OBJECT(chat_view),"from_message",g_strdup(uri_str)); display_history_message(chat_view,messages,uri); + gtk_text_buffer_get_end_iter(text_buffer,&end); + gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0); } ms_free(from_str); ms_free(uri_str); @@ -445,11 +447,6 @@ void linphone_gtk_chat_destroyed(GtkWidget *w){ linphone_chat_room_destroy(cr); } -void linphone_gtk_chat_close(GtkWidget *button){ - GtkWidget *w=gtk_widget_get_toplevel(button); - gtk_widget_destroy(w); -} - void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg ) { @@ -457,7 +454,7 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, GtkWidget *friendlist=linphone_gtk_get_widget ( main_window,"contact_list" ); GtkWidget *w; gboolean send=TRUE; - GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" ); + /*GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" );*/ char *from=linphone_address_as_string ( linphone_chat_message_get_from ( msg ) ); w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" ); @@ -481,7 +478,7 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, g_object_set_data ( G_OBJECT ( friendlist ),"from",from ); } -#ifdef HAVE_GTK_OSXs +#ifdef HAVE_GTK_OSX /* Notified when a new message is sent */ linphone_gtk_status_icon_set_blinking ( TRUE ); #else @@ -495,14 +492,9 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, } #endif if ( send ) { - if ( gtk_notebook_get_current_page ( notebook ) !=gtk_notebook_page_num ( notebook,w ) ) { - linphone_gtk_show_friends(); - } else { - linphone_chat_room_mark_as_read ( room ); - } linphone_gtk_push_text ( w,linphone_chat_message_get_from ( msg ), FALSE,room,msg,FALSE ); - } else { - linphone_gtk_show_friends(); } + linphone_gtk_show_friends(); + } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index f7e683f95..12da891f4 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -352,6 +352,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){ } else { linphone_gtk_load_chatroom(cr,uri,page); } + linphone_chat_room_mark_as_read(cr); gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,page)); linphone_gtk_friend_list_update_chat_picture(); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); @@ -556,6 +557,13 @@ static void on_name_column_clicked(GtkTreeModel *model){ static int get_friend_weight(const LinphoneFriend *lf){ int w=0; + LinphoneCore *lc=linphone_gtk_get_core(); + LinphoneChatRoom *cr=linphone_core_get_chat_room(lc,linphone_friend_get_address(lf)); + + if (cr && linphone_chat_room_get_unread_messages_count(cr)>0){ + w+=2000; + } + switch(linphone_friend_get_status(lf)){ case LinphoneStatusOnline: w+=1000; From f9bd7bb035d6e5df573cd9530e381bf2a1d33c76 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 16 May 2013 12:25:53 +0200 Subject: [PATCH 131/177] scroll to the end when load chat history --- gtk/chat.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index a58f443d6..13c140615 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -129,6 +129,15 @@ void udpate_tab_chat_header(GtkWidget *chat_view,const LinphoneAddress *uri,Linp gtk_widget_show_all(w); } +static gboolean scroll_to_end(GtkTextView *w){ + GtkTextBuffer *buffer=gtk_text_view_get_buffer(w); + GtkTextIter iter; + gtk_text_buffer_get_end_iter(buffer,&iter); + GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); + gtk_text_view_scroll_mark_onscreen(w,mark); + return FALSE; +} + void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gboolean me,LinphoneChatRoom *cr,LinphoneChatMessage *msg, gboolean hist){ GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview")); @@ -199,8 +208,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, } gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); - GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); - gtk_text_view_scroll_mark_onscreen(text,mark); + g_idle_add((GSourceFunc)scroll_to_end,text); ms_free(from_str); } From eacf974c7430bab29a414bb370a0a458b1f61f15 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 20 May 2013 12:02:34 +0200 Subject: [PATCH 132/177] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 3f06cd60f..9b3487265 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 3f06cd60f1864b8c811e0f4e4590991802ce5ea7 +Subproject commit 9b3487265555c933375ce932f4e3e6511cf532dd From 223915d43c16044deccc57569b133106ed0d1a38 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 20 May 2013 12:08:10 +0200 Subject: [PATCH 133/177] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 9b3487265..c799531d9 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 9b3487265555c933375ce932f4e3e6511cf532dd +Subproject commit c799531d9403c50fb06965a921e1530c814e02a1 From ac52794f58320bbce6fdfea23d6ab33350a3ff49 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 21 May 2013 09:23:38 +0200 Subject: [PATCH 134/177] Update ms2 (ffmpeg version issue) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index c799531d9..1a69168c1 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit c799531d9403c50fb06965a921e1530c814e02a1 +Subproject commit 1a69168c1f30a7be439606069bd8dc4d5becac02 From 16706307e0ba3d9012a4faf041d5c2215ffc95f0 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 21 May 2013 14:03:27 +0200 Subject: [PATCH 135/177] Update ms2 (ffmpeg) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 1a69168c1..47483a49a 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 1a69168c1f30a7be439606069bd8dc4d5becac02 +Subproject commit 47483a49a55765197c855eefd29c9d382eaa329a From b4a955f4d040a13d07b9a89bbb77758e57f2db1e Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 21 May 2013 14:02:18 +0200 Subject: [PATCH 136/177] Declare variables at the beginning of code blocks to fix compilation errors. --- coreapi/linphonecall.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index db3190bbb..d5366e5c6 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -84,9 +84,11 @@ static bool_t linphone_call_are_all_streams_encrypted(LinphoneCall *call) { #ifdef VIDEO_ENABLED // If video enabled, check ZRTP encryption in videostream - const LinphoneCallParams *params=linphone_call_get_current_params(call); - if (params->has_video && !call->videostream_encrypted) { - return FALSE; + { + const LinphoneCallParams *params=linphone_call_get_current_params(call); + if (params->has_video && !call->videostream_encrypted) { + return FALSE; + } } #endif @@ -110,9 +112,9 @@ void propagate_encryption_changed(LinphoneCall *call){ #ifdef VIDEO_ENABLED static void linphone_call_videostream_encryption_changed(void *data, bool_t encrypted){ - ms_message("Video stream is %s", encrypted ? "encrypted" : "not encrypted"); - LinphoneCall *call = (LinphoneCall *)data; + + ms_message("Video stream is %s", encrypted ? "encrypted" : "not encrypted"); call->videostream_encrypted=encrypted; propagate_encryption_changed(call); } @@ -135,12 +137,14 @@ static void linphone_call_audiostream_encryption_changed(void *data, bool_t encr #ifdef VIDEO_ENABLED // Enable video encryption - const LinphoneCallParams *params=linphone_call_get_current_params(call); - if (params->has_video) { - ms_message("Trying to enable encryption on video stream"); - OrtpZrtpParams params; - params.zid_file=NULL; //unused - video_stream_enable_zrtp(call->videostream,call->audiostream,¶ms); + { + const LinphoneCallParams *params=linphone_call_get_current_params(call); + if (params->has_video) { + OrtpZrtpParams params; + ms_message("Trying to enable encryption on video stream"); + params.zid_file=NULL; //unused + video_stream_enable_zrtp(call->videostream,call->audiostream,¶ms); + } } #endif } @@ -1627,11 +1631,11 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna const char *rtcp_addr=vstream->rtcp_addr[0]!='\0' ? vstream->rtcp_addr : call->resultdesc->addr; call->video_profile=make_profile(call,call->resultdesc,vstream,&used_pt); if (used_pt!=-1){ - call->current_params.video_codec = rtp_profile_get_payload(call->video_profile, used_pt); VideoStreamDir dir=VideoStreamSendRecv; MSWebCam *cam=lc->video_conf.device; bool_t is_inactive=FALSE; + call->current_params.video_codec = rtp_profile_get_payload(call->video_profile, used_pt); call->current_params.has_video=TRUE; video_stream_enable_adaptive_bitrate_control(call->videostream, @@ -1701,9 +1705,6 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_muted, bool_t send_ringbacktone){ LinphoneCore *lc=call->core; - call->current_params.audio_codec = NULL; - call->current_params.video_codec = NULL; - LinphoneAddress *me=linphone_core_get_primary_contact_parsed(lc); char *cname; bool_t use_arc=linphone_core_adaptive_rate_control_enabled(lc); @@ -1712,6 +1713,9 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut SalProtoRtpAvp,SalVideo); #endif + call->current_params.audio_codec = NULL; + call->current_params.video_codec = NULL; + if ((call->audiostream == NULL) && (call->videostream == NULL)) { ms_fatal("start_media_stream() called without prior init !"); return; From c87b06a6e6476b191009f079d661bbf09ed8c917 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 21 May 2013 14:40:16 +0200 Subject: [PATCH 137/177] Declare variables at the beginning of code blocks to fix compilation errors. --- coreapi/linphonecore.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 02db3b54f..f60640160 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2838,10 +2838,13 @@ int linphone_core_start_update_call(LinphoneCore *lc, LinphoneCall *call){ **/ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const LinphoneCallParams *params){ int err=0; +#ifdef VIDEO_ENABLED + bool_t has_video = FALSE; +#endif if (params!=NULL){ linphone_call_set_state(call,LinphoneCallUpdating,"Updating call"); #ifdef VIDEO_ENABLED - bool_t has_video = call->params.has_video; + has_video = call->params.has_video; // Video removing if((call->videostream != NULL) && !params->has_video) { @@ -4677,9 +4680,9 @@ unsigned long linphone_core_get_native_preview_window_id(const LinphoneCore *lc) * If not set the core will create its own window. **/ void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long id){ - lc->preview_window_id=id; #ifdef VIDEO_ENABLED LinphoneCall *call=linphone_core_get_current_call(lc); + lc->preview_window_id=id; if (call!=NULL && call->videostream){ video_stream_set_native_preview_window_id(call->videostream,id); }else if (lc->previewstream){ @@ -4693,8 +4696,8 @@ void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long **/ void linphone_core_show_video(LinphoneCore *lc, bool_t show){ #ifdef VIDEO_ENABLED - ms_error("linphone_core_show_video %d", show); LinphoneCall *call=linphone_core_get_current_call(lc); + ms_error("linphone_core_show_video %d", show); if (call!=NULL && call->videostream){ video_stream_show_video(call->videostream,show); } @@ -4730,9 +4733,11 @@ void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation) { ms_message("%s : rotation=%d\n", __FUNCTION__, rotation); lc->device_rotation = rotation; #ifdef VIDEO_ENABLED - LinphoneCall *call=linphone_core_get_current_call(lc); - if (call!=NULL && call->videostream){ - video_stream_set_device_rotation(call->videostream,rotation); + { + LinphoneCall *call=linphone_core_get_current_call(lc); + if (call!=NULL && call->videostream){ + video_stream_set_device_rotation(call->videostream,rotation); + } } #endif } From da264d2cc56a7c56b9c4b30ac005d68574df70ba Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 21 May 2013 15:02:49 +0200 Subject: [PATCH 138/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 47483a49a..3f2672fcf 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 47483a49a55765197c855eefd29c9d382eaa329a +Subproject commit 3f2672fcf8a8d8f951047844d38dca1631999d7e From 889ff55a035ece493d053d5bd631df560c28c062 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Wed, 22 May 2013 22:58:08 +0200 Subject: [PATCH 139/177] AAC-ELD: support PLC and multiple frames per RTP packet and fix uninit to free the audio converter. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 3f2672fcf..6e4adda46 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 3f2672fcf8a8d8f951047844d38dca1631999d7e +Subproject commit 6e4adda46186fdb197a6bca1dd7097b313fff09d From 7cb2aa2639fd6180e8996eee303cfbbcb3048941 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Thu, 23 May 2013 11:52:29 +0200 Subject: [PATCH 140/177] AAC-ELD : set an initial max ptime at 50ms - to avoid ptime automatic growing too high when packets are losts - setting overridden up to 100 by initial set ptime --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 6e4adda46..58745e586 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 6e4adda46186fdb197a6bca1dd7097b313fff09d +Subproject commit 58745e5866d325c07255bf34225c8b621e87870b From fe3c0692c2c8196924febb81c205fef298f24f37 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 24 May 2013 10:36:22 +0200 Subject: [PATCH 141/177] update ms2&ortp to support opus --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index 58745e586..f0c613987 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 58745e5866d325c07255bf34225c8b621e87870b +Subproject commit f0c61398705609e28cbcb82f4c650ebd16ec0917 diff --git a/oRTP b/oRTP index 2d8a82247..68bdfc201 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 2d8a82247fbebbd690ae2fc8300522ab9b71a542 +Subproject commit 68bdfc20122f0231c6853e3b4b9a07e57955ad76 From c8620874e4e3a487d0fd27f204b774dbed34d80f Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 24 May 2013 10:55:41 +0200 Subject: [PATCH 142/177] ready for release --- NEWS | 22 ++++++++++++++++++++-- README | 31 +++++++++++++++---------------- mediastreamer2 | 2 +- oRTP | 2 +- 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/NEWS b/NEWS index 413970e6a..0eede9fa5 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,24 @@ -linphone-3.xxx -- +linphone-3.6.0 -- May 27, 2013 + UI: + * new friend list and chat messaging UI + * enhanced call history + * call and conference audio recording + * persistent chat history + * DSCP settings for SIP and RTP + * display of call statistics (when clicking on the quality indicator bar) + core: + * ICE for efficient RTP exchange * fix bug in zRTP support (upgrade required) - * + * call recording + * uPnP + * call statistics + * adaptive bitrate control improvements + * faster call quality indicator feedback + * DSCP settings for SIP and RTP + * detailed call statistics feedback API + + Requires: mediastreamer2 = 2.9.0 and ortp = 0.22.0 + linphone-3.5.2 -- February 22, 2012 * updated oRTP to 0.20.0 diff --git a/README b/README index 1a66f4a27..a1fb5bd3d 100644 --- a/README +++ b/README @@ -8,29 +8,35 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. - intltool - you need at least: - - libosip2>=3.0.3 - - libeXosip2>=3.0.3 + - libosip2>=3.5.0 + - libeXosip2>=3.5.0 - speex>=1.2.0 (including libspeexdsp part) + if you want the gtk/glade interface: - libgtk >=2.16.0 + if you want video support: - - SDL>=1.2.10 + - libvpx (VP8 codec) - libavcodec (ffmpeg) - libswscale (part of ffmpeg too) for better scaling performance - libxv (x11 video extension) - - ligl1-mesa (OpenGL API -- GLX development files) - - libglew (OpenGL Extension Wrangler library) - - libv4l (Video for linux) - - libx11 (x11) + - ligl1-mesa (OpenGL API -- GLX development files) + - libglew (OpenGL Extension Wrangler library) + - libv4l (Video for linux) + - libx11 (x11) - theora (optional) - + gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional) + libreadline (optional: for convenient command line in linphonec) + libsoup (optional: for wizard - account creation assistant) - + libsqlite3 (optional : for a local history of messages) + + libsqlite3 (optional : for a local history of chat messages) + if you want uPnP support (optional): - libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch)) + + Here is the command line to get these dependencies installed for Ubuntu && Debian + + $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev + + + for optional library + $ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev + Install srtp (optional) for call encryption : $ git clone git://git.linphone.org/srtp.git @@ -43,7 +49,6 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make $ sudo make install -with their corresponding -dev or -devel package if you don't use source packages. - Compile linphone @@ -52,13 +57,7 @@ with their corresponding -dev or -devel package if you don't use source packages $ make && sudo make install $ sudo ldconfig -- Command line for Ubuntu && Debian - $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev - - + for optional library - $ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev - For windows compilation see README.mingw. For macOS X, see README.macos diff --git a/mediastreamer2 b/mediastreamer2 index f0c613987..2b43ce538 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f0c61398705609e28cbcb82f4c650ebd16ec0917 +Subproject commit 2b43ce538299df8d9bc9d8f37de5f74a05342792 diff --git a/oRTP b/oRTP index 68bdfc201..2c37d1205 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 68bdfc20122f0231c6853e3b4b9a07e57955ad76 +Subproject commit 2c37d1205e9dd0e30a918ccf666ab217b66c2899 From 369a1f56fbdfb52fea97de4b17b1bad8ff8f506a Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 24 May 2013 11:04:37 +0200 Subject: [PATCH 143/177] fix ms2 version for opus --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 2b43ce538..ef59e9370 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 2b43ce538299df8d9bc9d8f37de5f74a05342792 +Subproject commit ef59e93709972e8e7ed1a4b642f0c113b575916f From e03affb6664da313913ee45dd30ca4313d106204 Mon Sep 17 00:00:00 2001 From: Johan Pascal Date: Fri, 24 May 2013 13:28:47 +0200 Subject: [PATCH 144/177] Add fmtp parameters to opus payload to enable FEC and DTX - update ms2 to get opus filter with locks on ptime --- coreapi/linphonecore.c | 2 +- mediastreamer2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index f4e5536ed..f0963f904 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1288,7 +1288,7 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); - linphone_core_assign_payload_type(lc,&payload_type_opus,-1,NULL); + linphone_core_assign_payload_type(lc,&payload_type_opus,-1,"useinbandfec=1; usedtx=1"); linphone_core_handle_static_payloads(lc); ms_init(); diff --git a/mediastreamer2 b/mediastreamer2 index ef59e9370..2278eb3fc 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ef59e93709972e8e7ed1a4b642f0c113b575916f +Subproject commit 2278eb3fca4601bd5911f1fe9585d0a3f643f965 From 7b6bf69ed818b15c9aad31150a9d5a223bc46619 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 24 May 2013 16:11:47 +0200 Subject: [PATCH 145/177] update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 2278eb3fc..f8ca60656 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 2278eb3fca4601bd5911f1fe9585d0a3f643f965 +Subproject commit f8ca6065676eff95752d546e387684ccc90e7b1e From ca9e8b9baa3a5d12712c666a6f266cae2577ddcf Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Fri, 24 May 2013 16:18:11 +0200 Subject: [PATCH 146/177] Update README.mingw for sqlite3 building --- README.mingw | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.mingw b/README.mingw index 42b130f33..be45614f2 100644 --- a/README.mingw +++ b/README.mingw @@ -136,11 +136,21 @@ libgnutls (from the web) libgsm (from the web) libxml2 (compiled) libsoup (compiled) +libsqlite3 (compiled) Remarks: For every package compiled that goes into linphone-deps, .la files (libtool files) must be removed to avoid libtool errors. When running "make install DESTDIR=", somepath must be absolute and should not contain any ~ or space. +- building sqlite3 + * download the sources on the following website: + http://www.sqlite.org/download.html (choose the sqlite-autoconf-3XXX.tar.gz) + + * install: + ./configure + make && make install DESTDIR=/home//sqlite3-install + then copy the content of ~/sqlite3-install/usr/local/ into linphone-deps/. + - building ffmpeg ./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make make install DESTDIR=/home//ffmpeg-install @@ -152,6 +162,7 @@ When running "make install DESTDIR=", somepath must be absolute and sh ./configure --enable-shared --disable-static && make && make install DESTDIR=/home//libxml2-install copy ~/libxml2-install/usr/local/* into linphone-deps/. + - building x264: * download yasm normal version windows executable from yasm project page: From 415d0a159e50a94b716d1eb150976d542f02dbff Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 24 May 2013 17:59:24 +0200 Subject: [PATCH 147/177] ready for 3.6 release --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 5bd0570cc..0fcf38fc9 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.5.99.0],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.6.0],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([coreapi/linphonecore.c]) From 6596c7f4cef274152a0d9b4bc2f89d31ee33f8e0 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 27 May 2013 10:47:45 +0200 Subject: [PATCH 148/177] add missing sqlite dll --- linphone-deps.filelist | 1 + 1 file changed, 1 insertion(+) diff --git a/linphone-deps.filelist b/linphone-deps.filelist index 1df0777a6..7eef0eea5 100755 --- a/linphone-deps.filelist +++ b/linphone-deps.filelist @@ -14,3 +14,4 @@ ./bin/libgpg-error-0.dll ./bin/libgnutls-26.dll ./bin/libtasn1-3.dll +./bin/libsqlite3-0.dll From 09a5a4ed601029dafd7d792d6d36877fc7fc6270 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Tue, 28 May 2013 15:12:02 +0200 Subject: [PATCH 149/177] Add zrtp dll in linphone-deps --- linphone-deps.filelist | 1 + 1 file changed, 1 insertion(+) diff --git a/linphone-deps.filelist b/linphone-deps.filelist index 7eef0eea5..98d759b14 100755 --- a/linphone-deps.filelist +++ b/linphone-deps.filelist @@ -15,3 +15,4 @@ ./bin/libgnutls-26.dll ./bin/libtasn1-3.dll ./bin/libsqlite3-0.dll +./bin/libzrtpcpp.dll From facaaffdc273909f84df10377a904bec9702906c Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 30 May 2013 10:12:31 +0200 Subject: [PATCH 150/177] update ms2 for syntax error fixes in configure. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index f8ca60656..5b7873ee3 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f8ca6065676eff95752d546e387684ccc90e7b1e +Subproject commit 5b7873ee3cbc460138015ba244330d99aa861d7f From f1eb0ec07fda4221722ef1de098824299c85fd0a Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 31 May 2013 12:02:17 +0200 Subject: [PATCH 151/177] generate rootca.pem at compilation time using mk-ca-bundle.pl from curl which gather trusted certificates from modizilla --- scripts/mk-ca-bundle.pl | 242 +++ share/.gitignore | 1 + share/Makefile.am | 12 +- share/rootca.pem | 3965 --------------------------------------- 4 files changed, 250 insertions(+), 3970 deletions(-) create mode 100755 scripts/mk-ca-bundle.pl delete mode 100644 share/rootca.pem diff --git a/scripts/mk-ca-bundle.pl b/scripts/mk-ca-bundle.pl new file mode 100755 index 000000000..edede4261 --- /dev/null +++ b/scripts/mk-ca-bundle.pl @@ -0,0 +1,242 @@ +#!/usr/bin/perl -w +# *************************************************************************** +# * _ _ ____ _ +# * Project ___| | | | _ \| | +# * / __| | | | |_) | | +# * | (__| |_| | _ <| |___ +# * \___|\___/|_| \_\_____| +# * +# * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. +# * +# * This software is licensed as described in the file COPYING, which +# * you should have received as part of this distribution. The terms +# * are also available at http://curl.haxx.se/docs/copyright.html. +# * +# * You may opt to use, copy, modify, merge, publish, distribute and/or sell +# * copies of the Software, and permit persons to whom the Software is +# * furnished to do so, under the terms of the COPYING file. +# * +# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# * KIND, either express or implied. +# * +# *************************************************************************** +# This Perl script creates a fresh ca-bundle.crt file for use with libcurl. +# It downloads certdata.txt from Mozilla's source tree (see URL below), +# then parses certdata.txt and extracts CA Root Certificates into PEM format. +# These are then processed with the OpenSSL commandline tool to produce the +# final ca-bundle.crt file. +# The script is based on the parse-certs script written by Roland Krikava. +# This Perl script works on almost any platform since its only external +# dependency is the OpenSSL commandline tool for optional text listing. +# Hacked by Guenter Knauf. +# +use Getopt::Std; +use MIME::Base64; +use LWP::UserAgent; +use strict; +use vars qw($opt_b $opt_f $opt_h $opt_i $opt_l $opt_n $opt_q $opt_t $opt_u $opt_v $opt_w); + +my $url = 'http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1'; +# If the OpenSSL commandline is not in search path you can configure it here! +my $openssl = 'openssl'; + +my $version = '1.18'; + +$opt_w = 76; # default base64 encoded lines length + +$0 =~ s@.*(/|\\)@@; +$Getopt::Std::STANDARD_HELP_VERSION = 1; +getopts('bfhilnqtuvw:'); + +if ($opt_i) { + print ("=" x 78 . "\n"); + print "Script Version : $version\n"; + print "Perl Version : $]\n"; + print "Operating System Name : $^O\n"; + print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; + print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; + print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n"; + print "LWP.pm Version : ${LWP::VERSION}\n"; + print ("=" x 78 . "\n"); +} + +sub HELP_MESSAGE() { + print "Usage:\t${0} [-b] [-f] [-i] [-l] [-n] [-q] [-t] [-u] [-v] [-w] []\n"; + print "\t-b\tbackup an existing version of ca-bundle.crt\n"; + print "\t-f\tforce rebuild even if certdata.txt is current\n"; + print "\t-i\tprint version info about used modules\n"; + print "\t-l\tprint license info about certdata.txt\n"; + print "\t-n\tno download of certdata.txt (to use existing)\n"; + print "\t-q\tbe really quiet (no progress output at all)\n"; + print "\t-t\tinclude plain text listing of certificates\n"; + print "\t-u\tunlink (remove) certdata.txt after processing\n"; + print "\t-v\tbe verbose and print out processed CAs\n"; + print "\t-w \twrap base64 output lines after chars (default: ${opt_w})\n"; + exit; +} + +sub VERSION_MESSAGE() { + print "${0} version ${version} running Perl ${]} on ${^O}\n"; +} + +HELP_MESSAGE() if ($opt_h); + +my $crt = $ARGV[0] || 'ca-bundle.crt'; +(my $txt = $url) =~ s@(.*/|\?.*)@@g; + +my $stdout = $crt eq '-'; +my $resp; +my $fetched; + +unless ($opt_n and -e $txt) { + print STDERR "Downloading '$txt' ...\n" if (!$opt_q); + my $ua = new LWP::UserAgent(agent => "$0/$version"); + $ua->env_proxy(); + $resp = $ua->mirror($url, $txt); + if ($resp && $resp->code eq '304') { + print STDERR "Not modified\n" unless $opt_q; + exit 0 if -e $crt && !$opt_f; + } else { + $fetched = 1; + } + if( !$resp || $resp->code !~ /^(?:200|304)$/ ) { + print STDERR "Unable to download latest data: " + . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed") . "\n" + unless $opt_q; + exit 1 if -e $crt || ! -r $txt; + } +} + +my $currentdate = scalar gmtime($fetched ? $resp->last_modified : (stat($txt))[9]); + +my $format = $opt_t ? "plain text and " : ""; +if( $stdout ) { + open(CRT, '> -') or die "Couldn't open STDOUT: $!\n"; +} else { + open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n"; +} +print CRT <) { + if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { + print CRT; + print if ($opt_l); + while () { + print CRT; + print if ($opt_l); + last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); + } + } + next if /^#|^\s*$/; + chomp; + if (/^CVS_ID\s+\"(.*)\"/) { + print CRT "# $1\n"; + } + + # this is a match for the start of a certificate + if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { + $start_of_cert = 1 + } + if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { + $caname = $1; + } + my $untrusted = 0; + if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { + my $data; + while () { + last if (/^END/); + chomp; + my @octets = split(/\\/); + shift @octets; + for (@octets) { + $data .= chr(oct); + } + } + # scan forwards until the trust part + while () { + last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/); + chomp; + } + # now scan the trust part for untrusted certs + while () { + last if (/^#/); + if (/^CKA_TRUST_SERVER_AUTH\s+CK_TRUST\s+CKT_NSS_NOT_TRUSTED$/ + or /^CKA_TRUST_SERVER_AUTH\s+CK_TRUST\s+CKT_NSS_TRUST_UNKNOWN$/) { + $untrusted = 1; + } + } + if ($untrusted) { + $skipnum ++; + } else { + my $encoded = MIME::Base64::encode_base64($data, ''); + $encoded =~ s/(.{1,${opt_w}})/$1\n/g; + my $pem = "-----BEGIN CERTIFICATE-----\n" + . $encoded + . "-----END CERTIFICATE-----\n"; + print CRT "\n$caname\n"; + print CRT ("=" x length($caname) . "\n"); + if (!$opt_t) { + print CRT $pem; + } else { + my $pipe = "|$openssl x509 -md5 -fingerprint -text -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } + } + print STDERR "Parsing: $caname\n" if ($opt_v); + $certnum ++; + $start_of_cert = 0; + } + } +} +close(TXT) or die "Couldn't close $txt: $!\n"; +close(CRT) or die "Couldn't close $crt.~: $!\n"; +unless( $stdout ) { + if ($opt_b && -e $crt) { + my $bk = 1; + while (-e "$crt.~${bk}~") { + $bk++; + } + rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n"; + } elsif( -e $crt ) { + unlink( $crt ) or die "Failed to remove $crt: $!\n"; + } + rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n"; +} +unlink $txt if ($opt_u); +print STDERR "Done ($certnum CA certs processed, $skipnum untrusted skipped).\n" if (!$opt_q); + +exit; + + diff --git a/share/.gitignore b/share/.gitignore index 3d11e0206..3470e9d61 100644 --- a/share/.gitignore +++ b/share/.gitignore @@ -2,3 +2,4 @@ Makefile Makefile.in *.raw linphone.pc +rootca.pem diff --git a/share/Makefile.am b/share/Makefile.am index 83c3a934e..6f8fe9198 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -31,11 +31,13 @@ pkgconfig_DATA=linphone.pc linphonedir=$(datadir)/linphone linphone_DATA=rootca.pem +rootca.pem: + $(top_srcdir)/scripts/mk-ca-bundle.pl rootca.pem EXTRA_DIST = $(LINPHONE_SOUNDS) \ - $(LINPHONE_RINGS) \ - linphone.desktop.in \ - linphone.pc.in \ - Makefile.inc \ - rootca.pem + $(LINPHONE_RINGS) \ + linphone.desktop.in \ + linphone.pc.in \ + Makefile.inc \ + rootca.pem diff --git a/share/rootca.pem b/share/rootca.pem deleted file mode 100644 index cb25772cd..000000000 --- a/share/rootca.pem +++ /dev/null @@ -1,3965 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE -AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x -CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW -MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF -RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC -AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7 -09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7 -XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P -Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK -t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb -X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28 -MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU -fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI -2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH -K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae -ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP -BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ -MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw -RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv -bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm -fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3 -gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe -I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i -5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi -ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn -MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ -o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6 -zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN -GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt -r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK -Z05phkOTOPu220+DkdRgfks+KzgHVZhepA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx -CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp -ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa -QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw -NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft -ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu -QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG -qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL -fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ -Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4 -Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ -54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b -MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j -ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej -YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt -A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF -rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ -pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB -lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy -YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50 -7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs -YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6 -xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc -unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/ -Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp -ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42 -gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0 -jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+ -XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD -W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/ -RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r -MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk -BYn8eNZcLCZDqQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs -IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 -MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h -bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v -dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt -H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 -uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX -mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX -a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN -E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 -WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD -VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 -Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU -cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx -IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN -AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH -YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC -Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX -c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a -mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw -MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD -VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul -CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n -tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl -dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch -PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC -+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O -BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl -MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk -ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X -7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz -43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY -eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl -pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA -WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx -MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB -ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV -BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV -6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX -GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP -dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH -1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF -62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW -BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL -MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU -cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv -b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6 -IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/ -iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao -GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh -4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm -XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1 -MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK -EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh -BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq -xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G -87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i -2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U -WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1 -0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G -A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr -pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL -ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm -aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv -hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm -hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X -dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3 -P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y -iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no -xqE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP -bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2 -MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft -ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk -hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym -1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW -OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb -2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko -O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU -AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF -Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb -LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir -oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C -MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds -sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP -bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2 -MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft -ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC -206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci -KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2 -JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9 -BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e -Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B -PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67 -Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq -Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ -o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3 -+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj -YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj -FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn -xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2 -LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc -obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8 -CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe -IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA -DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F -AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX -Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb -AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl -Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw -RY8mkaKO/qk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx -HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh -IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAwMFoXDTM3MTEyMDE1 -MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg -SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M -IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U -0pPlLYnKhHw/EEMbjIt8hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItI -TuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAf -RC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqF -zQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqh -BC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEA -AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jY -PXy+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/ -BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn -9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7CegCgTXT -Ct8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77BfWgDrvq2g+EQF -Z7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX -n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoW -H1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx -HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh -IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAwMFoXDTM3MDkyODIz -NDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg -SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M -IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ -7ouZzU9AhqS2TcnZsdw8TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilb -m2BPJoPRYxJWSXakFsKlnUWsi4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOY -xFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZ -YYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbq -JS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fx -I2rSAG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETz -kxmlJ85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh -EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/S -Btc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJKg71ZDIM -gtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1ExMVCgyhwn2RAu -rda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO -1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyugu -h4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdP -yXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q -7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKT -RuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/ -ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyB -M5kYJRF3p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQ -my8YJPamTQr5O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xO -AU++CrYD062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT -9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H -hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOLZ8/5 -fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc -MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp -b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT -AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs -aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H -j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K -f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55 -IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw -FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht -QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm -/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ -k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ -MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC -seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ -hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+ -eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U -DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj -B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL -rosot4LKGAfmt1t06SAZf7IbiVQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy -MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD -VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv -ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl -AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF -661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 -am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 -ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 -PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS -3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k -SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF -3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM -ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g -StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz -Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB -jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ -RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD -VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX -DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y -ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy -VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr -mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr -IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK -mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu -XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy -dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye -jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 -BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 -DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 -9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx -jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 -Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz -ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS -R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEuDCCA6CgAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMCQlIx -EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h -bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxETAPBgNVBAcTCEJy -YXNpbGlhMQswCQYDVQQIEwJERjExMC8GA1UEAxMoQXV0b3JpZGFkZSBDZXJ0aWZp -Y2Fkb3JhIFJhaXogQnJhc2lsZWlyYTAeFw0wMTExMzAxMjU4MDBaFw0xMTExMzAy -MzU5MDBaMIG0MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE9MDsG -A1UECxM0SW5zdGl0dXRvIE5hY2lvbmFsIGRlIFRlY25vbG9naWEgZGEgSW5mb3Jt -YWNhbyAtIElUSTERMA8GA1UEBxMIQnJhc2lsaWExCzAJBgNVBAgTAkRGMTEwLwYD -VQQDEyhBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBCcmFzaWxlaXJhMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwPMudwX/hvm+Uh2b/lQAcHVA -isamaLkWdkwP9/S/tOKIgRrL6Oy+ZIGlOUdd6uYtk9Ma/3pUpgcfNAj0vYm5gsyj -Qo9emsc+x6m4VWwk9iqMZSCK5EQkAq/Ut4n7KuLE1+gdftwdIgxfUsPt4CyNrY50 -QV57KM2UT8x5rrmzEjr7TICGpSUAl2gVqe6xaii+bmYR1QrmWaBSAG59LrkrjrYt -bRhFboUDe1DK+6T8s5L6k8c8okpbHpa9veMztDVC9sPJ60MWXh6anVKo1UcLcbUR -yEeNvZneVRKAAU6ouwdjDvwlsaKydFKwed0ToQ47bmUKgcm+wV3eTRk36UOnTwID -AQABo4HSMIHPME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcCARYsaHR0 -cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYwPQYDVR0f -BDYwNDAyoDCgLoYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0xDUmFj -cmFpei5jcmwwHQYDVR0OBBYEFIr68VeEERM1kEL6V0lUaQ2kxPA3MA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAZA5c1 -U/hgIh6OcgLAfiJgFWpvmDZWqlV30/bHFpj8iBobJSm5uDpt7TirYh1Uxe3fQaGl -YjJe+9zd+izPRbBqXPVQA34EXcwk4qpWuf1hHriWfdrx8AcqSqr6CuQFwSr75Fos -SzlwDADa70mT7wZjAmQhnZx2xJ6wfWlT9VQfS//JYeIc7Fue2JNLd00UOSMMaiK/ -t79enKNHEA2fupH3vEigf5Eh4bVAN5VohrTm6MY53x7XQZZr1ME7a55lFEnSeT0u -mlOAjR2mAbvSM5X5oSZNrmetdzyTj2flCM8CC7MLab0kkdngRIlUBGHF1/S5nmPb -K+9A46sd33oqK8n8 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg -Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL -MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD -VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0 -ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX -l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB -HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B -5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3 -WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD -AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP -gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+ -DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu -BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs -h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk -LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg -Q2xhc3MgMyBDQSAxMB4XDTA1MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzEL -MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD -VQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKxifZg -isRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//z -NIqeKNc0n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI -+MkcVyzwPX6UvCWThOiaAJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2R -hzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+ -mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0PAQH/BAQD -AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFP -Bdy7pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27s -EzNxZy5p+qksP2bAEllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2 -mSlf56oBzKwzqBwKu5HEA6BvtjT5htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yC -e/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQjel/wroQk5PMr+4okoyeYZdow -dXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290 -IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB -IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA -Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO -BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi -MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ -ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ -8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6 -zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y -fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7 -w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc -G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k -epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q -laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ -QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU -fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826 -YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w -ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY -gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe -MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0 -IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy -dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw -czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0 -dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl -aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC -AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg -b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB -ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc -nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg -18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c -gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl -Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY -sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T -SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF -CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum -GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk -zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW -omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGCDCCA/CgAwIBAgIBATANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290 -IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB -IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA -Y2FjZXJ0Lm9yZzAeFw0wNTEwMTQwNzM2NTVaFw0zMzAzMjgwNzM2NTVaMFQxFDAS -BgNVBAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5v -cmcxHDAaBgNVBAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCrSTURSHzSJn5TlM9Dqd0o10Iqi/OHeBlYfA+e2ol9 -4fvrcpANdKGWZKufoCSZc9riVXbHF3v1BKxGuMO+f2SNEGwk82GcwPKQ+lHm9WkB -Y8MPVuJKQs/iRIwlKKjFeQl9RrmK8+nzNCkIReQcn8uUBByBqBSzmGXEQ+xOgo0J -0b2qW42S0OzekMV/CsLj6+YxWl50PpczWejDAz1gM7/30W9HxM3uYoNSbi4ImqTZ -FRiRpoWSR7CuSOtttyHshRpocjWr//AQXcD0lKdq1TuSfkyQBX6TwSyLpI5idBVx -bgtxA+qvFTia1NIFcm+M+SvrWnIl+TlG43IbPgTDZCciECqKT1inA62+tC4T7V2q -SNfVfdQqe1z6RgRQ5MwOQluM7dvyz/yWk+DbETZUYjQ4jwxgmzuXVjit89Jbi6Bb -6k6WuHzX1aCGcEDTkSm3ojyt9Yy7zxqSiuQ0e8DYbF/pCsLDpyCaWt8sXVJcukfV -m+8kKHA4IC/VfynAskEDaJLM4JzMl0tF7zoQCqtwOpiVcK01seqFK6QcgCExqa5g -eoAmSAC4AcCTY1UikTxW56/bOiXzjzFU6iaLgVn5odFTEcV7nQP2dBHgbbEsPyyG -kZlxmqZ3izRg0RS0LKydr4wQ05/EavhvE/xzWfdmQnQeiuP43NJvmJzLR5iVQAX7 -6QIDAQABo4G/MIG8MA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUHAQEEUTBPMCMG -CCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggrBgEFBQcwAoYc -aHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBBMD8GCCsGAQQB -gZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9pbmRleC5w -aHA/aWQ9MTAwDQYJKoZIhvcNAQEEBQADggIBAH8IiKHaGlBJ2on7oQhy84r3HsQ6 -tHlbIDCxRd7CXdNlafHCXVRUPIVfuXtCkcKZ/RtRm6tGpaEQU55tiKxzbiwzpvD0 -nuB1wT6IRanhZkP+VlrRekF490DaSjrxC1uluxYG5sLnk7mFTZdPsR44Q4Dvmw2M -77inYACHV30eRBzLI++bPJmdr7UpHEV5FpZNJ23xHGzDwlVks7wU4vOkHx4y/CcV -Bc/dLq4+gmF78CEQGPZE6lM5+dzQmiDgxrvgu1pPxJnIB721vaLbLmINQjRBvP+L -ivVRIqqIMADisNS8vmW61QNXeZvo3MhN+FDtkaVSKKKs+zZYPumUK5FQhxvWXtaM -zPcPEAxSTtAWYeXlCmy/F8dyRlecmPVsYGN6b165Ti/Iubm7aoW8mA3t+T6XhDSU -rgCvoeXnkm5OvfPi2RSLXNLrAWygF6UtEOucekq9ve7O/e0iQKtwOIj1CodqwqsF -YMlIBdpTwd5Ed2qz8zw87YC8pjhKKSRf/lk7myV6VmMAZLldpGJ9VzZPrYPvH5JT -oI53V93lYRE9IwCQTDz6o2CTBKOvNfYOao9PSmCnhQVsRqGP9Md246FZV/dxssRu -FFxtbUFm3xuTsdQAw+7Lzzw9IYCpX2Nl/N3gX6T0K/CFcUHUZyX7GrGXrtaZghNB -0m6lG5kngOcLqagA ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET -MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE -AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw -CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg -YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE -Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX -mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD -XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW -S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp -FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD -AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu -ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z -ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv -Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw -DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6 -yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq -EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ -CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB -EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN -PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg -b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa -MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB -ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw -IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B -AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb -unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d -BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq -7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3 -0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX -roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG -A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j -aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p -26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA -BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud -EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN -BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz -aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB -AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd -p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi -1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc -XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0 -eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu -tGWaIZDgqtCYvDi1czyL+Nw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo -YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9 -MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy -NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G -A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA -A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0 -Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s -QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV -eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795 -B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh -z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T -AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i -ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w -TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH -MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD -VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE -VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B -AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM -bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi -ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG -VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c -ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/ -AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIESzCCAzOgAwIBAgIJAJigUTEEXRQpMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV -BAYTAkRFMQ8wDQYDVQQIEwZIZXNzZW4xDjAMBgNVBAcTBUZ1bGRhMRAwDgYDVQQK -EwdEZWJjb25mMRMwEQYDVQQDEwpEZWJjb25mIENBMR8wHQYJKoZIhvcNAQkBFhBq -b2VyZ0BkZWJpYW4ub3JnMB4XDTA1MTEwNTE3NTUxNFoXDTE1MTEwMzE3NTUxNFow -djELMAkGA1UEBhMCREUxDzANBgNVBAgTBkhlc3NlbjEOMAwGA1UEBxMFRnVsZGEx -EDAOBgNVBAoTB0RlYmNvbmYxEzARBgNVBAMTCkRlYmNvbmYgQ0ExHzAdBgkqhkiG -9w0BCQEWEGpvZXJnQGRlYmlhbi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvbOo0SrIwI5IMlsshH8WF3dHB9r9JlSKhMPaybawa1EyvZspMQ3wa -F5qxNf3Sj+NElEmjseEqvCZiIIzqwerHu0Qw62cDYCdCd2+Wb5m0bPYB5CGHiyU1 -eNP0je42O0YeXG2BvUujN8AviocVo39X2YwNQ0ryy4OaqYgm2pRlbtT2ESbF+SfV -Y2iqQj/f8ymF+lHo/pz8tbAqxWcqaSiHFAVQJrdqtFhtoodoNiE3q76zJoUkZTXB -k60Yc3MJSnatZCpnsSBr/D7zpntl0THrUjjtdRWCjQVhqfhM1yZJV+ApbLdheFh0 -ZWlSxdnp25p0q0XYw/7G92ELyFDfBUUNAgMBAAGjgdswgdgwHQYDVR0OBBYEFMuV -dFNb4mCWUFbcP5LOtxFLrEVTMIGoBgNVHSMEgaAwgZ2AFMuVdFNb4mCWUFbcP5LO -txFLrEVToXqkeDB2MQswCQYDVQQGEwJERTEPMA0GA1UECBMGSGVzc2VuMQ4wDAYD -VQQHEwVGdWxkYTEQMA4GA1UEChMHRGViY29uZjETMBEGA1UEAxMKRGViY29uZiBD -QTEfMB0GCSqGSIb3DQEJARYQam9lcmdAZGViaWFuLm9yZ4IJAJigUTEEXRQpMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGZXxHg4mnkvilRIM1EQfGdY -S5b/WcyF2MYSTeTvK4aIB6VHwpZoZCnDGj2m2D3CkHT0upAD9o0zM1tdsfncLzV+ -mDT/jNmBtYo4QXx5vEPwvEIcgrWjwk7SyaEUhZjtolTkHB7ACl0oD0r71St4iEPR -qTUCEXk2E47bg1Fz58wNt/yo2+4iqiRjg1XCH4evkQuhpW+dTZnDyFNqwSYZapOE -TBA+9zBb6xD1KM2DdY7r4GiyYItN0BKLfuWbh9LXGbl1C+f4P11g+m2MPiavIeCe -1iazG5pcS3KoTLACsYlEX24TINtg4kcuS81XdllcnsV3Kdts0nIqPj6uhTTZD0k= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDvjCCA3ygAwIBAgIFJQaThoEwCwYHKoZIzjgEAwUAMIGFMQswCQYDVQQGEwJG -UjEPMA0GA1UECBMGRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczEQMA4GA1UEChMHUE0v -U0dETjEOMAwGA1UECxMFRENTU0kxDjAMBgNVBAMTBUlHQy9BMSMwIQYJKoZIhvcN -AQkBFhRpZ2NhQHNnZG4ucG0uZ291di5mcjAeFw0wMjEyMTMxNDM5MTVaFw0yMDEw -MTcxNDM5MTRaMIGFMQswCQYDVQQGEwJGUjEPMA0GA1UECBMGRnJhbmNlMQ4wDAYD -VQQHEwVQYXJpczEQMA4GA1UEChMHUE0vU0dETjEOMAwGA1UECxMFRENTU0kxDjAM -BgNVBAMTBUlHQy9BMSMwIQYJKoZIhvcNAQkBFhRpZ2NhQHNnZG4ucG0uZ291di5m -cjCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCFkMImdk9zDzJfTO4XPdAAmLbAdWws -ZiEMZh19RyTo3CyhFqO77OIXrwY6vc1pcc3MgWJ0dgQpAgrDMtmFFxpUu4gmjVsx -8GpxQC+4VOgLY8Cvmcd/UDzYg07EIRto8BwCpPJ/JfUxwzV2V3N713aAX+cEoKZ/ -s+kgxC6nZCA7oQIVALME/JYjkdW2uKIGngsEPbXAjdhDAoGADh/uqWJx94UBm31c -9d8ZTBfRGRnmSSRVFDgPWgA69JD4BR5da8tKz+1HjfMhDXljbMH86ixpD5Ka1Z0V -pRYUPbyAoB37tsmXMJY7kjyD19d5VdaZboUjVvhH6UJy5lpNNNGSvFl4fqkxyvw+ -pq1QV0N5RcvK120hlXdfHUX+YKYDgYQAAoGAQGr7IuKJcYIvJRMjxwl43KxXY2xC -aoCiM/bv117MfI94aNf1UusGhp7CbYAY9CXuL60P0oPMAajbaTE5Z34AuITeHq3Y -CNMHwxalip8BHqSSGmGiQsXeK7T+r1rPXsccZ1c5ikGDZ4xn5gUaCyy2rCmb+fOJ -6VAfCbAbAjmNKwejdzB1MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgFGMBUG -A1UdIAQOMAwwCgYIKoF6AXkBAQEwHQYDVR0OBBYEFPkeNRcUf8idzpKblYbLNxs0 -MQhSMB8GA1UdIwQYMBaAFPkeNRcUf8idzpKblYbLNxs0MQhSMAsGByqGSM44BAMF -AAMvADAsAhRVh+CJA5eVyEYU5AO9Tm7GxX0rmQIUBCqsU5u1WxoZ5lEXicDX5/Ob -sRQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT -AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ -TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG -9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw -MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM -BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO -MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2 -LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI -s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2 -xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4 -u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b -F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx -Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd -PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV -HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx -NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF -AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ -L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY -YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a -NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R -0982gaEbeC9xs/FZTEYYKKuF0mBWWg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV -BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X -DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ -BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 -QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny -gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw -zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q -130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 -JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw -ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT -AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj -AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG -9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h -bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc -fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu -HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w -t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw -PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz -cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9 -MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz -IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ -ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR -VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL -kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd -EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas -H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0 -HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud -DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4 -QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu -Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/ -AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8 -yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR -FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA -ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB -kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT -AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD -QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP -MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do -0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ -UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d -RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ -OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv -JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C -AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O -BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ -LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY -MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ -44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I -Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw -i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN -9u6wWk5JRFRYX0KD ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM -MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD -QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM -MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD -QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E -jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo -ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI -ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu -Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg -AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7 -HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA -uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa -TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg -xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q -CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x -O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs -6GAqm4VKQPNriiTsBhYscw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz -IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz -MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj -dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw -EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp -MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 -28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq -VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q -DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR -5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL -ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a -Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl -UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s -+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 -Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx -hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV -HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 -+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN -YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t -L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy -ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt -IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV -HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w -DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW -PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF -5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 -glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH -FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 -pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD -xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG -tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq -jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De -fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ -d0jQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD -TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2 -MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF -Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh -IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6 -dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO -V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC -GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN -v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB -AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB -Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO -76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK -OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH -ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi -yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL -buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj -2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj -YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM -GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua -BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe -3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 -YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR -rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm -ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU -oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v -QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t -b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF -AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q -GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 -G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi -l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 -smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB -gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV -BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw -MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl -YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P -RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 -UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI -2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 -Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp -+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ -DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O -nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW -/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g -PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u -QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY -SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv -IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 -zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd -BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB -ZQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT -IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw -MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy -ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N -T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR -FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J -cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW -BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm -fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv -GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp -ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow -fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV -BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM -cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S -HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996 -CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk -3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz -6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV -HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud -EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv -Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw -Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww -DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0 -5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj -Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI -gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ -aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl -izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0 -aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla -MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD -VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW -fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt -TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL -fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW -1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7 -kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G -A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v -ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo -dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu -Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/ -HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 -pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS -jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+ -xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn -dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0 -MRMwEQYDVQQDEwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQG -EwJJTDAeFw0wNDAzMjQxMTMyMThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMT -CkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNpZ24xCzAJBgNVBAYTAklMMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49qROR+WCf4C9DklBKK -8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTyP2Q2 -98CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb -2CEJKHxNGGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxC -ejVb7Us6eva1jsz/D3zkYDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7Kpi -Xd3DTKaCQeQzC6zJMw9kglcq/QytNuEMrkvF7zuZ2SOzW120V+x0cAwqTwIDAQAB -o4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2Zl -ZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0PAQH/BAQD -AgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRL -AZs+VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWd -foPPbrxHbvUanlR2QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0M -cXS6hMTXcpuEfDhOZAYnKuGntewImbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq -8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb/627HOkthIDYIb6FUtnUdLlp -hbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VGzT2ouvDzuFYk -Res3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U -AGegcQCCSA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAw -PDEbMBkGA1UEAxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWdu -MQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwx -GzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBDQTEQMA4GA1UEChMHQ29tU2lnbjEL -MAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGtWhf -HZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs49oh -gHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sW -v+bznkqH7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ue -Mv5WJDmyVIRD9YTC2LxBkMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr -9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d19guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt -6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUwAwEB/zBEBgNVHR8EPTA7 -MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29tU2lnblNl -Y3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58 -ADsAj8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkq -hkiG9w0BAQUFAAOCAQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7p -iL1DRYHjZiM/EoZNGeQFsOY3wo3aBijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtC -dsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtpFhpFfTMDZflScZAmlaxMDPWL -kz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP51qJThRv4zdL -hfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz -OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG -A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh -bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE -ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS -b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 -7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS -J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y -HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP -t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz -FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY -XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ -MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw -hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js -MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA -A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj -Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx -XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o -omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc -A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc -MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj -IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB -IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE -RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl -U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290 -IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU -ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC -QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr -rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S -NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc -QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH -txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP -BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC -AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp -tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa -IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl -6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ -xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c -JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP -mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ -wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 -VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ -AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB -AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun -pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC -dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf -fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm -NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx -H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD -QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB -CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 -nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt -43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P -T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 -gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO -BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR -TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw -DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr -hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg -06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF -PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls -YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdp -Tm90YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmww -HhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgxOTIxWjBfMQswCQYDVQQGEwJOTDES -MBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEg -MB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B -8cp86Yxq7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXY -tsMW2YiwsYcdcNqGtA8Ui3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIl -HgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8ZkqQfioLBQftFl9VkHXYRskbg+IIvvEj -zJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEqbYRAhU52mXyC8/O3AlnU -JgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4iHomGgVM -ktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXv -a5pkXuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57p -K6kwe6AYHw4YC+VbqdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMi -puih2TkGl/VujQKQjBR7P4DNG5y6xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovT -yD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHcBmfFlHqabWJMfczgZICynkeO -owIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC -jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXy -fJ9oHbtdzno5wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBo -Y6pFITlIYXg23PFDk9Qlx/KAZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHo -M/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedTFLJgQT2EkTFoPSdE2+Xe9PpjRchM -Ppj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKfyvBovWsdst+Nbwed -2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoAZbwH -/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQl -nQ7KN+ZQ/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jE -O1hZibCMjFCz2IbLaKPECudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU -9jQZjHkJNsphFyUXC4KYcwx3dMPVDceoEkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9 -j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV -UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL -EwhEU1RDQSBFMTAeFw05ODEyMTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJ -BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x -ETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCg -bIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJENySZ -j9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlV -Sn5JTe2io74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCG -SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx -JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI -RFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMTAxODEw -MjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFGp5 -fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i -+DAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG -SIb3DQEBBQUAA4GBACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lN -QseSJqBcNJo4cvj9axY+IO6CizEqkzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+ -gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4RbyhkwS7hp86W0N6w4pl ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV -UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL -EwhEU1RDQSBFMjAeFw05ODEyMDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJ -BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x -ETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQC/ -k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGODVvso -LeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3o -TQPMx7JSxhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCG -SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx -JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI -RFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMDkxOTE3 -MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFB6C -TShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5 -WzAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG -SIb3DQEBBQUAA4GBAEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHR -xdf0CiUPPXiBng+xZ8SQTGPdXqfiup/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVL -B3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1mPnHfxsb1gYgAlihw6ID ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx -ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w -MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD -VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx -FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu -ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7 -gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH -fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a -ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT -ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk -c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto -dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt -aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI -hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk -QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/ -h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq -nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR -rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2 -9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV -BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx -c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt -ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4 -MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg -SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl -a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h -4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk -tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s -tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL -dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4 -c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um -TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z -+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O -Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW -OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW -fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2 -l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw -FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+ -8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI -6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO -TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME -wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY -Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn -xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q -DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q -Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t -hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4 -7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7 -QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1 -MQswCQYDVQQGEwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxp -Z2kgQS5TLjE8MDoGA1UEAxMzZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZp -a2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3MDEwNDExMzI0OFoXDTE3MDEwNDEx -MzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0cm9uaWsgQmlsZ2kg -R3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9uaWsg -U2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdU -MZTe1RK6UxYC6lhj71vY8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlT -L/jDj/6z/P2douNffb7tC+Bg62nsM+3YjfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H -5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAIJjjcJRFHLfO6IxClv7wC -90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk9Ok0oSy1 -c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoE -VtstxNulMA0GCSqGSIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLP -qk/CaOv/gKlR6D1id4k9CnU58W5dF4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S -/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwqD2fK/A+JYZ1lpTzlvBNbCNvj -/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4Vwpm+Vganf2X -KWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq -fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML -RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp -bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 -IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy -MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 -LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp -YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG -A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq -K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe -sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX -MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT -XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ -HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH -4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA -vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G -CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA -WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo -oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ -h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18 -f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN -B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy -vUxFnmG6v4SBkgPR0ml8xQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC -VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u -ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc -KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u -ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1 -MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE -ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j -b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF -bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg -U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA -A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/ -I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3 -wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC -AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb -oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5 -BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p -dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk -MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp -b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu -dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0 -MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi -E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa -MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI -hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN -95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd -2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 -Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW -KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw -NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw -NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy -ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV -BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo -Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 -4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 -KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI -rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi -94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB -sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi -gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo -kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE -vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t -O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua -AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP -9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ -eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m -0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw -IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL -SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH -SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh -ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X -DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 -TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ -fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA -sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU -WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS -nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH -dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip -NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC -AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF -MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB -uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl -PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP -JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ -gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 -j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 -5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB -o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS -/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z -Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE -W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D -hNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT -ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw -MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j -LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ -KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo -RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu -WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw -Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD -AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK -eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM -zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+ -WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN -/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj -dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0 -NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD -VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G -vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/ -BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX -MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl -IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw -NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq -y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy -0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1 -E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT -ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw -MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj -dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l -c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC -UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc -58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/ -o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH -MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr -aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA -A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA -Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv -8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMx -IjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1 -dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20w -HhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTELMAkGA1UEBhMCRVMx -IjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1 -dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20w -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5u -Cp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5Vj1H5WuretXDE7aTt/6MNbg9kUDGvASdY -rv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJHlShbz++AbOCQl4oBPB3z -hxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf3H5idPay -BQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcL -iam8NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcb -AgMBAAGjgZ8wgZwwKgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lv -bmFsLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0 -MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E -FgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQADggEBAEdz/o0n -VPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq -u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36m -hoEyIwOdyPdfwUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzfl -ZKG+TQyTmAyX9odtsz/ny4Cm7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBp -QWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YGVM+h4k0460tQtcsm9MracEpqoeJ5 -quGnM/b9Sh/22WA= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs -IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg -R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A -PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8 -Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL -TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL -5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7 -S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe -2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap -EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td -EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv -/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN -A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0 -abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF -I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz -4iIprn2DQKi6bA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT -MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i -YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg -R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 -9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq -fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv -iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU -1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ -bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW -MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA -ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l -uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn -Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS -tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF -PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un -hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV -5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL -MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj -KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 -MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw -NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV -BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL -So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal -tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG -CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT -qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz -rD6ogRLQy7rQkgu2npaqBA+K ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB -mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT -MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ -BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 -BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz -+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm -hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn -5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W -JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL -DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC -huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB -AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB -zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN -kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH -SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G -spki4cErx5z481+oghLrGREt ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY -MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo -R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx -MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 -AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA -ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 -7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W -kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI -mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ -KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 -6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl -4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K -oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj -UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU -AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy -c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD -VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 -c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 -WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG -FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq -XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL -se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb -KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd -IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 -y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt -hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc -QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 -Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV -HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ -KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ -L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr -Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo -ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY -T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz -GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m -1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV -OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH -6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX -QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy -c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 -IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV -VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 -cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT -QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh -F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v -c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w -mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd -VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX -teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ -f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe -Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ -nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB -/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY -MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG -9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX -IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn -ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z -uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN -Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja -QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW -koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 -ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt -DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm -bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx -MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy -cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG -A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl -BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed -KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 -G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 -zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 -ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG -HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 -Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V -yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e -beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r -6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog -zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW -BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr -ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp -ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk -cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt -YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC -CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow -KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI -hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ -UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz -X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x -fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz -a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd -Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd -SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O -AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso -M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge -v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG -A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv -b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw -MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i -YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT -aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ -jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp -xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp -1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG -snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ -U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 -9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B -AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz -yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE -38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP -AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad -DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME -HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 -MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 -RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT -gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm -KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd -QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ -XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o -LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU -RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp -jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK -6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX -mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs -Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH -WD9f ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh -MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE -YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 -MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo -ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg -MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN -ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA -PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w -wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi -EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY -avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ -YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE -sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h -/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 -IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy -OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P -TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER -dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf -ReYNnyicsbkqWletNw+vHX/bvZ8= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD -VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv -bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv -b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV -UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU -cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds -b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH -iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS -r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4 -04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r -GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9 -3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P -lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx -FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg -Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG -A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr -b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ -jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn -PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh -ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 -nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h -q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED -MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC -mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 -7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB -oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs -EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO -fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi -AmvZWg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT -AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ -TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG -9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw -MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM -BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO -MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2 -LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI -s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2 -xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4 -u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b -F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx -Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd -PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV -HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx -NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF -AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ -L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY -YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a -NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R -0982gaEbeC9xs/FZTEYYKKuF0mBWWg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 -MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6 -ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD -VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j -b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq -scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO -xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H -LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX -uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD -yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+ -JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q -rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN -BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L -hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB -QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+ -HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu -Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg -QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB -BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA -A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb -laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56 -awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo -JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw -LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT -VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk -LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb -UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/ -QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+ -naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls -QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN -AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp -dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw -MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw -CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ -MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB -SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz -ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH -LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP -PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL -2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w -ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC -MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk -AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0 -AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz -AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz -AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f -BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE -FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY -P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi -CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g -kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95 -HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS -na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q -qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z -TbvGRNs2yyqcjg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G -CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y -OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx -FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp -Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP -kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc -cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U -fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 -N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC -xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 -+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM -Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG -SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h -mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk -ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c -2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t -HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw -cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy -b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z -ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4 -NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN -TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p -Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u -uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+ -LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA -vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770 -Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx -62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB -AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw -LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP -BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB -AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov -MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5 -ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn -AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT -AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh -ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo -AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa -AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln -bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p -Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP -PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv -Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB -EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu -w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj -cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV -HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI -VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS -BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS -b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS -8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds -ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl -7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a -86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR -hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/ -MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG -EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 -MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl -cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR -dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB -pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM -b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm -aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz -IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT -lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz -AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 -VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG -ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 -BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG -AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M -U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh -bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C -+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F -uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 -XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQD -EylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZhbnlraWFkbzAeFw05 -OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYDVQQGEwJIVTERMA8G -A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh -Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5l -dExvY2sgVXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqG -SIb3DQEBAQUAA4GNADCBiQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xK -gZjupNTKihe5In+DCnVMm8Bp2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riX -iK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvc -Q7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8E -BAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1G -SUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFu -b3MgU3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh -bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv -Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGln -aXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0 -IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh -c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGph -biBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJo -ZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBP -UlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmlj -YXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBo -dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNA -bmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06 -sPgzTEdM43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXa -n3BukxowOR0w2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKS -NitjrFgBazMpUIaD8QFI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQD -EytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0dmFueWtpYWRvMB4X -DTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJBgNVBAYTAkhVMREw -DwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9u -c2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMr -TmV0TG9jayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNA -OoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC -2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwW -RMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0P -AQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEW -ggJNRklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0 -YWxhbm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz -b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBO -ZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2ZWRpLiBB -IGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0ZWxlIGF6IGVs -b2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs -ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25s -YXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kg -a2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4g -SU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0 -aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUg -YXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQg -Y3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmY -ta3UzbM2xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2g -pO0u9f38vf5NNwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4 -Fp1hBWeAyNDYpQcCNJgEjTME1A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV -MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe -TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0 -dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB -KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0 -N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC -dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu -MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL -b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD -zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi -3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8 -WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY -Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi -NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC -ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4 -QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0 -YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz -aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu -IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm -ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg -ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs -amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv -IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3 -Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6 -ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1 -YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg -dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs -b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G -CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO -xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP -0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ -QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk -f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK -8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQD -EzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xhc3MgUUEpIFRhbnVz -aXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0bG9jay5odTAeFw0w -MzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTERMA8G -A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh -Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5l -dExvY2sgTWlub3NpdGV0dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZh -bnlraWFkbzEeMBwGCSqGSIb3DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/Goq -eKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQe -r7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO5 -3Lhbm+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWd -vLrqOU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l -mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4IC -wDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwggJ1Bglg -hkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2YW55IGEgTmV0 -TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh -biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQg -ZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywg -dmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6 -b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rl -c2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0 -ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3 -dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0Bu -ZXRsb2NrLm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBh -bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRo -ZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3 -Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u -ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEBBQUA -A4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQ -MznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+ -NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCR -VCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY -83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR5qq5aKrN9p2QdRLqOBrKROi3 -macqaJVmlaut74nLYKkGEsaUR+ko ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi -MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV -UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO -ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz -c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP -OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl -mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF -BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 -qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw -gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu -bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp -dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 -6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ -h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH -/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN -pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB -ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly -aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w -NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G -A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX -SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR -VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2 -w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF -mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg -4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9 -4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw -EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx -SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2 -ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8 -vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi -Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ -/L7fCg0= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa -GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg -Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J -WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB -rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp -+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 -ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i -Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz -PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og -/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH -oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI -yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud -EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 -A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL -MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f -BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn -g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl -fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K -WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha -B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc -hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR -TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD -mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z -ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y -4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza -8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM -V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB -4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr -H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd -8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv -vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT -mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe -btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc -T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt -WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ -c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A -4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD -VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG -CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 -aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu -dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw -czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G -A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg -Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 -7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem -d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd -+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B -4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN -t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x -DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 -k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s -zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j -Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT -mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK -4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 -IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz -BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y -aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG -9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy -NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y -azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw -Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl -cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD -cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs -2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY -JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE -Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ -n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A -PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6 -MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp -dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX -BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy -MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp -eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg -/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl -wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh -AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2 -PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu -AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR -MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc -HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/ -Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+ -f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO -rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch -6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3 -7CAFYd4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx -MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg -Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ -iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa -/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ -jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI -HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 -sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w -gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw -KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG -AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L -URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO -H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm -I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY -iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr -MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG -A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0 -MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp -Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD -QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz -i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8 -h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV -MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 -UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni -8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC -h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD -VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB -AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm -KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ -X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr -QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5 -pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN -QSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz -MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv -cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz -Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO -0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao -wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj -7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS -8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT -BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg -JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 -6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ -3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm -D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS -CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz -MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N -IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11 -bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE -RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO -zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5 -bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF -MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1 -VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC -OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G -CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW -tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ -q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb -EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+ -Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O -VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY -MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t -dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 -WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD -VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 -9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ -DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 -Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N -QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ -xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G -A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG -kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr -Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 -Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU -JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot -RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIETzCCAzegAwIBAgIEO63vKTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIzMTQxODE3WhcNMTEw -OTIzMTMxODE3WjB1MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v -LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWdu -ZXQgLSBDQSBLbGFzYSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4SRW9Q58g5DY1Hw7h -gCRKBEdPdGn0MFHsfw7rlu/oQm7IChI/uWd9q5wwo77YojtTDjRnpgZsjqBeynX8T90vFILqsY2K -5CF1OESalwvVr3sZiQX79lisuFKat92u6hBFikFIVxfHHB67Af+g7u0dEHdDW7lwy81MwFYxBTRy -9wIDAQABo4IBbTCCAWkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwggEEBgNVHSAE -gfwwgfkwgfYGDSsGAQQBvj8CAQoBAQAwgeQwgZoGCCsGAQUFBwICMIGNGoGKQ2VydHlmaWthdCB3 -eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtOiAiUG9saXR5a2EgQ2VydHlmaWthY2ppIGRs -YSBSb290Q0EiLiBDZXJ0eWZpa2F0IHd5c3Rhd2lvbnkgcHJ6ZXogUm9vdENBIHcgaGllcmFyY2hp -aSBDQyBTaWduZXQuMEUGCCsGAQUFBwIBFjlodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0b3Jp -dW0vZG9rdW1lbnR5L3BjX3Jvb3RjYS50eHQwHwYDVR0jBBgwFoAUwJvFIw0C4aZOSGsfAOnjmhQb -sa8wHQYDVR0OBBYEFMODHtVZd1T7TftXR/nEI1zR54njMA0GCSqGSIb3DQEBBQUAA4IBAQBRIHQB -FIGh8Jpxt87AgSLwIEEk4+oGy769u3NtoaR0R3WNMdmt7fXTi0tyTQ9V4AIszxVjhnUPaKnF1KYy -f8Tl+YTzk9ZfFkZ3kCdSaILZAOIrmqWNLPmjUQ5/JiMGho0e1YmWUcMci84+pIisTsytFzVP32/W -+sz2H4FQAvOIMmxB7EJX9AdbnXn9EXZ+4nCqi0ft5z96ZqOJJiCB3vSaoYg+wdkcvb6souMJzuc2 -uptXtR1Xf3ihlHaGW+hmnpcwFA6AoNrom6Vgzk6U1ienx0Cw28BhRSKqzKkyXkuK8gRflZUx84uf -tXncwKJrMiE3lvgOOBITRzcahirLer4c ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE9zCCA9+gAwIBAgIEPL/xoTANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQgLSBQQ0EgS2xhc2EgMjAeFw0wMjA0MTkxMDI5NTNa -Fw0xNzA0MTgxMjUzMDdaMHUxCzAJBgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4g -eiBvLm8uMSQwIgYDVQQLExtDZW50cnVtIENlcnR5ZmlrYWNqaSBTaWduZXQxHzAdBgNVBAMTFkND -IFNpZ25ldCAtIENBIEtsYXNhIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqgLJu -QqY4yavbSgHg8CyfKTx4BokNSDOVz4eD9vptUr11Kqd06ED1hlH7Sg0goBFAfntNU/QTKwSBaNui -me7C4sSEdgsKrPoAhGb4Mq8y7Ty7RqZz7mkzNMqzL2L2U4yQ2QjvpH8MH0IBqOWEcpSkpwnrCDIm -RoTfd+YlZWKi2JceQixUUYIQ45Ox8+x8hHbvvZdgqtcvo8PW27qoHkp/7hMuJ44kDAGrmxffBXl/ -OBRZp0uO1CSLcMcVJzyr2phKhy406MYdWrtNPEluGs0GFDzd0nrIctiWAO4cmct4S72S9Q6e//0G -O9f3/Ca5Kb2I1xYLj/xE+HgjHX9aD2MhAgMBAAGjggGMMIIBiDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjCB4wYDVR0gBIHbMIHYMIHVBg0rBgEEAb4/AhQKAQEAMIHDMHUGCCsGAQUF -BwICMGkaZ0NlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0 -eWthIENlcnR5ZmlrYWNqaSBQQ0EyIC0gQ2VydHlmaWthdHkgVXJ6ZWRvdyBLbGFzeSAyIi4wSgYI -KwYBBQUHAgEWPmh0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9kb2t1bWVudHkva2xh -c2EyL3BjX3BjYTIudHh0MD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly93d3cuc2lnbmV0LnBsL3Jl -cG96eXRvcml1bS9jcmwvcGNhMi5jcmwwHwYDVR0jBBgwFoAUwGxGyl2CfpYHRonE82AVXO08kMIw -HQYDVR0OBBYEFLtFBlILy4HNKVSzvHxBTM0HDowlMA0GCSqGSIb3DQEBBQUAA4IBAQBWTsCbqXrX -hBBev5v5cIuc6gJM8ww7oR0uMQRZoFSqvQUPWBYM2/TLI/f8UM9hSShUVj3zEsSj/vFHagUVmzuV -Xo5u0WK8iaqATSyEVBhADHrPG6wYcLKJlagge/ILA0m+SieyP2sjYD9MUB9KZIEyBKv0429UuDTw -6P7pslxMWJBSNyQxaLIs0SRKsqZZWkc7ZYAj2apSkBMX2Is1oHA+PwkF6jQMwCao/+CndXPUzfCF -6caa9WwW31W26MlXCvSmJgfiTPwGvm4PkPmOnmWZ3CczzhHl4q7ztHFzshJH3sZWDnrWwBFjzz5e -Pr3WHV1wA7EY6oT4zBx+2gT9XBTB ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEUzCCAzugAwIBAgIEPq+qjzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJQTDE3MDUGA1UE -ChMuQ1ppQyBDZW50cmFzdCBTQSB3IGltaWVuaXUgTWluaXN0cmEgR29zcG9kYXJraTEZMBcGA1UE -AxMQQ1ppQyBDZW50cmFzdCBTQTAeFw0wMzA0MzAxMDUwNTVaFw0wODA0MjgxMDUwNTVaMGgxCzAJ -BgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4geiBvLm8uMR8wHQYDVQQDExZDQyBT -aWduZXQgLSBDQSBLbGFzYSAzMRcwFQYDVQQFEw5OdW1lciB3cGlzdTogNDCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBALVdeOM62cPH2NERFxbS5FIp/HSv3fgesdVsTUFxZbGtE+/E0RMl -KZQJHH9emx7vRYubsi4EOLCjYsCOTFvgGRIpZzx7R7T5c0Di5XFkRU4gjBl7aHJoKb5SLzGlWdoX -GsekVtl6keEACrizV2EafqjI8cnBWY7OxQ1ooLQp5AeFjXg+5PT0lO6TUZAubqjFbhVbxSWjqvdj -93RGfyYE76MnNn4c2xWySD07n7uno06TC0IJe6+3WSX1h+76VsIFouWBXOoM7cxxiLjoqdBVu24+ -P8e81SukE7qEvOwDPmk9ZJFtt1nBNg8a1kaixcljrA/43XwOPz6qnJ+cIj/xywECAwEAAaOCAQow -ggEGMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDMGA1UdIAEB/wQpMCcwJQYEVR0g -ADAdMBsGCCsGAQUFBwIBFg93d3cuY2VudHJhc3QucGwwgY4GA1UdIwSBhjCBg4AU2a7r85Cp1iJN -W0Ca1LR6VG3996ShZaRjMGExCzAJBgNVBAYTAlBMMTcwNQYDVQQKEy5DWmlDIENlbnRyYXN0IFNB -IHcgaW1pZW5pdSBNaW5pc3RyYSBHb3Nwb2RhcmtpMRkwFwYDVQQDExBDWmlDIENlbnRyYXN0IFNB -ggQ9/0sQMB0GA1UdDgQWBBR7Y8wZkHq0zrY7nn1tFSdQ0PlJuTANBgkqhkiG9w0BAQUFAAOCAQEA -ldt/svO5c1MU08FKgrOXCGEbEPbQxhpM0xcd6Iv3dCo6qugEgjEs9Qm5CwUNKMnFsvR27cJWUvZb -MVcvwlwCwclOdwF6u/QRS8bC2HYErhYo9bp9yuxxzuow2A94c5fPqfVrjXy+vDouchAm6+A5Wjzv -J8wxVFDCs+9iGACmyUWr/JGXCYiQIbQkwlkRKHHlan9ymKf1NvIej/3EpeT8fKr6ywxGuhAfqofW -pg3WJY/RCB4lTzD8vZGNwfMFGkWhJkypad3i9w3lGmDVpsHaWtCgGfd0H7tUtWPkP+t7EjIRCD9J -HYnTR+wbbewc5vOI+UobR15ynGfFIaSIiMTVtQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEejCCA2KgAwIBAgIEP4vk6TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQ -TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu -dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBD -QSBLbGFzYSAyMB4XDTAzMTAxNDExNTgyMloXDTE3MDQxODEyNTMwN1owdzELMAkG -A1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6IG8uby4xJDAiBgNV -BAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEhMB8GA1UEAxMYQ0MgU2ln -bmV0IC0gT0NTUCBLbGFzYSAyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCo -VCsaBStblXQYVNthe3dvaCrfvKpPXngh4almm988iIlEv9CVTaAdCfaJNihvA+Vs -Qw8++ix1VqteMQE474/MV/YaXigP0Zr0QB+g+/7PWVlv+5U9Gzp9+Xx4DJay8AoI -iB7Iy5Qf9iZiHm5BiPRIuUXT4ZRbZRYPh0/76vgRsQIDAQABo4IBkjCCAY4wDgYD -VR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEEGA1UdHwQ6MDgwNqA0 -oDKGMGh0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9jcmwva2xhc2Ey -LmNybDCB2AYDVR0gBIHQMIHNMIHKBg4rBgEEAb4/AoFICgwBADCBtzBsBggrBgEF -BQcCAjBgGl5DZXJ0eWZpa2F0IHd5ZGFueSB6Z29kbmllIHogZG9rdW1lbnRlbSAi -UG9saXR5a2EgQ2VydHlmaWthY2ppIC0gQ2VydHlmaWthdHkgcmVzcG9uZGVyb3cg -T0NTUCIuMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0 -b3JpdW0vZG9rdW1lbnR5L3BjX29jc3BfMV8wLnBkZjAfBgNVHSMEGDAWgBS7RQZS -C8uBzSlUs7x8QUzNBw6MJTAdBgNVHQ4EFgQUKEVrOY7cEHvsVgvoyZdytlbtgwEw -CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAQrRg5MV6dxr0HU2IsLInxhvt -iUVmSFkIUsBCjzLoewOXA16d2oDyHhI/eE+VgAsp+2ANjZu4xRteHIHoYMsN218M -eD2MLRsYS0U9xxAFK9gDj/KscPbrrdoqLvtPSMhUb4adJS9HLhvUe6BicvBf3A71 -iCNe431axGNDWKnpuj2KUpj4CFHYsWCXky847YtTXDjri9NIwJJauazsrSjK+oXp -ngRS506mdQ7vWrtApkh8zhhWp7duCkjcCo1O8JxqYr2qEW1fXmgOISe010v2mmuv -hHxPyVwoAU4KkOw0nbXZn53yak0is5+XmAjh0wWue44AssHrjC9nUh3mkLt6eQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEezCCA2OgAwIBAgIEP4vnLzANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJQ -TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEfMB0GA1UEAxMWQ0Mg -U2lnbmV0IC0gQ0EgS2xhc2EgMzEXMBUGA1UEBRMOTnVtZXIgd3Bpc3U6IDQwHhcN -MDMxMDE0MTIwODAwWhcNMDgwNDI4MTA1MDU1WjB3MQswCQYDVQQGEwJQTDEfMB0G -A1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBD -ZXJ0eWZpa2FjamkgU2lnbmV0MSEwHwYDVQQDExhDQyBTaWduZXQgLSBPQ1NQIEts -YXNhIDMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM/9GwvARNuCVN+PqZmO -4FqH8vTqhenUyqRkmAVT4YhLu0a9AXeLAYVDu+NTkYzsAUMAfu55rIKHNLlm6WbF -KvLiKKz4p4pbUr+ToPcwl/TDotidloUdBAxDg0SL+PmQqACZDe3seJho2IYf2vDL -/G4TLMbKmNB0mlWFuN0f4fJNAgMBAAGjggGgMIIBnDAOBgNVHQ8BAf8EBAMCB4Aw -EwYDVR0lBAwwCgYIKwYBBQUHAwkwTwYDVR0fBEgwRjBEoEKgQIY+aHR0cDovL3d3 -dy5zaWduZXQucGwva3dhbGlmaWtvd2FuZS9yZXBvenl0b3JpdW0vY3JsL2tsYXNh -My5jcmwwgdgGA1UdIASB0DCBzTCBygYOKwYBBAG+PwKCLAoCAQAwgbcwbAYIKwYB -BQUHAgIwYBpeQ2VydHlmaWthdCB3eWRhbnkgemdvZG5pZSB6IGRva3VtZW50ZW0g -IlBvbGl0eWthIENlcnR5ZmlrYWNqaSAtIENlcnR5ZmlrYXR5IHJlc3BvbmRlcm93 -IE9DU1AiLjBHBggrBgEFBQcCARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5 -dG9yaXVtL2Rva3VtZW50eS9wY19vY3NwXzFfMC5wZGYwHwYDVR0jBBgwFoAUe2PM -GZB6tM62O559bRUnUND5SbkwHQYDVR0OBBYEFG4jnCMvBALRQXtmDn9TyXQ/EKP+ -MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADggEBACXrKG5Def5lpRwmZom3UEDq -bl7y4U3qomG4B+ok2FVZGgPZti+ZgvrenPj7PtbYCUBPsCSTNrznKinoT3gD9lQQ -xkEHwdc6VD1GlFp+qI64u0+wS9Epatrdf7aBnizrOIB4LJd4E2TWQ6trspetjMIU -upyWls1BmYUxB91R7QkTiAUSNZ87s3auhZuG4f0V0JLVCcg2rn7AN1rfMkgxCbHk -GxiQbYWFljl6aatxR3odnnzVUe1I8uoY2JXpmmUcOG4dNGuQYziyKG3mtXCQWvug -5qi9Mf3KUh1oSTKx6HfLjjNl1+wMB5Mdb8LF0XyZLdJM9yIZh7SBRsYm9QiXevY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFGjCCBAKgAwIBAgIEPL7eEDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwNDE4MTQ1NDA4WhcNMjYw -OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v -LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu -ZXQgLSBQQ0EgS2xhc2EgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM7BrBlbN5ma -M5eg0BOTqoZ+9NBDvU8Lm5rTdrMswFTCathzpVVLK/JD4K3+4oCZ9SRAspEXE4gvwb08ASY6w5s+ -HpRkeJw8YzMFR5kDZD5adgnCAy4vDfIXYZgppXPaTQ8wnfUZ7BZ7Zfa7QBemUIcJIzJBB0UqgtxW -Ceol9IekpBRVmuuSA6QG0Jkm+pGDJ05yj2eQG8jTcBENM7sVA8rGRMyFA4skSZ+D0OG6FS2xC1i9 -JyN0ag1yII/LPx8HK5J4W9MaPRNjAEeaa2qI9EpchwrOxnyVbQfSedCG1VRJfAsE/9tT9CMUPZ3x -W20QjQcSZJqVcmGW9gVsXKQOVLsCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQEBMIHkMIGaBggrBgEFBQcC -AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0 -eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6 -IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z -aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw -OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy -bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUwGxGyl2CfpYHRonE -82AVXO08kMIwDQYJKoZIhvcNAQEFBQADggEBABp1TAUsa+BeVWg4cjowc8yTJ5XN3GvN96GObMkx -UGY7U9kVrLI71xBgoNVyzXTiMNDBvjh7vdPWjpl5SDiRpnnKiOFXA43HvNWzUaOkTu1mxjJsZsan -ot1Xt6j0ZDC+03FjLHdYMyM9kSWp6afb4980EPYZCcSzgM5TOGfJmNii5Tq468VFKrX+52Aou1G2 -2Ohu+EEOlOrG7ylKv1hHUJJCjwN0ZVEIn1nDbrU9FeGCz8J9ihVUvnENEBbBkU37PWqWuHitKQDV -tcwTwJJdR8cmKq3NmkwAm9fPacidQLpaw0WkuGrS+fEDhu1Nhy9xELP6NA9GRTCNxm/dXlcwnmY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFGjCCBAKgAwIBAgIEPV0tNDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwODE2MTY0OTU2WhcNMjYw -OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v -LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu -ZXQgLSBQQ0EgS2xhc2EgMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALN3LanJtdue -Ne6geWUTFENa+lEuzqELcoqhYB+a/tJcPEkc6TX/bYPzalRRjqs+quMP6KZTU0DixOrV+K7iWaqA -iQ913HX5IBLmKDCrTVW/ZvSDpiBKbxlHfSNuJxAuVT6HdbzK7yAW38ssX+yS2tZYHZ5FhZcfqzPE -OpO94mAKcBUhk6T/ki0evXX/ZvvktwmF3hKattzwtM4JMLurAEl8SInyEYULw5JdlfcBez2Tg6Db -w34hA1A+ckTwhxzecrB8TUe2BnQKOs9vr2cCACpFFcOmPkM0Drtjctr1QHm1tYSqRFRf9VcV5tfC -3P8QqoK4ONjtLPHc9x5NE1uK/FMCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQECMIHkMIGaBggrBgEFBQcC -AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0 -eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6 -IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z -aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw -OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy -bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUXvthcPHlH5BgGhlM -ErJNXWlhlgAwDQYJKoZIhvcNAQEFBQADggEBACIce95Mvn710KCAISA0CuHD4aznTU6pLoCDShW4 -7OR+GTpJUm1coTcUqlBHV9mra4VFrBcBuOkHZoBLq/jmE0QJWnpSEULDcH9J3mF0nqO9SM+mWyJG -dsJF/XU/7smummgjMNQXwzQTtWORF+6v5KUbWX85anO2wR+M6YTBWC55zWpWi4RG3vkHFs5Ze2oF -JTlpuxw9ZgxTnWlwI9QR2MvEhYIUMKMOWxw1nt0kKj+5TCNQQGh/VJJ1dsiroGh/io1DOcePEhKz -1Ag52y6Wf0nJJB9yk0sFakqZH18F7eQecQImgZyyeRtsG95leNugB3BXWCW+KxwiBrtQTXv4dTE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEzzCCA7egAwIBAgIEO6ocGTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIwMTY0MjE5WhcNMjYw -OTIxMTU0MjE5WjBxMQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v -LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWdu -ZXQgLSBSb290Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrr2vydnNpELfGW3Ks -ARiDhJvwDtUe4AbWev+OfMc3+vA29nX8ZmIwno3gmItjo5DbUCCRiCMq5c9epcGu+kg4a3BJChVX -REl8gVh0ST15rr3RKrSc4VgsvQzl0ZUraeQLl8JoRT5PLsUj3qwF78jUCQVckiiLVcnGfZtFCm+D -CJXliQBDMB9XFAUEiO/DtEBs0B7wJGx7lgJeJpQUcGiaOPjcJDYOk7rNAYmmD2gWeSlepufO8luU -YG/YDxTC4mqhRqfa4MnVO5dqy+ICj2UvUpHbZDB0KfGRibgBYeQP1kuqgIzJN4UqknVAJb0aMBSP -l+9k2fAUdchx1njlbdcbAgMBAAGjggFtMIIBaTAPBgNVHRMBAf8EBTADAQH/MIIBBAYDVR0gBIH8 -MIH5MIH2Bg0rBgEEAb4/AgEKAQEAMIHkMIGaBggrBgEFBQcCAjCBjRqBikNlcnR5ZmlrYXQgd3lz -dGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBkbGEg -Um9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNoaWkg -Q0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVt -L2Rva3VtZW50eS9wY19yb290Y2EudHh0MB0GA1UdDgQWBBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAf -BgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN -AQEFBQADggEBAGnY5QmYqnnO9OqFOWZxxb25UHRnaRF6IV9aaGit5BZufZj2Tq3v8L3SgE34GOoI -cdRMMG5JEpEU4mN/Ef3oY6Eo+7HfqaPHI4KFmbDSPiK5s+wmf+bQSm0Yq5/h4ZOdcAESlLQeLSt1 -CQk2JoKQJ6pyAf6xJBgWEIlm4RXE4J3324PUiOp83kW6MDvaa1xY976WyInr4rwoLgxVl11LZeKW -ha0RJJxJgw/NyWpKG7LWCm1fglF8JH51vZNndGYq1iKtfnrIOvLZq6bzaCiZm1EurD8HE6P7pmAB -KK6o3C2OXlNfNIgwkDN/cDqk5TYsTkrpfriJPdxXBH8hQOkW89g= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID/TCCA2agAwIBAgIEP4/gkTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQTDEfMB0GA1UE -ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg -U2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBDQSBLbGFzYSAxMB4XDTAzMTAxNzEyMjkwMloX -DTExMDkyMzExMTgxN1owdjELMAkGA1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6 -IG8uby4xJDAiBgNVBAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEgMB4GA1UEAxMXQ0Mg -U2lnbmV0IC0gVFNBIEtsYXNhIDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOJYrISEtSsd -uHajROh5/n7NGrkpYTT9NEaPe9+ucuQ37KxIbfJwXJjgUc1dw4wCkcQ12FJarD1X6mSQ4cfN/60v -LfKI5ZD4nhJTMKlAj1pX9ScQ/MuyvKStCbn5WTkjPhjRAM0tdwXSnzuTEunfw0Oup559y3Iqxg1c -ExflB6cfAgMBAAGjggGXMIIBkzBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vd3d3LnNpZ25ldC5w -bC9yZXBvenl0b3JpdW0vY3JsL2tsYXNhMS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQM -MAoGCCsGAQUFBwMIMIHaBgNVHSAEgdIwgc8wgcwGDSsGAQQBvj8CZAoRAgEwgbowbwYIKwYBBQUH -AgIwYxphQ2VydHlmaWthdCB3eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtICJQb2xpdHlr -YSBDZXJ0eWZpa2FjamkgQ0MgU2lnbmV0IC0gWm5ha293YW5pZSBjemFzZW0iLjBHBggrBgEFBQcC -ARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY190c2ExXzJf -MS5wZGYwHwYDVR0jBBgwFoAUw4Me1Vl3VPtN+1dH+cQjXNHnieMwHQYDVR0OBBYEFJdDwEqtcavO -Yd9u9tej53vWXwNBMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADgYEAnpiQkqLCJQYXUrqMHUEz -+z3rOqS0XzSFnVVLhkVssvXc8S3FkJIiQTUrkScjI4CToCzujj3EyfNxH6yiLlMbskF8I31JxIeB -vueqV+s+o76CZm3ycu9hb0I4lswuxoT+q5ZzPR8Irrb51rZXlolR+7KtwMg4sFDJZ8RNgOf7tbA= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAx -MDQwNjEwNDkxM1oXDTIxMDQwNjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMSBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H887dF+2rDNbS82rDTG -29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9EJUk -oVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk -3w0LBUXl0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBL -qdReLjVQCfOAl/QMF6452F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIIN -nvmLVz5MxxftLItyM19yejhW1ebZrgUaHXVFsculJRwSVzb9IjcCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZTiFIwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE928Jj2VuX -ZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0H -DjxVyhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VO -TzF2nBBhjrZTOqMRvq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2Uv -kVrCqIexVmiUefkl98HVrhq4uz2PqYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4w -zMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9ZIRlXvVWa ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx -MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o -Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt -5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s -3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej -vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu -8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil -zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ -3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD -FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 -Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 -ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEFTCCA36gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBvjELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UE -ChMfU29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9z -dG1hc3RlcjEgMB4GA1UEAxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkq -hkiG9w0BCQEWFmhvc3RtYXN0ZXJAc3BpLWluYy5vcmcwHhcNMDMwMTE1MTYyOTE3 -WhcNMDcwMTE0MTYyOTE3WjCBvjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0luZGlh -bmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdhcmUgaW4g -dGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1hc3RlcjEgMB4GA1UE -AxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkqhkiG9w0BCQEWFmhvc3Rt -YXN0ZXJAc3BpLWluYy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPB6 -rdoiLR3RodtM22LMcfwfqb5OrJNl7fwmvskgF7yP6sdD2bOfDIXhg9852jhY8/kL -VOFe1ELAL2OyN4RAxk0rliZQVgeTgqvgkOVIBbNwgnjN6mqtuWzFiPL+NXQExq40 -I3whM+4lEiwSHaV+MYxWanMdhc+kImT50LKfkxcdAgMBAAGjggEfMIIBGzAdBgNV -HQ4EFgQUB63oQR1/vda/G4F6P4xLiN4E0vowgesGA1UdIwSB4zCB4IAUB63oQR1/ -vda/G4F6P4xLiN4E0vqhgcSkgcEwgb4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdJ -bmRpYW5hMRUwEwYDVQQHEwxJbmRpYW5hcG9saXMxKDAmBgNVBAoTH1NvZnR3YXJl -IGluIHRoZSBQdWJsaWMgSW50ZXJlc3QxEzARBgNVBAsTCmhvc3RtYXN0ZXIxIDAe -BgNVBAMTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MSUwIwYJKoZIhvcNAQkBFhZo -b3N0bWFzdGVyQHNwaS1pbmMub3JnggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcN -AQEEBQADgYEAm/Abn8c2y1nO3fgpAIslxvi9iNBZDhQtJ0VQZY6wgSfANyDOR4DW -iexO/AlorB49KnkFS7TjCAoLOZhcg5FaNiKnlstMI5krQmau1Qnb/vGSNsE/UGms -1ts+QYPUs0KmGEAFUri2XzLy+aQo9Kw74VBvqnxvaaMeY5yMcKNOieY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIIDjCCBfagAwIBAgIJAOiOtsn4KhQoMA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD -VQQGEwJVUzEQMA4GA1UECBMHSW5kaWFuYTEVMBMGA1UEBxMMSW5kaWFuYXBvbGlz -MSgwJgYDVQQKEx9Tb2Z0d2FyZSBpbiB0aGUgUHVibGljIEludGVyZXN0MRMwEQYD -VQQLEwpob3N0bWFzdGVyMR4wHAYDVQQDExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkx -JTAjBgkqhkiG9w0BCQEWFmhvc3RtYXN0ZXJAc3BpLWluYy5vcmcwHhcNMDgwNTEz -MDgwNzU2WhcNMTgwNTExMDgwNzU2WjCBvDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdh -cmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1hc3RlcjEe -MBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSUwIwYJKoZIhvcNAQkBFhZo -b3N0bWFzdGVyQHNwaS1pbmMub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -CgKCAgEA3DbmR0LCxFF1KYdAw9iOIQbSGE7r7yC9kDyFEBOMKVuUY/b0LfEGQpG5 -GcRCaQi/izZF6igFM0lIoCdDkzWKQdh4s/Dvs24t3dHLfer0dSbTPpA67tfnLAS1 -fOH1fMVO73e9XKKTM5LOfYFIz2u1IiwIg/3T1c87Lf21SZBb9q1NE8re06adU1Fx -Y0b4ShZcmO4tbZoWoXaQ4mBDmdaJ1mwuepiyCwMs43pPx93jzONKao15Uvr0wa8u -jyoIyxspgpJyQ7zOiKmqp4pRQ1WFmjcDeJPI8L20QcgHQprLNZd6ioFl3h1UCAHx -ZFy3FxpRvB7DWYd2GBaY7r/2Z4GLBjXFS21ZGcfSxki+bhQog0oQnBv1b7ypjvVp -/rLBVcznFMn5WxRTUQfqzj3kTygfPGEJ1zPSbqdu1McTCW9rXRTunYkbpWry9vjQ -co7qch8vNGopCsUK7BxAhRL3pqXTT63AhYxMfHMgzFMY8bJYTAH1v+pk1Vw5xc5s -zFNaVrpBDyXfa1C2x4qgvQLCxTtVpbJkIoRRKFauMe5e+wsWTUYFkYBE7axt8Feo -+uthSKDLG7Mfjs3FIXcDhB78rKNDCGOM7fkn77SwXWfWT+3Qiz5dW8mRvZYChD3F -TbxCP3T9PF2sXEg2XocxLxhsxGjuoYvJWdAY4wCAs1QnLpnwFVMCAwEAAaOCAg8w -ggILMB0GA1UdDgQWBBQ0cdE41xU2g0dr1zdkQjuOjVKdqzCB8QYDVR0jBIHpMIHm -gBQ0cdE41xU2g0dr1zdkQjuOjVKdq6GBwqSBvzCBvDELMAkGA1UEBhMCVVMxEDAO -BgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMf -U29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1h -c3RlcjEeMBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSUwIwYJKoZIhvcN -AQkBFhZob3N0bWFzdGVyQHNwaS1pbmMub3JnggkA6I62yfgqFCgwDwYDVR0TAQH/ -BAUwAwEB/zARBglghkgBhvhCAQEEBAMCAAcwCQYDVR0SBAIwADAuBglghkgBhvhC -AQ0EIRYfU29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDAwBglghkgBhvhC -AQQEIxYhaHR0cHM6Ly9jYS5zcGktaW5jLm9yZy9jYS1jcmwucGVtMDIGCWCGSAGG -+EIBAwQlFiNodHRwczovL2NhLnNwaS1pbmMub3JnL2NlcnQtY3JsLnBlbTAhBgNV -HREEGjAYgRZob3N0bWFzdGVyQHNwaS1pbmMub3JnMA4GA1UdDwEB/wQEAwIBBjAN -BgkqhkiG9w0BAQUFAAOCAgEAtM294LnqsgMrfjLp3nI/yUuCXp3ir1UJogxU6M8Y -PCggHam7AwIvUjki+RfPrWeQswN/2BXja367m1YBrzXU2rnHZxeb1NUON7MgQS4M -AcRb+WU+wmHo0vBqlXDDxm/VNaSsWXLhid+hoJ0kvSl56WEq2dMeyUakCHhBknIP -qxR17QnwovBc78MKYiC3wihmrkwvLo9FYyaW8O4x5otVm6o6+YI5HYg84gd1GuEP -sTC8cTLSOv76oYnzQyzWcsR5pxVIBcDYLXIC48s9Fmq6ybgREOJJhcyWR2AFJS7v -dVkz9UcZFu/abF8HyKZQth3LZjQl/GaD68W2MEH4RkRiqMEMVObqTFoo5q7Gt/5/ -O5aoLu7HaD7dAD0prypjq1/uSSotxdz70cbT0ZdWUoa2lOvUYFG3/B6bzAKb1B+P -+UqPti4oOxfMxaYF49LTtcYDyeFIQpvLP+QX4P4NAZUJurgNceQJcHdC2E3hQqlg -g9cXiUPS1N2nGLar1CQlh7XU4vwuImm9rWgs/3K1mKoGnOcqarihk3bOsPN/nOHg -T7jYhkalMwIsJWE3KpLIrIF0aGOHM3a9BX9e1dUCbb2v/ypaqknsmHlHU5H2DjRa -yaXG67Ljxay2oHA1u8hRadDytaIybrw/oDc5fHE2pgXfDBLkFqfF1stjo5VwP+YE -o2A= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICqDCCAZACCQCHc5eBqnSyFTANBgkqhkiG9w0BAQUFADAWMRQwEgYDVQQDEwt0 -aGlua3BhZC1wZTAeFw0xMTA3MTExNzU4NTVaFw0yMTA3MDgxNzU4NTVaMBYxFDAS -BgNVBAMTC3RoaW5rcGFkLXBlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAtS6SgGwg+IEzl85WsXc2TnfLPZZTjoNGL/tb/fLIyaEx1/YopEyo0zSsenyA -95RFvPs4fK6+onmiRLq3YgYtbxSbv83/no/ggMkhMZw7Il2cguoxaiTpf6Z+zGNA -nX98M7ig5ISPnq+06Sw869NEAsYbiReNgazAJM53RdfSqZsok1A5CyXd3XUERLNm -UoCw917DNhu+N3xed/1t376yW4Bo/kkyrn1CRTG8jxi5xe+tCsDTWSjJzkS0e6WJ -MVK6PJxP0if7lw28Qh0zd9orR26HDbQ6TPpAF2sj7UhPleA4xkKjtiir3nITHkRR -bMvyd22gDAPIhZsF19X+dua8UwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQCm+aKc -dvClUqqhe/wACAHn+NOLGAYK6kLVJaWUzvcSFMU9M6iyJllpxO0BwhdxXrmLtG72 -lermeKh4wTiREP16Qdh0nNbtiB4cOAzBvHNzj6RymGAL50RBugu0zlY3wDUxDGS8 -M/7c4ZAB/BvieA09o2tnUGmL7PijDGPLE5bclIwVAkXaeXKa6bG0kJnr0ndxX68d -AJGNoSFTdxBMPw6gau77w7wQULFKFj4xTEKkYngNDsKERc/u/yrYRfkeehehRNmT -BcKocK4dDPPPzcJ12AjBnYtxitTRlJyXAkNVjLMTSg7lAU36JjNkvXqhSqDQJf04 -yW2ZnchxqK6f0gWO ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX -DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291 -qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp -uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU -Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE -pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp -5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M -UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN -GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy -5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv -6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK -eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6 -B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/ -BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov -L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG -SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS -CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen -5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897 -IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK -gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL -+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL -vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm -bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk -N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC -Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z -ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO -TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy -MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk -ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn -ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71 -9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO -hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U -tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o -BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh -SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww -OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv -cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA -7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k -/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm -eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6 -u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy -7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR -iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl -MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp -U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw -NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE -ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp -ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 -DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf -8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN -+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 -X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa -K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA -1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G -A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR -zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 -YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD -bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w -DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 -L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D -eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp -VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY -WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW -MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg -Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9 -MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi -U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh -cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk -pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf -OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C -Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT -Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi -HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM -Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w -+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ -Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 -Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B -26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID -AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE -FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j -ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js -LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM -BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0 -Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy -dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh -cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh -YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg -dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp -bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ -YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT -TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ -9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8 -jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW -FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz -ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1 -ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L -EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu -L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq -yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC -O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V -um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh -NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCB -rjELMAkGA1UEBhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcp -MRIwEAYDVQQHEwlTdHV0dGdhcnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fz -c2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVTLVRSVVNUIEF1dGhlbnRpY2F0aW9u -IGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0wNTA2MjIwMDAwMDBa -Fw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFkZW4t -V3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMg -RGV1dHNjaGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJV -U1QgQXV0aGVudGljYXRpb24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBO -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1 -toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob4QSwI7+Vio5bG0F/WsPo -TUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXLg3KSwlOy -ggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1 -XgqfeN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteF -hy+S8dF2g08LOlk3KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm -7QIDAQABo4GSMIGPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG -MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJvbmxpbmUxLTIwNDgtNTAdBgNV -HQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAUD8oeXHngovMp -ttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD -pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFo -LtU96G7m1R08P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersF -iXOMy6ZNwPv2AtawB6MDwidAnwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0y -h9WUUpY6RsZxlj33mA6ykaqP2vROJAA5VeitF7nTNCtKqUDMFypVZUF0Qn71wK/I -k63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8bHz2eBIPdltkdOpQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk -MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0 -YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg -Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT -AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp -Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9 -m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih -FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/ -TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F -EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco -kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu -HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF -vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo -19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC -L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW -bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX -JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw -FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j -BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc -K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf -ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik -Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB -sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e -3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR -ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip -mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH -b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf -rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms -hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y -zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6 -MBr1mmz0DlP5OlvRHA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV -BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln -biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF -MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT -d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8 -76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+ -bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c -6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE -emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd -MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt -MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y -MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y -FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi -aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM -gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB -qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7 -lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn -8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6 -45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO -UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5 -O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC -bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv -GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a -77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC -hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3 -92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp -Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w -ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt -Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu -IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw -WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD -ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y -IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn -IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+ -6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob -jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw -izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl -+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY -zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP -pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF -KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW -ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB -AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0 -ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW -IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA -A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0 -uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+ -FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7 -jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/ -u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D -YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1 -puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa -icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG -DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x -kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z -Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu -IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow -RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY -U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv -Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br -YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF -nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH -6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt -eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/ -c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ -MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH -HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf -jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6 -5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB -rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU -F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c -wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB -AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp -WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9 -xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ -2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ -IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8 -aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X -em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR -dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/ -OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+ -hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy -tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/ -MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow -PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR -IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q -gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy -yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts -F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2 -jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx -ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC -VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK -YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH -EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN -Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud -DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE -MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK -UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf -qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK -ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE -JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7 -hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1 -EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm -nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX -udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz -ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe -LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl -pYYsfPQS ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL -MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV -BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 -Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1 -OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i -SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc -VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf -tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg -uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J -XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK -8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99 -5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3 -kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy -dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6 -Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz -JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 -Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS -GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt -ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8 -au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV -hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI -dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL -MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV -BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 -Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1 -OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i -SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc -VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW -Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q -Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2 -1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq -ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1 -Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX -XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy -dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6 -Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz -JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 -Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN -irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8 -TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6 -g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB -95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj -S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRF -MRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFU -QyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJI -MSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAyIENBMSkwJwYJKoZIhvcN -AQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05ODAzMDkxMTU5NTla -Fw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFtYnVy -ZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9y -IFNlY3VyaXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1 -c3RDZW50ZXIgQ2xhc3MgMiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVA -dHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANo46O0y -AClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLsqh1R1z2zUbKDTl3LSbDw -TFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5Nu6hLVxa8 -/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3 -LnRydXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G -CSqGSIb3DQEBBAUAA4GBAIRS+yjf/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/ -jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ29ELw+HkuCkhcq8xRT3h2oNms -Gb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/AcASZ4smZHcFFk ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRF -MRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFU -QyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJI -MSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAzIENBMSkwJwYJKoZIhvcN -AQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05ODAzMDkxMTU5NTla -Fw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFtYnVy -ZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9y -IFNlY3VyaXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1 -c3RDZW50ZXIgQ2xhc3MgMyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVA -dHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALa0wTUF -Lg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN2U4CdhHBC/KNecoAtvGw -Dtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+77uMMfTDW -w1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3 -LnRydXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G -CSqGSIb3DQEBBAUAA4GBABY9xs3Bu4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIE -Tb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm5gZOngylerpuw3yCGdHHsbHD -2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQSCdS7kjXvD9s0 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL -MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV -BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1 -c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy -MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl -ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm -BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF -5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv -DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v -zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT -yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj -dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh -MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI -4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz -dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY -aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G -DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV -CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH -LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL -MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV -BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1 -c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx -MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg -R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD -VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR -JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T -fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu -jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z -wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ -fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD -VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G -CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1 -7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn -8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs -ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT -ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/ -2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJE -SzEVMBMGA1UEChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQg -Um9vdCBDQTAeFw0wMTA0MDUxNjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNV -BAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJuZXQxHTAbBgNVBAsTFFREQyBJbnRl -cm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxLhA -vJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20jxsNu -Zp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a -0vnRrEvLznWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc1 -4izbSysseLlJ28TQx5yc5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGN -eGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcD -R0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZIAYb4QgEBBAQDAgAHMGUG -A1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMMVERDIElu -dGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxME -Q1JMMTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3 -WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAw -HQYDVR0OBBYEFGxkAcf9hW2syNqeUAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJ -KoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQBO -Q8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540mgwV5dOy0uaOX -wTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ -2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm89 -9qNLPg7kbWzbO0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0 -jUNAE4z9mQNUecYu6oah9jrUCbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38 -aQNiuJkFBT1reBK9sG9l ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJE -SzEMMAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEw -ODM5MzBaFw0zNzAyMTEwOTA5MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNU -REMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuHnEz9pPPEXyG9VhDr -2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0zY0s -2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItU -GBxIYXvViGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKj -dGqPqcNiKXEx5TukYBdedObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+r -TpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB5DCB4TCB3gYIKoFQgSkB -AQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5kay9yZXBv -c2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRl -ciBmcmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEu -MS4xLiBDZXJ0aWZpY2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIg -T0lEIDEuMi4yMDguMTY5LjEuMS4xLjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1Ud -HwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERDMRQwEgYD -VQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYmaHR0cDovL2Ny -bC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy -MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZ -J2cdUBVLc647+RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqG -SIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACrom -JkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4A9G28kNBKWKnctj7fAXmMXAnVBhO -inxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYscA+UYyAFMP8uXBV2Y -caaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9AOoB -mbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQ -YqbsFbS1AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9 -BKNDLdr8C2LqL19iUw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD -VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT -ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt -YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu -Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT -AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa -MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp -b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG -cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh -d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY -DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E -rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq -uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN -BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP -MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa -/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei -gQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD -VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy -dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t -MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB -MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG -A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp -b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl -cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv -bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE -VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ -ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR -uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI -hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM -pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp -IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi -BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw -MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig -YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v -dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ -BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 -papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K -DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 -KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox -XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB -rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV -BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa -Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl -LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u -MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm -gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 -YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf -b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 -9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S -zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk -OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA -2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW -oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c -KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM -m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu -MdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB -qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV -BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw -NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j -LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG -A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs -W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta -3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk -6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6 -Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J -NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP -r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU -DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz -YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2 -/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/ -LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 -jVaMaA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD -VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm -MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx -MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3 -dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl -cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3 -DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD -gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91 -yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX -L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj -EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG -7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e -QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ -qdq5snUb9kLy78fyGPmJvKP/iiMucEc= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN -BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd -BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN -MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g -Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG -A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l -c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT -6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa -Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL -8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB -Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC -9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ -pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ -CayJSdM= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS -MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp -bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw -VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy -YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy -dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2 -ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe -Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx -GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls -aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU -QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh -xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0 -aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr -IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h -gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK -O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO -fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw -lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL -hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID -AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP -NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t -wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM -7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh -gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n -oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs -yZyQ2uypQjyttgI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOc -UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx -c8SxMQswCQYDVQQGDAJUUjEPMA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykg -MjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8 -dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMxMDI3MTdaFw0xNTAz -MjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2Vy -dGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYD -VQQHDAZBTktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kg -xLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEu -xZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7 -XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GXyGl8hMW0kWxsE2qkVa2k -heiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8iSi9BB35J -YbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5C -urKZ8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1 -JuTm5Rh8i27fbMx4W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51 -b0dewQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV -9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46sWrv7/hg0Uw2ZkUd82YCdAR7 -kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxEq8Sn5RTOPEFh -fEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy -B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdA -aLX/7KfS0zgYnNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKS -RGQDJereW26fyfJOrN3H ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc -UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx -c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS -S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg -SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3 -WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv -bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU -UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw -bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe -LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef -J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh -R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ -Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX -JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p -zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S -Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ -KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq -ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 -Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz -gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH -uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS -y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB -kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug -Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw -IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG -EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD -VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu -dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6 -E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ -D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK -4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq -lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW -bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB -o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT -MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js -LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr -BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB -AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft -Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj -j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH -KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv -2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3 -mfnGV/TJVTl4uix5yaaIK/QI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCB -rjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug -Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVUTi1VU0VSRmlyc3Qt -Q2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05OTA3MDkxNzI4NTBa -Fw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAV -BgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5l -dHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UE -AxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWls -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3B -YHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJkxIW9 -hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6l -L8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLm -SGHGTPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM -1tZUOt4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws -6wIDAQABo4G5MIG2MAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNVHR8EUTBPME2gS6BJhkdodHRw -Oi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGllbnRBdXRoZW50 -aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH -AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u -7mFVbwQ+zznexRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0 -xtcgBEXkzYABurorbs6q15L+5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQ -rfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarVNZ1yQAOJujEdxRBoUp7fooXFXAim -eOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZw7JHpsIyYdfHb0gk -USeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB -lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug -Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt -SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG -A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe -MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v -d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh -cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn -0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ -M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a -MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd -oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI -DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy -oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0 -dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy -bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF -BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM -//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli -CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE -CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t -3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS -KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 -IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz -BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y -aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG -9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy -NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y -azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw -Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl -cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y -LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+ -TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y -TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0 -LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW -I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw -nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 -IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz -BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y -aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG -9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy -NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y -azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw -Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl -cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY -dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 -WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS -v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v -UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu -IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC -W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK -VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm -Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J -h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul -uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68 -DzFc6PLZ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4 -nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO -8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV -ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb -PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2 -6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr -n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a -qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4 -wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 -ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs -pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4 -E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f -zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi -TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G -CSqGSIb3DQEBBQUAA4GBAFgVKTk8d6PaXCUDfGD67gmZPCcQcMgMCeazh88K4hiW -NWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n0a3hUKw8fGJLj7qE1xIV -Gx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZRjXZ+Hxb ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns -YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y -aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe -Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj -IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx -KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM -HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw -DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC -AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji -nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX -rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn -jBJ7xUS0rg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy -aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp -Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV -BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp -Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g -Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU -J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO -JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY -wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o -koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN -qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E -Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe -xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u -7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU -sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI -sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP -cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh -YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7 -FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G -CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg -J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc -r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4 -pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0 -13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk -U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i -F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY -oJ2daZH9 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b -N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t -KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu -kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm -CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ -Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu -imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te -2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe -DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p -F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt -TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp -U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg -SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln -biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm -GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve -fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ -aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj -aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW -kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC -4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga -FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW -ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 -nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex -t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz -SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG -BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+ -rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/ -NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E -BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH -BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv -MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE -p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y -5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK -WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ -4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N -hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE -BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is -I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G -CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i -2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ -2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM -HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK -qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj -cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y -cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP -T8qAkbYp ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1 -GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ -+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd -U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm -NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY -ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ -ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1 -CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq -g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm -fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c -2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/ -bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr -MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl -cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv -bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw -CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h -dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l -cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h -2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E -lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV -ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq -299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t -vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL -dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF -AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR -zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3 -LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd -7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw -++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt -398znM/jra6O1I7mT1GvFpLgXPYHDw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMC -VVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9v -dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDAxMDExMTY0MTI4WhcNMjEwMTE0 -MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSww -KgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G -A1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n13 -5zHCLielTWi5MbqNQ1mXx3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHE -SxP9cMIlrCL1dQu3U+SlK93OvRw6esP3E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4O -JgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5OEL8pahbSCOz6+MlsoCu -ltQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4jsNtlAHCE -AQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMB -AAGjYTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcB -CzAyMDAGCCsGAQUFBwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRw -b2xpY3kwDQYJKoZIhvcNAQEFBQADggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo -7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrvm+0fazbuSCUlFLZWohDo7qd/ -0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0ROhPs7fpvcmR7 -nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx -x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ -33ZwmVxwQ023tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx -IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs -cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v -dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0 -MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl -bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD -DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r -WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU -Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs -HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj -z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf -SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl -AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG -KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P -AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j -BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC -VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX -ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB -ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd -/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB -A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn -k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9 -iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv -2G0xffX8oRAHh84vWdw+WNs= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB -gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk -MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY -UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx -NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 -dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy -dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 -38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP -KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q -DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 -qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa -JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi -PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P -BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs -jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 -eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR -vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa -IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy -i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ -O+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- From 638cff9433c3787a74b2db79aebc19092d6323b4 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Mon, 3 Jun 2013 16:23:58 +0200 Subject: [PATCH 152/177] ipdate ms2 to fix build issue when compiling whitout opus --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 5b7873ee3..bc1cb1d1f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 5b7873ee3cbc460138015ba244330d99aa861d7f +Subproject commit bc1cb1d1f2b996c84828ba7d81ae43b95bcceacb From 0231328392bb818bc24cf723d316f1f74eb2d8c0 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 5 Jun 2013 14:30:01 +0200 Subject: [PATCH 153/177] Add strtok in ortp for mingw compilation --- coreapi/message_storage.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index deed140c7..765543f7a 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -83,7 +83,7 @@ void linphone_sql_request_message(sqlite3 *db,const char *stmt,LinphoneChatRoom int ret; ret=sqlite3_exec(db,stmt,callback,cr,&errmsg); if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); + ms_error("Error in creation: %s.\n", errmsg); sqlite3_free(errmsg); } } @@ -197,7 +197,7 @@ void linphone_create_table(sqlite3* db){ ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);", 0,0,&errmsg); if(ret != SQLITE_OK) { - printf("Error in creation: %s.\n", errmsg); + ms_error("Error in creation: %s.\n", errmsg); sqlite3_free(errmsg); } } @@ -209,7 +209,7 @@ void linphone_core_message_storage_init(LinphoneCore *lc){ ret=sqlite3_open(lc->chat_db_file,&db); if(ret != SQLITE_OK) { errmsg=sqlite3_errmsg(db); - printf("Error in the opening: %s.\n", errmsg); + ms_error("Error in the opening: %s.\n", errmsg); sqlite3_close(db); } linphone_create_table(db); From 0fd44a7a545221fcc7cedee97b2eed9ae916b43e Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 6 Jun 2013 09:35:22 +0200 Subject: [PATCH 154/177] Really add strtok in oRTP --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index bc1cb1d1f..b40cd2308 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit bc1cb1d1f2b996c84828ba7d81ae43b95bcceacb +Subproject commit b40cd2308ed594e2f4f311654a4291b22c72b5ac diff --git a/oRTP b/oRTP index 2c37d1205..462296433 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 2c37d1205e9dd0e30a918ccf666ab217b66c2899 +Subproject commit 462296433f10bd84cb605edb0b38d16a4cd81d9e From 6a87488991fe206bc72deda1274610ceab9e3376 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 6 Jun 2013 11:12:17 +0200 Subject: [PATCH 155/177] fix warning in gtk app --- gtk/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/main.c b/gtk/main.c index e914e42bd..1aa2e287c 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -568,7 +568,7 @@ static gboolean linphone_gtk_iterate(LinphoneCore *lc){ if (id!=0){ ms_message("Updating window decorations"); #ifndef WIN32 - w=gdk_window_foreign_new(id); + w=gdk_window_foreign_new((GdkNativeWindow)id); #else w=gdk_window_foreign_new((HANDLE)id); #endif @@ -587,7 +587,7 @@ static gboolean linphone_gtk_iterate(LinphoneCore *lc){ if (id!=0){ ms_message("Updating window decorations for preview"); #ifndef WIN32 - w=gdk_window_foreign_new(id); + w=gdk_window_foreign_new((GdkNativeWindow)id); #else w=gdk_window_foreign_new((HANDLE)id); #endif From d1dc89b52078c002eeb2686179d70fe80c6f6ef2 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 6 Jun 2013 15:44:11 +0200 Subject: [PATCH 156/177] Update ms2 for VP8 fixes. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index b40cd2308..60edaade5 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit b40cd2308ed594e2f4f311654a4291b22c72b5ac +Subproject commit 60edaade52a6f123f2cde6140ca90378d95c9d87 From f2738da8d9e4b0e34ca07dae482a0fa5dcf10c9a Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 6 Jun 2013 15:26:21 +0200 Subject: [PATCH 157/177] Add linphone_core_get_camera_sensor_rotation(). --- coreapi/linphonecore.c | 10 ++++++++++ coreapi/linphonecore.h | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index f0963f904..202519d76 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4744,6 +4744,16 @@ void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation) { #endif } +int linphone_core_get_camera_sensor_rotation(LinphoneCore *lc) { +#ifdef VIDEO_ENABLED + LinphoneCall *call = linphone_core_get_current_call(lc); + if ((call != NULL) && (call->videostream != NULL)) { + return video_stream_get_camera_sensor_rotation(call->videostream); + } +#endif + return -1; +} + static MSVideoSizeDef supported_resolutions[]={ #ifdef ENABLE_HD { {MS_VIDEO_SIZE_1080P_W,MS_VIDEO_SIZE_1080P_H} , "1080p" }, diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 67d4fb255..50686a2c9 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1354,6 +1354,17 @@ void linphone_core_use_preview_window(LinphoneCore *lc, bool_t yesno); int linphone_core_get_device_rotation(LinphoneCore *lc ); void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation); +/** + * @brief Get the camera sensor rotation. + * + * This is needed on some mobile platforms to get the number of degrees the camera sensor + * is rotated relative to the screen. + * + * @param lc The linphone core related to the operation + * @return The camera sensor rotation in degrees (0 to 360) or -1 if it could not be retrieved + */ +int linphone_core_get_camera_sensor_rotation(LinphoneCore *lc); + /* start or stop streaming video in case of embedded window */ void linphone_core_show_video(LinphoneCore *lc, bool_t show); From 2cc690382793142801ddb7480ee7bb6dd3082de7 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 7 Jun 2013 16:23:07 +0200 Subject: [PATCH 158/177] update ms2 with better opus integration --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 60edaade5..ff9b20e9f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 60edaade52a6f123f2cde6140ca90378d95c9d87 +Subproject commit ff9b20e9fbccb0c3ca401544d2cdc39dd8ee629e From 74359410314eb7a49e5eeb56c4d995f234d36bac Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 11 Jun 2013 14:23:27 +0200 Subject: [PATCH 159/177] Added setDomain to Java LinphoneAddress --- coreapi/linphonecore_jni.cc | 9 ++++++++- java/impl/org/linphone/core/LinphoneAddressImpl.java | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 5619993ab..1dfaf3c3c 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1387,7 +1387,14 @@ extern "C" jstring Java_org_linphone_core_LinphoneAddressImpl_getDomain(JNIEnv* return NULL; } } - +extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setDomain(JNIEnv* env + ,jobject thiz + ,jlong ptr + ,jstring jdomain) { + const char* domain = env->GetStringUTFChars(jdomain, NULL); + linphone_address_set_domain((LinphoneAddress*)ptr, domain); + env->ReleaseStringUTFChars(jdomain, domain); +} extern "C" jstring Java_org_linphone_core_LinphoneAddressImpl_toString(JNIEnv* env ,jobject thiz ,jlong ptr) { diff --git a/java/impl/org/linphone/core/LinphoneAddressImpl.java b/java/impl/org/linphone/core/LinphoneAddressImpl.java index b9d290971..8d76da77a 100644 --- a/java/impl/org/linphone/core/LinphoneAddressImpl.java +++ b/java/impl/org/linphone/core/LinphoneAddressImpl.java @@ -31,6 +31,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { private native String toUri(long ptr); private native void setDisplayName(long ptr,String name); private native String toString(long ptr); + private native void setDomain(long ptr, String domain); protected LinphoneAddressImpl(String identity) { nativePtr = newLinphoneAddressImpl(identity, null); @@ -85,7 +86,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { return getPortInt(); } public void setDomain(String domain) { - throw new RuntimeException("Not implemented"); + setDomain(nativePtr, domain); } public void setPort(String port) { throw new RuntimeException("Not implemented"); From e88b7a3f68f3528d7808a673d162e6a89dd3361d Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 12 Jun 2013 11:11:35 +0200 Subject: [PATCH 160/177] update ms2 for H263 4CIF support --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index ff9b20e9f..f4b3768c9 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ff9b20e9fbccb0c3ca401544d2cdc39dd8ee629e +Subproject commit f4b3768c9b92bf8d0977374b4a8b5d229c4d393e From fce91b4cf8ac95efa752951433d7e9ffa4e074ae Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Thu, 13 Jun 2013 09:38:41 +0200 Subject: [PATCH 161/177] Depend on automake 1.9 and tar-pax (posix2001) make dist was limited to 99 character long filenames. --- configure.ac | 2 +- mediastreamer2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 0fcf38fc9..ddeebd5ce 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ AC_SUBST(LINPHONE_VERSION) AC_MSG_NOTICE([$PACKAGE_NAME-$PACKAGE_VERSION A full featured audio/video sip phone.]) AC_MSG_NOTICE([licensed under the terms of the General Public License (GPL)]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([1.9 tar-pax]) AC_SUBST([LIBTOOL_DEPS]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],) AC_SUBST([docdir], [${datadir}/doc]) diff --git a/mediastreamer2 b/mediastreamer2 index f4b3768c9..64cf0f92e 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f4b3768c9b92bf8d0977374b4a8b5d229c4d393e +Subproject commit 64cf0f92ee8550ce2a330726b46782eda9819a73 From e2ea0a739f43655d7130641b9170cac5383c4bb3 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 14 Jun 2013 10:52:58 +0200 Subject: [PATCH 162/177] Update oRTP (strtok issue) --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 462296433..9853da618 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 462296433f10bd84cb605edb0b38d16a4cd81d9e +Subproject commit 9853da61897a3c01303f9b71f331231b65b2979e From fdd9db221175b00f1d8c127732fd8a1ba6ce7c58 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Fri, 14 Jun 2013 14:37:52 +0200 Subject: [PATCH 163/177] Change silk payload bitrate. --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index 9853da618..020d921f8 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 9853da61897a3c01303f9b71f331231b65b2979e +Subproject commit 020d921f876ed04d434425fb2176642bbe9b3004 From 4b89219dba3706ad4892e848602a52beb79ade96 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 14 Jun 2013 15:03:42 +0200 Subject: [PATCH 164/177] MS2:fix wrong sampling rate at first startup --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 64cf0f92e..7564a5073 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 64cf0f92ee8550ce2a330726b46782eda9819a73 +Subproject commit 7564a50732292a017363bc39bba63e225c8b93c9 From 8013b13e166d9bfd4cea8bf99eddfa8a4d124dcc Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 17 Jun 2013 14:33:21 +0200 Subject: [PATCH 165/177] fix memory leak with some camera on windows (mainly) --- NEWS | 5 +++++ configure.ac | 2 +- mediastreamer2 | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 0eede9fa5..e1a271db1 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +linphone-3.6.1 -- June 17, 2013 + * fix memory leak with some video cameras on windows. + + Requires: mediastreamer2 = 2.9.1 and ortp = 0.22.0 + linphone-3.6.0 -- May 27, 2013 UI: * new friend list and chat messaging UI diff --git a/configure.ac b/configure.ac index ddeebd5ce..eb4d533e8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.6.0],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.6.1],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([coreapi/linphonecore.c]) diff --git a/mediastreamer2 b/mediastreamer2 index 7564a5073..51d3c20b5 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 7564a50732292a017363bc39bba63e225c8b93c9 +Subproject commit 51d3c20b5ac8c0c8ad4be8fc73d8fa4df195d017 From 569217eacb807835ac74e5909a68c6ee1c7151c2 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 18 Jun 2013 18:39:44 +0200 Subject: [PATCH 166/177] improve documentation of macos x compilation, especially regarding generating bundle compatible with older macos version. --- README.macos | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/README.macos b/README.macos index dd39c2f6e..e2f1593bd 100644 --- a/README.macos +++ b/README.macos @@ -7,6 +7,10 @@ You need: - Macports: http://www.macports.org/ Download and install macports using its user friendly installer. +- In order to enable generation of bundle for multiple macos version it is recommended to edit /opt/local/etc/macports/macports.conf to add the + following line: + macosx_deployment_target 10.6 + - Install build time dependencies $ sudo port install automake autoconf libtool intltool @@ -17,7 +21,22 @@ You need: $ sudo port install ffmpeg-devel -gpl2 $ sudo port install libvpx $ sudo port install readline - + + +- Install gtk. It is recommended to use the quartz backend for better integration. + $ sudo port install gtk2 +quartz +no_x11 + $ sudo port install gtk-osx-application -python27 + $ sudo port install hicolor-icon-theme + +- Install additional librairies required for wizard (linphone.org account creation assistant) + $ sudo port install libsoup + +- Install sqlite3 for message storage + $ sudo port install sqlite3 + +The softwares below need to be compiled manually. To ensure compatibility with multiple mac os version it is recommended to do: + $ export MACOSX_DEPLOYMENT_TARGET=10.6 + - Install srtp (optional) for call encryption $ sudo port install srtp If that fails, get from source: @@ -31,17 +50,6 @@ You need: $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make $ sudo make install -- Install gtk. It is recommended to use the quartz backend for better integration. - $ sudo port install gtk2 +quartz +no_x11 - $ sudo port install gtk-osx-application -python27 - $ sudo port install hicolor-icon-theme - -- Install additional librairies required for wizard (linphone.org account creation assistant) - $ sudo port install libsoup - - - Install sqlite3 for message storage - $ sudo port install sqlite3 - ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle ** As a temporary workaround, build a newer version by yourself: $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz @@ -58,7 +66,6 @@ You need: $ ./configure --prefix=/opt/local && make && sudo make install - - Compile linphone If you got the source code from git, run ./autogen.sh first. @@ -82,8 +89,7 @@ Use git: $ sudo touch touch /opt/local/lib/charset.alias Then run, inside linphone source tree: - 1. Run configure as told before but with "--enable-relativeprefix" appended. - + Run configure as told before but with "--enable-relativeprefix" appended. $ make $ make bundle From 3bff0cef821cf8f8c42fc78aa30917469d7bf0b2 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 20 Jun 2013 11:36:58 +0200 Subject: [PATCH 167/177] allow contact address to be changed during call updates --- coreapi/linphonecore.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 202519d76..34c849595 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2821,6 +2821,10 @@ int linphone_core_start_update_call(LinphoneCore *lc, LinphoneCall *call){ if (lc->vtable.display_status) lc->vtable.display_status(lc,_("Modifying call parameters...")); sal_call_set_local_media_description (call->op,call->localdesc); + if (call->dest_proxy && call->dest_proxy->op){ + /*give a chance to update the contact address if connectivity has changed*/ + sal_op_set_contact(call->op,sal_op_get_contact(call->dest_proxy->op)); + }else sal_op_set_contact(call->op,NULL); return sal_call_update(call->op,subject); } From 928315fcf1a88c3a1dded5fd2ec113c9a1e476d9 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 21 Jun 2013 11:31:49 +0200 Subject: [PATCH 168/177] Update ms2 (msdscap bug fix) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 51d3c20b5..08e53b3ae 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 51d3c20b5ac8c0c8ad4be8fc73d8fa4df195d017 +Subproject commit 08e53b3ae265c5927efc420ae68e16e500ac0500 From eae019e10e202c5f3c2c7bfdf280f8d0166ef9ee Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Mon, 24 Jun 2013 11:53:32 +0200 Subject: [PATCH 169/177] update MS2 for 32bits video on macosx --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 08e53b3ae..94b4434c3 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 08e53b3ae265c5927efc420ae68e16e500ac0500 +Subproject commit 94b4434c34d1ae9de5438b9cfa614ee1821eb709 From 398f7905d87446ecd71946a487ea6656bade7cb1 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Tue, 25 Jun 2013 12:16:34 +0200 Subject: [PATCH 170/177] fix linux 32 bits compilation issue --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 94b4434c3..4ccd8ca51 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 94b4434c34d1ae9de5438b9cfa614ee1821eb709 +Subproject commit 4ccd8ca511eb46375699f5efaf8f41b655e0dbb8 From 33036fdedd17b0a25b384ec77f44666243f8ed3a Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Fri, 28 Jun 2013 10:04:55 +0200 Subject: [PATCH 171/177] update README --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index a1fb5bd3d..c4a559418 100644 --- a/README +++ b/README @@ -33,10 +33,10 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. Here is the command line to get these dependencies installed for Ubuntu && Debian - $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev + $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvxl1-dev libgl1-mesa-dev libglew1.6-dev libv4l-dev + for optional library - $ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev + $ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev libsoup2.4-dev libsqlite3-dev libupnp4-dev + Install srtp (optional) for call encryption : $ git clone git://git.linphone.org/srtp.git From 28cbd15c67f67880a10d2f5292301aeaebe918f6 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Mon, 1 Jul 2013 11:26:48 +0200 Subject: [PATCH 172/177] Improve configure scripts (test xxd, force broken srtp). --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index 4ccd8ca51..0c0a3a36d 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 4ccd8ca511eb46375699f5efaf8f41b655e0dbb8 +Subproject commit 0c0a3a36d2352d53053ab8b9255b48b6b05843ae diff --git a/oRTP b/oRTP index 020d921f8..49b16793b 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 020d921f876ed04d434425fb2176642bbe9b3004 +Subproject commit 49b16793b9ef8251a4c42434b57387c6e3c6d251 From 5b8cb6465098730f0de1910e3f009b798d4ff941 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 13:18:13 +0200 Subject: [PATCH 173/177] Regular expression on domain in the account assistant was too strict. --- gtk/setupwizard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index f4374c539..0c15e602b 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -60,7 +60,7 @@ static int all_account_information_entered(GtkWidget *w) { if (gtk_entry_get_text_length(username) > 0 && gtk_entry_get_text_length(domain) > 0 && g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{2,}$", gtk_entry_get_text(username), 0, 0) && - g_regex_match_simple("^(sip:)?([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$", gtk_entry_get_text(domain), 0, 0)) { + g_regex_match_simple("^(sip:)?([a-zA-Z0-9]+([\\.-][a-zA-Z0-9]+)*)$", gtk_entry_get_text(domain), 0, 0)) { return 1; } return 0; From 26c21451b9a01bc535aa4f556723e3bc573333e4 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 13:18:57 +0200 Subject: [PATCH 174/177] Secure code and fix memory leak. --- gtk/setupwizard.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index 0c15e602b..439f9c89f 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -422,11 +422,17 @@ static void linphone_gtk_assistant_prepare(GtkWidget *assistant, GtkWidget *page gchar *username = creator->username + 4; const gchar *needle = "@"; - username = g_strndup(username, (g_strrstr(username, needle) - username)); + const gchar *needle_ptr = g_strrstr(username, needle); + if (needle_ptr != NULL) { + username = g_strndup(username, needle_ptr - username); + } else { + username = g_strdup(username); + } gchar domain[128]; g_snprintf(domain, sizeof(domain), "\"%s\"", creator->domain + 4); LinphoneAuthInfo *info=linphone_auth_info_new(username, username, creator->password, NULL, domain); linphone_core_add_auth_info(linphone_gtk_get_core(),info); + g_free(username); if (linphone_core_add_proxy_config(linphone_gtk_get_core(),cfg)==-1) return; From 6528037a75bf8f50da3bd7afe4d541dc7623d3b0 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 14:58:58 +0200 Subject: [PATCH 175/177] Update gen-gtkfilelist.sh script. --- gen-gtkfilelist.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gen-gtkfilelist.sh b/gen-gtkfilelist.sh index 4036201ba..15a5b8812 100755 --- a/gen-gtkfilelist.sh +++ b/gen-gtkfilelist.sh @@ -7,17 +7,24 @@ echo bin find bin -name *.dll find lib/gtk-2.0 find etc -find share/locale/fr -find share/locale/de -find share/locale/sv find share/locale/cs +find share/locale/de find share/locale/es +find share/locale/fr +find share/locale/he find share/locale/hu find share/locale/it find share/locale/ja +find share/locale/nb +find share/locale/nb_NO find share/locale/nl find share/locale/pl -find share/locale/ru +find share/locale/pt find share/locale/pt_BR +find share/locale/ru +find share/locale/sr +find share/locale/sv +find share/locale/zh +find share/locale/zh_CN +find share/locale/zh_TW find share/themes - From 4218b92e0ac7ef16567ca20dfdf5ede0383c44e8 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 16:47:28 +0200 Subject: [PATCH 176/177] Fix preview window global refs on Android. --- coreapi/linphonecore_jni.cc | 12 ++++++------ mediastreamer2 | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 1dfaf3c3c..2c37903b4 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1932,13 +1932,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVideoWindowId(JNIEnv* ,jlong lc ,jobject obj) { jobject oldWindow = (jobject) linphone_core_get_native_video_window_id((LinphoneCore*)lc); - if (oldWindow != NULL) { - env->DeleteGlobalRef(oldWindow); - } if (obj != NULL) { obj = env->NewGlobalRef(obj); } linphone_core_set_native_video_window_id((LinphoneCore*)lc,(unsigned long)obj); + if (oldWindow != NULL) { + env->DeleteGlobalRef(oldWindow); + } } extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEnv* env @@ -1946,13 +1946,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEn ,jlong lc ,jobject obj) { jobject oldWindow = (jobject) linphone_core_get_native_preview_window_id((LinphoneCore*)lc); - if (oldWindow != NULL) { - env->DeleteGlobalRef(oldWindow); - } if (obj != NULL) { obj = env->NewGlobalRef(obj); } linphone_core_set_native_preview_window_id((LinphoneCore*)lc,(unsigned long)obj); + if (oldWindow != NULL) { + env->DeleteGlobalRef(oldWindow); + } } extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDeviceRotation(JNIEnv* env diff --git a/mediastreamer2 b/mediastreamer2 index 0c0a3a36d..cab341d59 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 0c0a3a36d2352d53053ab8b9255b48b6b05843ae +Subproject commit cab341d59bc4d37f82ddccbfcf1ae2563f9c5028 From 5dbfc1d3e1426b6f805f890c850df73ed97381ad Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 16:48:08 +0200 Subject: [PATCH 177/177] Allow updating camera parameters with linphone_core_update_call() in the StreamsRunning state only. --- coreapi/linphonecore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 34c849595..cffb6b6bb 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2903,7 +2903,7 @@ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const Linpho err = linphone_core_start_update_call(lc, call); }else{ #ifdef VIDEO_ENABLED - if (call->videostream!=NULL){ + if ((call->videostream != NULL) && (call->state == LinphoneCallStreamsRunning)) { video_stream_set_sent_video_size(call->videostream,linphone_core_get_preferred_video_size(lc)); if (call->camera_active && call->videostream->cam!=lc->video_conf.device){ video_stream_change_camera(call->videostream,lc->video_conf.device);