diff -Nru polari-3.32.0/data/appdata/org.gnome.Polari.appdata.xml.in polari-3.34.0/data/appdata/org.gnome.Polari.appdata.xml.in --- polari-3.32.0/data/appdata/org.gnome.Polari.appdata.xml.in 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/data/appdata/org.gnome.Polari.appdata.xml.in 2019-09-09 18:44:11.000000000 +0000 @@ -1,7 +1,7 @@ - org.gnome.Polari + org.gnome.Polari.desktop CC0-1.0 GPL-2.0+ and LGPL-2.1+ Polari @@ -47,7 +47,6 @@ GNOME The GNOME Project - AppMenu HiDpiIcon HighContrast ModernToolkit @@ -56,28 +55,15 @@ polari - +

- This update fixes a regression with predefined networks and - updates translations. -

-
-
- - -

- The first 3.30 stable update fixes network connectivity issues - in flatpak sandboxes and adds support for non-UTF8 charsets in - predefined networks. -

-
-
- - -

- GNOME 3.30 brings with it a brand new Polari release with bug fixes - and performance improvements. + As always, GNOME 3.34 brings with it a brand new Polari release: +

  • +
      Improved connectivity and offline handling
    +
      Better handling of room errors
    +
      Refinement of the user list popover
    +
  • Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/data/appdata/polari-connection.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/data/appdata/polari-connection.png differ Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/data/appdata/polari-connection-properties.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/data/appdata/polari-connection-properties.png differ Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/data/appdata/polari-join-dialog.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/data/appdata/polari-join-dialog.png differ Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/data/appdata/polari-main.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/data/appdata/polari-main.png differ Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/data/appdata/polari-user-list.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/data/appdata/polari-user-list.png differ diff -Nru polari-3.32.0/data/resources/application.css polari-3.34.0/data/resources/application.css --- polari-3.32.0/data/resources/application.css 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/data/resources/application.css 2019-09-09 18:44:11.000000000 +0000 @@ -1,5 +1,7 @@ @define-color polari_dark_bg_color shade(@theme_bg_color, 0.95); +.info { margin-bottom: 1px; } + .polari-room-list .sidebar { border-style: solid; border-color: @borders; @@ -24,6 +26,15 @@ border-width: 0; } +.polari-user-list .placeholder image { + color: alpha(currentColor, 0.3); +} + +.polari-user-list .placeholder label { + font-size: 1.2em; + color: alpha(currentColor, 0.6); +} + .polari-paste-confirmation { border: 0 solid @borders; border-top-width: 1px; diff -Nru polari-3.32.0/data/resources/main-window.ui polari-3.34.0/data/resources/main-window.ui --- polari-3.32.0/data/resources/main-window.ui 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/data/resources/main-window.ui 2019-09-09 18:44:11.000000000 +0000 @@ -208,8 +208,38 @@ - + True + vertical + + + True + False + + + True + + + True + Offline + + + + + + + + True + Go online to chat and receive messages. + + + + + + + 2 + + True @@ -257,6 +287,10 @@ + + 1 + 1 + diff -Nru polari-3.32.0/debian/changelog polari-3.34.0/debian/changelog --- polari-3.32.0/debian/changelog 2019-03-14 00:24:28.000000000 +0000 +++ polari-3.34.0/debian/changelog 2019-09-28 10:40:20.000000000 +0000 @@ -1,3 +1,13 @@ +polari (3.34.0-1) unstable; urgency=medium + + * New upstream release + * Add Revert-main-Setup-GJS-profiler.patch: + - This requires gjs 1.57 which isn't in Debian Unstable yet + * Drop no-longer-needed dh_strip dbgsym migration rule + * Upload to unstable + + -- Jeremy Bicha Sat, 28 Sep 2019 06:40:20 -0400 + polari (3.32.0-1) experimental; urgency=medium * New upstream release diff -Nru polari-3.32.0/debian/patches/Revert-main-Setup-GJS-profiler.patch polari-3.34.0/debian/patches/Revert-main-Setup-GJS-profiler.patch --- polari-3.32.0/debian/patches/Revert-main-Setup-GJS-profiler.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/debian/patches/Revert-main-Setup-GJS-profiler.patch 2019-09-28 10:40:20.000000000 +0000 @@ -0,0 +1,97 @@ +From: Jeremy Bicha +Date: Sat, 28 Sep 2019 06:34:54 -0400 +Subject: Revert "main: Setup GJS profiler when GJS_TRACE_FD is set" + +This reverts commit 6c1cb78f6570e71f01c6397e81fce473f6630916. + +gjs 1.47 isn't in Debian unstable yet +--- + meson.build | 2 +- + src/polari.c | 44 +++++--------------------------------------- + 2 files changed, 6 insertions(+), 40 deletions(-) + +diff --git a/meson.build b/meson.build +index 42f9a67..8409d0c 100644 +--- a/meson.build ++++ b/meson.build +@@ -36,7 +36,7 @@ gio = dependency('gio-2.0', version: '>= 2.43.4') + gtk3 = dependency('gtk+-3.0', version: '>= 3.21.6') + telepathy_glib = dependency('telepathy-glib') + girepository = dependency('gobject-introspection-1.0') +-gjs = dependency('gjs-1.0', version: '>= 1.57.3') ++gjs = dependency('gjs-1.0', version: '>= 1.53.90') + + conf = configuration_data() + +diff --git a/src/polari.c b/src/polari.c +index 4455b2a..e9d2837 100644 +--- a/src/polari.c ++++ b/src/polari.c +@@ -32,32 +32,6 @@ get_js_argv (int argc, const char * const *argv) + return strv; + } + +-static gboolean +-get_profiler_fd (int *fd_p) +-{ +- const char *enabled; +- const char *fd_str; +- int fd; +- +- /* Sysprof uses the "GJS_TRACE_FD=N" environment variable to connect GJS +- * profiler data to the combined Sysprof capture. Since we are in control of +- * the GjsContext, we need to proxy this FD across to the GJS profiler. +- */ +- +- fd_str = g_getenv ("GJS_TRACE_FD"); +- enabled = g_getenv ("GJS_ENABLE_PROFILER"); +- if (fd_str == NULL || enabled == NULL) +- return FALSE; +- +- fd = atoi (fd_str); +- +- if (fd <= 2) +- return FALSE; +- +- *fd_p = fd; +- return TRUE; +-} +- + int + main (int argc, char *argv[]) + { +@@ -66,9 +40,8 @@ main (int argc, char *argv[]) + g_autoptr (GError) error = NULL; + g_autoptr (GjsContext) context = NULL; + g_auto (GStrv) js_argv = NULL; +- GjsProfiler *profiler = NULL; + gboolean debugger = FALSE; +- int status, profiler_fd; ++ int status; + + GOptionEntry entries[] = + { +@@ -109,19 +82,12 @@ main (int argc, char *argv[]) + return 1; + } + +- if (get_profiler_fd (&profiler_fd)) ++ if (!gjs_context_eval (context, src, -1, "
    ", &status, &error)) + { +- profiler = gjs_context_get_profiler (context); ++ g_message ("Execution of start() threw exception: %s", error->message); + +- gjs_profiler_set_fd (profiler, profiler_fd); +- gjs_profiler_start (profiler); ++ return status; + } + +- if (!gjs_context_eval (context, src, -1, "
    ", &status, &error)) +- g_message ("Execution of start() threw exception: %s", error->message); +- +- if (profiler) +- gjs_profiler_stop (profiler); +- +- return status; ++ return 0; + } diff -Nru polari-3.32.0/debian/patches/series polari-3.34.0/debian/patches/series --- polari-3.32.0/debian/patches/series 2019-03-14 00:24:28.000000000 +0000 +++ polari-3.34.0/debian/patches/series 2019-09-28 10:40:20.000000000 +0000 @@ -0,0 +1 @@ +Revert-main-Setup-GJS-profiler.patch diff -Nru polari-3.32.0/debian/rules polari-3.34.0/debian/rules --- polari-3.32.0/debian/rules 2019-03-14 00:24:28.000000000 +0000 +++ polari-3.34.0/debian/rules 2019-09-28 10:40:20.000000000 +0000 @@ -11,8 +11,5 @@ -ldebian/polari/usr/share/polari/gir-1.0 \ /usr/lib/$(DEB_HOST_MULTIARCH)/polari/ /usr/lib/$(DEB_HOST_MULTIARCH)/polari/girepository-1.0/ -override_dh_strip: - dh_strip --dbgsym-migration='polari-dbg (<< 3.20.2-1~)' - override_dh_makeshlibs: dh_makeshlibs -Xlibpolari-1.0.so diff -Nru polari-3.32.0/.eslintrc.json polari-3.34.0/.eslintrc.json --- polari-3.32.0/.eslintrc.json 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/.eslintrc.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "extends": [ - "./lint/eslintrc-gjs.json", - "./lint/eslintrc-polari.json" - ] -} diff -Nru polari-3.32.0/.eslintrc.yml polari-3.34.0/.eslintrc.yml --- polari-3.32.0/.eslintrc.yml 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/.eslintrc.yml 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,3 @@ +extends: + - ./lint/eslintrc-gjs.yml + - ./lint/eslintrc-polari.yml diff -Nru polari-3.32.0/flatpak/gspell-gettext-fix.patch polari-3.34.0/flatpak/gspell-gettext-fix.patch --- polari-3.32.0/flatpak/gspell-gettext-fix.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/gspell-gettext-fix.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,48 @@ +From 8bd7cac01d8cd27a25b48858843cb21e91f3952e Mon Sep 17 00:00:00 2001 +From: Ting-Wei Lan +Date: Wed, 24 Jul 2019 16:38:39 +0800 +Subject: [PATCH] =?UTF-8?q?build:=20Allow=20building=20with=20gettext=20?= + =?UTF-8?q?=E2=89=A5=200.20?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The use of AM_GNU_GETTEXT_VERSION in configure.ac instructs autopoint to +copy po/Makefile.in.in from the exact gettext version. It is fine if the +version of gettext installed on the system has the same minor version +number with the requested version, but it fails if you have a newer +version of gettext because of the mismatch between autoconf macros and +Makefile.in.in. + + *** error: gettext infrastructure mismatch: using a Makefile.in.in + from gettext version 0.19 but the autoconf macros are from gettext + version 0.20 + +Instead of specifying the exact version with AM_GNU_GETTEXT_VERSION, we +can use AM_GNU_GETTEXT_REQUIRE_VERSION to ask autopoint to simply use +the gettext version installed on the system to prevent the mismatch. + +This also bumps the version requirement on gettext to 0.19.6 because +AM_GNU_GETTEXT_REQUIRE_VERSION was added in this version. +--- + configure.ac | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 9135987..189ba95 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -121,7 +121,9 @@ fi + + # i18n + AM_GNU_GETTEXT([external]) +-AM_GNU_GETTEXT_VERSION([0.19.4]) ++# FIXME: Remove AM_GNU_GETTEXT_VERSION once autoreconf supports REQUIRE_VERSION ++AM_GNU_GETTEXT_VERSION([0.19.6]) ++AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6]) + AC_SUBST([GETTEXT_PACKAGE], [gspell-$GSPELL_API_VERSION]) + AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Define to the gettext package name.]) + +-- +2.21.0 + diff -Nru polari-3.32.0/flatpak/gspell-no-code-coverage.patch polari-3.34.0/flatpak/gspell-no-code-coverage.patch --- polari-3.32.0/flatpak/gspell-no-code-coverage.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/gspell-no-code-coverage.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,64 @@ +From a70d50a7781f1a4528e99625c6fe907833dc70cf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 1 Aug 2019 00:00:44 +0200 +Subject: [PATCH] build: Disable code coverage + +--- + Makefile.am | 2 -- + configure.ac | 4 ---- + gspell/Makefile.am | 2 -- + testsuite/Makefile.am | 2 -- + 4 files changed, 10 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index f732667..3ccf942 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,7 +1,5 @@ + SUBDIRS = po gspell gspell-app tests testsuite docs + +-@CODE_COVERAGE_RULES@ +- + AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection --enable-vala + + pkgconfig_DATA = gspell-$(GSPELL_API_VERSION).pc +diff --git a/configure.ac b/configure.ac +index 9135987..22d4198 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -145,10 +145,6 @@ GOBJECT_INTROSPECTION_CHECK([1.42.0]) + AX_REQUIRE_DEFINED([VAPIGEN_CHECK]) + VAPIGEN_CHECK + +-# Code coverage for unit tests +-AX_REQUIRE_DEFINED([AX_CODE_COVERAGE]) +-AX_CODE_COVERAGE +- + # Valgrind check + AX_REQUIRE_DEFINED([AX_VALGRIND_CHECK]) + AX_VALGRIND_CHECK +diff --git a/gspell/Makefile.am b/gspell/Makefile.am +index 88f6577..973c683 100644 +--- a/gspell/Makefile.am ++++ b/gspell/Makefile.am +@@ -1,7 +1,5 @@ + SUBDIRS = resources + +-@CODE_COVERAGE_RULES@ +- + AM_CPPFLAGS = \ + -DDATADIR=\""$(datadir)"\" \ + -DG_LOG_DOMAIN=\"gspell\" \ +diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am +index 4384baf..e628834 100644 +--- a/testsuite/Makefile.am ++++ b/testsuite/Makefile.am +@@ -1,5 +1,3 @@ +-@CODE_COVERAGE_RULES@ +- + @VALGRIND_CHECK_RULES@ + + # https://github.com/dtrebbien/GNOME.supp +-- +2.21.0 + diff -Nru polari-3.32.0/flatpak/org.gnome.Polari.json polari-3.34.0/flatpak/org.gnome.Polari.json --- polari-3.32.0/flatpak/org.gnome.Polari.json 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/flatpak/org.gnome.Polari.json 2019-09-09 18:44:11.000000000 +0000 @@ -21,6 +21,7 @@ "--talk-name=org.freedesktop.Telepathy.AccountManager", "--talk-name=org.freedesktop.Telepathy.ChannelDispatcher", "--talk-name=org.freedesktop.Telepathy.Connection.idle.irc.*", + "--talk-name=org.freedesktop.Telepathy.Client.GnomeShell.*", "--own-name=org.freedesktop.Telepathy.Client.TpGLibRequestAndHandle.*", /* Telepathy names owned by bundled services */ "--own-name=org.freedesktop.Telepathy.AccountManager", @@ -35,9 +36,8 @@ /* log files written by tp-logger outside the sandbox */ "--filesystem=~/.local/share/TpLogger", "--env=TPL_LOG_DIR=.local/share", - /* dconf */ - "--filesystem=xdg-run/dconf", "--filesystem=~/.config/dconf:ro", - "--talk-name=ca.desrt.dconf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf" + /* GSettings migration */ + "--metadata=X-DConf=migrate-path=/org/gnome/polari/" ], "build-options": { "cflags": "-O2 -g" @@ -52,12 +52,24 @@ ], "modules": [ { + "name": "dbus-glib", + "config-opts": ["--disable-static", "--disable-gtk-doc"], + "sources": [ + { + "type": "git", + "url": "https://gitlab.freedesktop.org/dbus/dbus-glib.git", + "tag": "dbus-glib-0.110", + "commit": "ffeb6909967ff79585a7ede85227da94f04ecb01" + } + ] + }, + { "name": "telepathy-glib", "config-opts": ["--disable-static", "--disable-gtk-doc"], "sources": [ { "type": "git", - "url": "https://anongit.freedesktop.org/git/telepathy/telepathy-glib.git", + "url": "https://www.github.com/TelepathyIM/telepathy-glib.git", "tag": "telepathy-glib-0.24.1", "commit": "c834ef1a50a97cbfae7a0d560ff806fd5aa7ffe8" }, @@ -73,9 +85,13 @@ "sources": [ { "type": "git", - "url": "https://anongit.freedesktop.org/git/telepathy/telepathy-mission-control.git", + "url": "https://www.github.com/TelepathyIM/telepathy-mission-control.git", "tag": "telepathy-mission-control-5.16.4", "commit": "74d553d4125224f0a95c9d2843d38861b42eae9f" + }, + { + "type": "patch", + "path": "tp-mc-python3.patch" } ], "cleanup": [ @@ -89,9 +105,13 @@ "sources": [ { "type": "git", - "url": "https://anongit.freedesktop.org/git/telepathy/telepathy-idle.git", + "url": "https://www.github.com/TelepathyIM/telepathy-idle.git", "tag": "telepathy-idle-0.2.0", "commit": "22371837e080c41343600ca773fd987e5310baf2" + }, + { + "type": "patch", + "path": "tp-idle-python3.patch" } ], "cleanup": [ @@ -104,13 +124,21 @@ "sources": [ { "type": "git", - "url": "https://anongit.freedesktop.org/git/telepathy/telepathy-logger.git", + "url": "https://www.github.com/TelepathyIM/telepathy-logger.git", "tag": "telepathy-logger-0.8.2", "commit": "b342c568fe855786151e4f0f96276fc6c3cc7e43" }, { "type": "patch", "path": "tpl-override-basedir.patch" + }, + { + "type": "patch", + "path": "tpl-python3.patch" + }, + { + "type": "patch", + "path": "tpl-drop-intltool.patch" } ], "cleanup": [ @@ -130,6 +158,14 @@ "url": "https://gitlab.gnome.org/GNOME/gspell.git", "tag": "1.8.1", "commit": "ba03499234037861e01ce1e83075e8a32b9790f3" + }, + { + "type": "patch", + "path": "gspell-no-code-coverage.patch" + }, + { + "type": "patch", + "path": "gspell-gettext-fix.patch" } ], "cleanup": [ diff -Nru polari-3.32.0/flatpak/tp-idle-python3.patch polari-3.34.0/flatpak/tp-idle-python3.patch --- polari-3.32.0/flatpak/tp-idle-python3.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/tp-idle-python3.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,142 @@ +From 90b75ca8d5bbf8bf279f832d5801df2eb60b6ac9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 15 Jul 2019 18:51:30 +0200 +Subject: [PATCH] tools: Port to python3 + +--- + configure.ac | 2 +- + tools/glib-ginterface-gen.py | 26 ++++++++++++-------------- + tools/libglibcodegen.py | 5 ++--- + 3 files changed, 15 insertions(+), 18 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 02a5966..dfe9a88 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -105,7 +105,7 @@ AC_CHECK_PROGS([XSLTPROC], [xsltproc]) + AS_IF([test -z "$XSLTPROC"], + [AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])]) + +-AM_PATH_PYTHON([2.3]) ++AM_PATH_PYTHON([3.6]) + + dnl check for a version of python that can run the twisted tests + AC_MSG_CHECKING([for Python with Twisted and IRC protocol support]) +diff --git a/tools/glib-ginterface-gen.py b/tools/glib-ginterface-gen.py +index 8fea5df..2ef7b43 100644 +--- a/tools/glib-ginterface-gen.py ++++ b/tools/glib-ginterface-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # glib-ginterface-gen.py: service-side interface generator + # +@@ -27,7 +27,7 @@ import os.path + import xml.dom.minidom + + from libtpcodegen import file_set_contents +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libglibcodegen import Signature, type_to_gtype, \ + NS_TP, dbus_gutils_wincaps_to_uscore + + +@@ -85,18 +85,18 @@ class Generator(object): + self.allow_havoc = allow_havoc + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__docs.append(s) + + def do_node(self, node): +@@ -733,13 +733,14 @@ class Generator(object): + + def __call__(self): + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=lambda node : node.getAttributeNode('name').nodeValue) + + self.h('#include ') + self.h('#include ') + + if self.have_properties(nodes): + self.h('#include ') ++ self.h('') + + self.h('') + self.h('G_BEGIN_DECLS') +@@ -747,9 +748,6 @@ class Generator(object): + + self.b('#include "%s.h"' % self.basename) + self.b('') +- for header in self.headers: +- self.b('#include %s' % header) +- self.b('') + + for node in nodes: + self.do_node(node) +@@ -768,7 +766,7 @@ class Generator(object): + file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) + + def cmdline_error(): +- print """\ ++ print(''' + usage: + gen-ginterface [OPTIONS] xmlfile Prefix_ + options: +@@ -788,7 +786,7 @@ options: + void symbol (DBusGMethodInvocation *context) + and return some sort of "not implemented" error via + dbus_g_method_return_error (context, ...) +-""" ++''') + sys.exit(1) + + +diff --git a/tools/libglibcodegen.py b/tools/libglibcodegen.py +index 6a9d214..5789609 100644 +--- a/tools/libglibcodegen.py ++++ b/tools/libglibcodegen.py +@@ -23,7 +23,6 @@ please make any changes there. + + from libtpcodegen import NS_TP, \ + Signature, \ +- cmp_by_name, \ + escape_as_identifier, \ + get_by_path, \ + get_descendant_text, \ +@@ -154,7 +153,7 @@ def type_to_gtype(s): + return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False) + elif s[:2] == 'a{': #some arbitrary hash tables + if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'): +- raise Exception, "can't index a hashtable off non-basic type " + s ++ raise Exception("can't index a hashtable off non-basic type " + s) + first = type_to_gtype(s[2]) + second = type_to_gtype(s[3:-1]) + return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False) +@@ -169,4 +168,4 @@ def type_to_gtype(s): + return ("GValueArray *", gtype, "BOXED", True) + + # we just don't know .. +- raise Exception, "don't know the GType for " + s ++ raise Exception("don't know the GType for " + s) +-- +2.21.0 + diff -Nru polari-3.32.0/flatpak/tpl-drop-intltool.patch polari-3.34.0/flatpak/tpl-drop-intltool.patch --- polari-3.32.0/flatpak/tpl-drop-intltool.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/tpl-drop-intltool.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,178 @@ +From cbec33705156cb58fa65fd2c3346c46a605428ba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Wed, 31 Jul 2019 23:24:41 +0200 +Subject: [PATCH] build: Drop intltool + +Any non-ancient version of gettext supports the functionality +previously provided by intltool. +--- + autogen.sh | 1 - + configure.ac | 3 +- + data/Makefile.am | 8 +-- + ....freedesktop.Telepathy.Logger.gschema.xml} | 6 +- + po/Makevars | 68 +++++++++++++++++++ + po/POTFILES.in | 2 +- + 6 files changed, 75 insertions(+), 13 deletions(-) + rename data/{org.freedesktop.Telepathy.Logger.gschema.xml.in => org.freedesktop.Telepathy.Logger.gschema.xml} (79%) + create mode 100644 po/Makevars + +diff --git a/autogen.sh b/autogen.sh +index 58ee191..0d8e27d 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -1,7 +1,6 @@ + #!/bin/sh + set -e + +-intltoolize --force --copy --automake || exit 1 + gtkdocize || exit 1 + + if test -n "$AUTOMAKE"; then +diff --git a/configure.ac b/configure.ac +index 332e8ce..6391678 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -95,7 +95,8 @@ LT_INIT + AM_PROG_MKDIR_P + AM_PATH_GLIB_2_0 + AC_PATH_XTRA +-IT_PROG_INTLTOOL([0.35.0]) ++AM_GNU_GETTEXT_VERSION([0.19.6]) ++AM_GNU_GETTEXT([external]) + AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool) + GLIB_GSETTINGS + GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal` +diff --git a/data/Makefile.am b/data/Makefile.am +index 1e2d780..f6949f7 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -1,8 +1,4 @@ +-gsettings_files = \ +- org.freedesktop.Telepathy.Logger.gschema.xml.in \ +- $(NULL) +-gsettings_SCHEMAS = $(gsettings_files:.xml.in=.xml) +-@INTLTOOL_XML_NOMERGE_RULE@ ++gsettings_SCHEMAS = org.freedesktop.Telepathy.Logger.gschema.xml + @GSETTINGS_RULES@ + + servicefiledir = $(datadir)/dbus-1/services +@@ -23,13 +19,11 @@ clientfile_parts = $(top_srcdir)/data/Logger.Observer.client.in \ + clientfile_DATA = Logger.client + + EXTRA_DIST = \ +- $(gsettings_files) \ + $(clientfile_DATA) \ + $(servicefile_in_files) \ + $(clientfile_parts) + + CLEANFILES = \ +- $(gsettings_SCHEMAS) \ + $(servicefile_DATA) \ + $(clientfile_DATA) + +diff --git a/data/org.freedesktop.Telepathy.Logger.gschema.xml.in b/data/org.freedesktop.Telepathy.Logger.gschema.xml +similarity index 79% +rename from data/org.freedesktop.Telepathy.Logger.gschema.xml.in +rename to data/org.freedesktop.Telepathy.Logger.gschema.xml +index ddb4c15..76d145d 100644 +--- a/data/org.freedesktop.Telepathy.Logger.gschema.xml.in ++++ b/data/org.freedesktop.Telepathy.Logger.gschema.xml +@@ -2,11 +2,11 @@ + + + true +- <_summary>Enable logging +- <_description> ++ Enable logging ++ + Globally enable or disable the Telepathy logger system. Setting it to + "false" will completely disable all logging. +- ++ + + + +diff --git a/po/Makevars b/po/Makevars +new file mode 100644 +index 0000000..30799ce +--- /dev/null ++++ b/po/Makevars +@@ -0,0 +1,68 @@ ++# Makefile variables for PO directory in any package using GNU gettext. ++ ++# Usually the message domain is the same as the package name. ++DOMAIN = $(PACKAGE) ++ ++# These two variables depend on the location of this directory. ++subdir = po ++top_builddir = .. ++ ++# These options get passed to xgettext. ++XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \ ++ --keyword=C_:1c,2 --keyword=NC_:1c,2 \ ++ --keyword=g_dngettext:2,3 --add-comments \ ++ --flag=g_dngettext:2:pass-c-format \ ++ --flag=g_strdup_printf:1:c-format \ ++ --flag=g_string_printf:2:c-format \ ++ --flag=g_string_append_printf:2:c-format \ ++ --flag=g_error_new:3:c-format \ ++ --flag=g_set_error:4:c-format \ ++ --flag=g_markup_printf_escaped:1:c-format \ ++ --flag=g_log:3:c-format \ ++ --flag=g_print:1:c-format \ ++ --flag=g_printerr:1:c-format \ ++ --flag=g_printf:1:c-format \ ++ --flag=g_fprintf:2:c-format \ ++ --flag=g_sprintf:2:c-format \ ++ --flag=g_snprintf:3:c-format ++ ++ ++# This is the copyright holder that gets inserted into the header of the ++# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding ++# package. (Note that the msgstr strings, extracted from the package's ++# sources, belong to the copyright holder of the package.) Translators are ++# expected to transfer the copyright for their translations to this person ++# or entity, or to disclaim their copyright. The empty string stands for ++# the public domain; in this case the translators are expected to disclaim ++# their copyright. ++COPYRIGHT_HOLDER = Translation copyright holder ++# This is the email address or URL to which the translators shall report ++# bugs in the untranslated strings: ++# - Strings which are not entire sentences, see the maintainer guidelines ++# in the GNU gettext documentation, section 'Preparing Strings'. ++# - Strings which use unclear terms or require additional context to be ++# understood. ++# - Strings which make invalid assumptions about notation of date, time or ++# money. ++# - Pluralisation problems. ++# - Incorrect English spelling. ++# - Incorrect formatting. ++# It can be your email address, or a mailing list address where translators ++# can write to without being subscribed, or the URL of a web page through ++# which the translators can contact you. ++MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=polari&keywords=I18N+L10N&component=general ++ ++# This is the list of locale categories, beyond LC_MESSAGES, for which the ++# message catalogs shall be used. It is usually empty. ++EXTRA_LOCALE_CATEGORIES = ++ ++# Ignore the timestamp of the .pot file, as git clones do not have ++# deterministic timestamps, and .po files are updated by translators ++# (only) in GNOME projects. ++PO_DEPENDS_ON_POT = no ++ ++# This tells whether or not to forcibly update $(DOMAIN).pot and ++# regenerate PO files on "make dist". Possible values are "yes" and ++# "no". Set this to no if the POT file and PO files are maintained ++# externally. ++DIST_DEPENDS_ON_UPDATE_PO = no +diff --git a/po/POTFILES.in b/po/POTFILES.in +index 300afaf..69c5b7c 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -1 +1 @@ +-data/org.freedesktop.Telepathy.Logger.gschema.xml.in ++data/org.freedesktop.Telepathy.Logger.gschema.xml +-- +2.21.0 + diff -Nru polari-3.32.0/flatpak/tpl-python3.patch polari-3.34.0/flatpak/tpl-python3.patch --- polari-3.32.0/flatpak/tpl-python3.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/tpl-python3.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,799 @@ +From 2040d911760bae07b57adaf1b6bb06b361224ab9 Mon Sep 17 00:00:00 2001 +From: Guillaume Desmottes +Date: Mon, 23 Sep 2013 16:05:45 +0200 +Subject: [PATCH] sync tools/ with tp-glib master + +Needed to stop using deprecated API in generated code. + +https://bugs.freedesktop.org/show_bug.cgi?id=69797 +--- + tools/c-constants-gen.py | 12 +++--- + tools/glib-client-gen.py | 22 +++++----- + tools/glib-client-marshaller-gen.py | 20 +++++----- + tools/glib-errors-check-gen.py | 62 ++++++++++++++--------------- + tools/glib-errors-str-gen.py | 14 ++----- + tools/glib-ginterface-gen.py | 30 +++++--------- + tools/glib-gtypes-generator.py | 14 +++---- + tools/glib-interfaces-gen.py | 14 +++---- + tools/gobject-foo.py | 2 +- + tools/lcov.am | 3 +- + tools/libglibcodegen.py | 4 +- + tools/libtpcodegen.py | 22 +++++++++- + tools/make-release-mail.py | 4 +- + tools/make-version-script.py | 32 +++++++-------- + tools/telepathy.am | 29 +++++++++----- + tools/with-session-bus.sh | 6 +++ + tools/xincludator.py | 13 ++++-- + 17 files changed, 165 insertions(+), 138 deletions(-) + +diff --git a/tools/c-constants-gen.py b/tools/c-constants-gen.py +index 0c7216a..d0b1fbb 100644 +--- a/tools/c-constants-gen.py ++++ b/tools/c-constants-gen.py +@@ -3,7 +3,7 @@ + from sys import argv, stdout, stderr + import xml.dom.minidom + +-from libtpcodegen import file_set_contents ++from libtpcodegen import file_set_contents, u + from libglibcodegen import NS_TP, get_docstring, \ + get_descendant_text, get_by_path + +@@ -12,7 +12,7 @@ class Generator(object): + self.prefix = prefix + '_' + self.spec = get_by_path(dom, "spec")[0] + +- self.output_base = output_base ++ self.output_base = output_base + self.__header = [] + self.__docs = [] + +@@ -21,14 +21,14 @@ class Generator(object): + self.do_body() + self.do_footer() + +- file_set_contents(self.output_base + '.h', ''.join(self.__header)) +- file_set_contents(self.output_base + '-gtk-doc.h', ''.join(self.__docs)) ++ file_set_contents(self.output_base + '.h', u('').join(self.__header).encode('utf-8')) ++ file_set_contents(self.output_base + '-gtk-doc.h', u('').join(self.__docs).encode('utf-8')) + + def write(self, code): +- self.__header.append(code.encode('utf-8')) ++ self.__header.append(code) + + def d(self, code): +- self.__docs.append(code.encode('utf-8')) ++ self.__docs.append(code) + + # Header + def do_header(self): +diff --git a/tools/glib-client-gen.py b/tools/glib-client-gen.py +index 293aae5..a9df23a 100644 +--- a/tools/glib-client-gen.py ++++ b/tools/glib-client-gen.py +@@ -27,8 +27,8 @@ import os.path + import xml.dom.minidom + from getopt import gnu_getopt + +-from libtpcodegen import file_set_contents +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libtpcodegen import file_set_contents, key_by_name, u ++from libglibcodegen import Signature, type_to_gtype, \ + get_docstring, xml_escape, get_deprecated + + +@@ -74,18 +74,12 @@ class Generator(object): + self.guard = opts.get('--guard', None) + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__docs.append(s) + + def get_iface_quark(self): +@@ -783,9 +777,11 @@ class Generator(object): + self.b(' g_return_val_if_fail (callback != NULL || ' + 'weak_object == NULL, NULL);') + self.b('') ++ self.b(' G_GNUC_BEGIN_IGNORE_DEPRECATIONS') + self.b(' iface = tp_proxy_borrow_interface_by_id (') + self.b(' (TpProxy *) proxy,') + self.b(' interface, &error);') ++ self.b(' G_GNUC_END_IGNORE_DEPRECATIONS') + self.b('') + self.b(' if (iface == NULL)') + self.b(' {') +@@ -1064,8 +1060,10 @@ class Generator(object): + self.b(' g_return_val_if_fail (%s (proxy), FALSE);' + % self.proxy_assert) + self.b('') ++ self.b(' G_GNUC_BEGIN_IGNORE_DEPRECATIONS') + self.b(' iface = tp_proxy_borrow_interface_by_id') + self.b(' ((TpProxy *) proxy, interface, error);') ++ self.b(' G_GNUC_END_IGNORE_DEPRECATIONS') + self.b('') + self.b(' if (iface == NULL)') + self.b(' return FALSE;') +@@ -1187,7 +1185,7 @@ class Generator(object): + self.b('') + + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=key_by_name) + + for node in nodes: + self.do_interface(node) +@@ -1240,9 +1238,9 @@ class Generator(object): + self.h('#endif /* defined (%s) */' % self.guard) + self.h('') + +- file_set_contents(self.basename + '.h', '\n'.join(self.__header)) +- file_set_contents(self.basename + '-body.h', '\n'.join(self.__body)) +- file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) ++ file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) ++ file_set_contents(self.basename + '-body.h', u('\n').join(self.__body).encode('utf-8')) ++ file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + + def types_to_gtypes(types): + return [type_to_gtype(t)[1] for t in types] +diff --git a/tools/glib-client-marshaller-gen.py b/tools/glib-client-marshaller-gen.py +index 5b48b13..e6e911f 100644 +--- a/tools/glib-client-marshaller-gen.py ++++ b/tools/glib-client-marshaller-gen.py +@@ -31,23 +31,23 @@ class Generator(object): + for signal in signals: + self.do_signal(signal) + +- print 'void' +- print '%s_register_dbus_glib_marshallers (void)' % self.prefix +- print '{' ++ print('void') ++ print('%s_register_dbus_glib_marshallers (void)' % self.prefix) ++ print('{') + +- all = self.marshallers.keys() ++ all = list(self.marshallers.keys()) + all.sort() + for marshaller in all: + rhs = self.marshallers[marshaller] + +- print ' dbus_g_object_register_marshaller (' +- print ' g_cclosure_marshal_generic,' +- print ' G_TYPE_NONE, /* return */' ++ print(' dbus_g_object_register_marshaller (') ++ print(' g_cclosure_marshal_generic,') ++ print(' G_TYPE_NONE, /* return */') + for type in rhs: +- print ' G_TYPE_%s,' % type.replace('VOID', 'NONE') +- print ' G_TYPE_INVALID);' ++ print(' G_TYPE_%s,' % type.replace('VOID', 'NONE')) ++ print(' G_TYPE_INVALID);') + +- print '}' ++ print('}') + + + def types_to_gtypes(types): +diff --git a/tools/glib-errors-check-gen.py b/tools/glib-errors-check-gen.py +index 74ae3e3..99d66b5 100644 +--- a/tools/glib-errors-check-gen.py ++++ b/tools/glib-errors-check-gen.py +@@ -12,13 +12,13 @@ class Generator(object): + + def __call__(self): + +- print '{' +- print ' GEnumClass *klass;' +- print ' GEnumValue *value_by_name;' +- print ' GEnumValue *value_by_nick;' +- print '' +- print ' g_type_init ();' +- print ' klass = g_type_class_ref (TP_TYPE_ERROR);' ++ print('{') ++ print(' GEnumClass *klass;') ++ print(' GEnumValue *value_by_name;') ++ print(' GEnumValue *value_by_nick;') ++ print('') ++ print(' g_type_init ();') ++ print(' klass = g_type_class_ref (TP_TYPE_ERROR);') + + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + ns = error.parentNode.getAttribute('namespace') +@@ -28,30 +28,30 @@ class Generator(object): + s = ('TP_ERROR_STR_' + + error.getAttribute('name').replace(' ', '_').replace('.', '_').upper()) + +- print '' +- print ' /* %s.%s */' % (ns, nick) +- print (' value_by_name = g_enum_get_value_by_name (klass, "%s");' +- % enum) +- print (' value_by_nick = g_enum_get_value_by_nick (klass, "%s");' +- % nick) +- print (' g_assert (value_by_name != NULL);') +- print (' g_assert (value_by_nick != NULL);') +- print (' g_assert_cmpint (value_by_name->value, ==, %s);' +- % enum) +- print (' g_assert_cmpint (value_by_nick->value, ==, %s);' +- % enum) +- print (' g_assert_cmpstr (value_by_name->value_name, ==, "%s");' +- % enum) +- print (' g_assert_cmpstr (value_by_nick->value_name, ==, "%s");' +- % enum) +- print (' g_assert_cmpstr (value_by_name->value_nick, ==, "%s");' +- % nick) +- print (' g_assert_cmpstr (value_by_nick->value_nick, ==, "%s");' +- % nick) +- print (' g_assert_cmpstr (%s, ==, TP_ERROR_PREFIX ".%s");' +- % (s, nick)) +- +- print '}' ++ print('') ++ print(' /* %s.%s */' % (ns, nick)) ++ print(' value_by_name = g_enum_get_value_by_name (klass, "%s");' ++ % enum) ++ print(' value_by_nick = g_enum_get_value_by_nick (klass, "%s");' ++ % nick) ++ print(' g_assert (value_by_name != NULL);') ++ print(' g_assert (value_by_nick != NULL);') ++ print(' g_assert_cmpint (value_by_name->value, ==, %s);' ++ % enum) ++ print(' g_assert_cmpint (value_by_nick->value, ==, %s);' ++ % enum) ++ print(' g_assert_cmpstr (value_by_name->value_name, ==, "%s");' ++ % enum) ++ print(' g_assert_cmpstr (value_by_nick->value_name, ==, "%s");' ++ % enum) ++ print(' g_assert_cmpstr (value_by_name->value_nick, ==, "%s");' ++ % nick) ++ print(' g_assert_cmpstr (value_by_nick->value_nick, ==, "%s");' ++ % nick) ++ print(' g_assert_cmpstr (%s, ==, TP_ERROR_PREFIX ".%s");' ++ % (s, nick)) ++ ++ print('}') + + if __name__ == '__main__': + argv = sys.argv[1:] +diff --git a/tools/glib-errors-str-gen.py b/tools/glib-errors-str-gen.py +index ffac1e1..0e18f30 100644 +--- a/tools/glib-errors-str-gen.py ++++ b/tools/glib-errors-str-gen.py +@@ -3,7 +3,7 @@ + import sys + import xml.dom.minidom + +-from libtpcodegen import file_set_contents ++from libtpcodegen import file_set_contents, u + from libglibcodegen import NS_TP, get_docstring, xml_escape + + class Generator(object): +@@ -17,18 +17,12 @@ class Generator(object): + self.__docs = [] + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__docs.append(s) + + def __call__(self): +@@ -72,9 +66,9 @@ class Generator(object): + self.h('') + self.b('') + +- file_set_contents(self.basename + '.h', '\n'.join(self.__header)) +- file_set_contents(self.basename + '.c', '\n'.join(self.__body)) +- file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) ++ file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) ++ file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8')) ++ file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + + if __name__ == '__main__': + argv = sys.argv[1:] +diff --git a/tools/glib-ginterface-gen.py b/tools/glib-ginterface-gen.py +index 5c85a72..299a4c4 100644 +--- a/tools/glib-ginterface-gen.py ++++ b/tools/glib-ginterface-gen.py +@@ -26,8 +26,8 @@ import sys + import os.path + import xml.dom.minidom + +-from libtpcodegen import file_set_contents +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libtpcodegen import file_set_contents, key_by_name, u ++from libglibcodegen import Signature, type_to_gtype, \ + NS_TP, dbus_gutils_wincaps_to_uscore + + +@@ -85,18 +85,12 @@ class Generator(object): + self.allow_havoc = allow_havoc + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') + self.__docs.append(s) + + def do_node(self, node): +@@ -733,13 +727,14 @@ class Generator(object): + + def __call__(self): + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=key_by_name) + + self.h('#include ') + self.h('#include ') + +- if self.have_properties(nodes): +- self.h('#include ') ++ for header in self.headers: ++ self.h('#include %s' % header) ++ self.h('') + + self.h('') + self.h('G_BEGIN_DECLS') +@@ -747,9 +742,6 @@ class Generator(object): + + self.b('#include "%s.h"' % self.basename) + self.b('') +- for header in self.headers: +- self.b('#include %s' % header) +- self.b('') + + for node in nodes: + self.do_node(node) +@@ -763,12 +755,12 @@ class Generator(object): + + self.h('') + self.b('') +- file_set_contents(self.basename + '.h', '\n'.join(self.__header)) +- file_set_contents(self.basename + '.c', '\n'.join(self.__body)) +- file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) ++ file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) ++ file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8')) ++ file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + + def cmdline_error(): +- print """\ ++ print("""\ + usage: + gen-ginterface [OPTIONS] xmlfile Prefix_ + options: +@@ -788,7 +780,7 @@ options: + void symbol (DBusGMethodInvocation *context) + and return some sort of "not implemented" error via + dbus_g_method_return_error (context, ...) +-""" ++""") + sys.exit(1) + + +diff --git a/tools/glib-gtypes-generator.py b/tools/glib-gtypes-generator.py +index 9fada94..2eeb976 100644 +--- a/tools/glib-gtypes-generator.py ++++ b/tools/glib-gtypes-generator.py +@@ -23,7 +23,7 @@ + import sys + import xml.dom.minidom + +-from libtpcodegen import file_set_contents ++from libtpcodegen import file_set_contents, u + from libglibcodegen import escape_as_identifier, \ + get_docstring, \ + NS_TP, \ +@@ -68,13 +68,13 @@ class GTypesGenerator(object): + self.need_other_arrays = {} + + def h(self, code): +- self.header.append(code.encode("utf-8")) ++ self.header.append(code) + + def c(self, code): +- self.body.append(code.encode("utf-8")) ++ self.body.append(code) + + def d(self, code): +- self.docs.append(code.encode('utf-8')) ++ self.docs.append(code) + + def do_mapping_header(self, mapping): + members = mapping.getElementsByTagNameNS(NS_TP, 'member') +@@ -292,9 +292,9 @@ class GTypesGenerator(object): + self.c(' return t;\n') + self.c('}\n\n') + +- file_set_contents(self.output + '.h', ''.join(self.header)) +- file_set_contents(self.output + '-body.h', ''.join(self.body)) +- file_set_contents(self.output + '-gtk-doc.h', ''.join(self.docs)) ++ file_set_contents(self.output + '.h', u('').join(self.header).encode('utf-8')) ++ file_set_contents(self.output + '-body.h', u('').join(self.body).encode('utf-8')) ++ file_set_contents(self.output + '-gtk-doc.h', u('').join(self.docs).encode('utf-8')) + + if __name__ == '__main__': + argv = sys.argv[1:] +diff --git a/tools/glib-interfaces-gen.py b/tools/glib-interfaces-gen.py +index 7dc3801..4ce4767 100644 +--- a/tools/glib-interfaces-gen.py ++++ b/tools/glib-interfaces-gen.py +@@ -3,7 +3,7 @@ + from sys import argv, stdout, stderr + import xml.dom.minidom + +-from libtpcodegen import file_set_contents ++from libtpcodegen import file_set_contents, u + from libglibcodegen import NS_TP, get_docstring, \ + get_descendant_text, get_by_path + +@@ -24,22 +24,22 @@ class Generator(object): + self.spec = get_by_path(dom, "spec")[0] + + def h(self, code): +- self.decls.append(code.encode('utf-8')) ++ self.decls.append(code) + + def c(self, code): +- self.impls.append(code.encode('utf-8')) ++ self.impls.append(code) + + def d(self, code): +- self.docs.append(code.encode('utf-8')) ++ self.docs.append(code) + + def __call__(self): + for f in self.h, self.c: + self.do_header(f) + self.do_body() + +- file_set_contents(self.implfile, ''.join(self.impls)) +- file_set_contents(self.declfile, ''.join(self.decls)) +- file_set_contents(self.docfile, ''.join(self.docs)) ++ file_set_contents(self.implfile, u('').join(self.impls).encode('utf-8')) ++ file_set_contents(self.declfile, u('').join(self.decls).encode('utf-8')) ++ file_set_contents(self.docfile, u('').join(self.docs).encode('utf-8')) + + # Header + def do_header(self, f): +diff --git a/tools/gobject-foo.py b/tools/gobject-foo.py +index 6396196..109c4f4 100644 +--- a/tools/gobject-foo.py ++++ b/tools/gobject-foo.py +@@ -87,4 +87,4 @@ if __name__ == '__main__': + + head, tail = argv + +- print '\n'.join(gobject_header(head, tail, as_interface=as_interface)) ++ print('\n'.join(gobject_header(head, tail, as_interface=as_interface))) +diff --git a/tools/lcov.am b/tools/lcov.am +index 7384f1b..d2d282a 100644 +--- a/tools/lcov.am ++++ b/tools/lcov.am +@@ -7,7 +7,8 @@ lcov-report: + lcov --directory @top_srcdir@ --output-file @top_builddir@/lcov.info \ + --remove @top_builddir@/lcov.info.tmp telepathy-glib-scan.c + rm @top_builddir@/lcov.info.tmp +- $(mkdir_p) @top_builddir@/lcov.html ++ $(MKDIR_P) @top_builddir@/lcov.html ++ echo "Coming soon!" > @top_builddir@/lcov.html/index.html + git_commit=`GIT_DIR=@top_srcdir@/.git git log -1 --pretty=format:%h 2>/dev/null`;\ + genhtml --title "@PACKAGE_STRING@ $$git_commit" \ + --output-directory @top_builddir@/lcov.html lcov.info +diff --git a/tools/libglibcodegen.py b/tools/libglibcodegen.py +index 6a9d214..6cd1a62 100644 +--- a/tools/libglibcodegen.py ++++ b/tools/libglibcodegen.py +@@ -154,7 +154,7 @@ def type_to_gtype(s): + return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False) + elif s[:2] == 'a{': #some arbitrary hash tables + if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'): +- raise Exception, "can't index a hashtable off non-basic type " + s ++ raise Exception("can't index a hashtable off non-basic type " + s) + first = type_to_gtype(s[2]) + second = type_to_gtype(s[3:-1]) + return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False) +@@ -169,4 +169,4 @@ def type_to_gtype(s): + return ("GValueArray *", gtype, "BOXED", True) + + # we just don't know .. +- raise Exception, "don't know the GType for " + s ++ raise Exception("don't know the GType for " + s) +diff --git a/tools/libtpcodegen.py b/tools/libtpcodegen.py +index 7e9eb9a..99de663 100644 +--- a/tools/libtpcodegen.py ++++ b/tools/libtpcodegen.py +@@ -21,6 +21,7 @@ please make any changes there. + # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + import os ++import sys + from string import ascii_letters, digits + + +@@ -28,6 +29,20 @@ NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + + _ASCII_ALNUM = ascii_letters + digits + ++if sys.version_info[0] >= 3: ++ def u(s): ++ """Return s, which must be a str literal with no non-ASCII characters. ++ This is like a more restricted form of the Python 2 u'' syntax. ++ """ ++ return s.encode('ascii').decode('ascii') ++else: ++ def u(s): ++ """Return a Unicode version of s, which must be a str literal ++ (a bytestring) in which each byte is an ASCII character. ++ This is like a more restricted form of the u'' syntax. ++ """ ++ return s.decode('ascii') ++ + def file_set_contents(filename, contents): + try: + os.remove(filename) +@@ -38,13 +53,15 @@ def file_set_contents(filename, contents): + except OSError: + pass + +- open(filename + '.tmp', 'w').write(contents) ++ open(filename + '.tmp', 'wb').write(contents) + os.rename(filename + '.tmp', filename) + + def cmp_by_name(node1, node2): + return cmp(node1.getAttributeNode("name").nodeValue, + node2.getAttributeNode("name").nodeValue) + ++def key_by_name(node): ++ return node.getAttributeNode("name").nodeValue + + def escape_as_identifier(identifier): + """Escape the given string to be a valid D-Bus object path or service +@@ -168,6 +185,9 @@ class _SignatureIter: + self.remaining = string + + def next(self): ++ return self.__next__() ++ ++ def __next__(self): + if self.remaining == '': + raise StopIteration + +diff --git a/tools/make-release-mail.py b/tools/make-release-mail.py +index 786b6dc..b03ebd2 100644 +--- a/tools/make-release-mail.py ++++ b/tools/make-release-mail.py +@@ -62,8 +62,8 @@ def main(package, version, news_path): + print """ + %(release_name)s + +-tarball: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.bz2 +-signature: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.bz2.asc ++tarball: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.gz ++signature: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.gz.asc + git: %(git_url)s/%(package)s + + %(details)s""".strip().rstrip() % { +diff --git a/tools/make-version-script.py b/tools/make-version-script.py +index 0d30aa3..4ced849 100644 +--- a/tools/make-version-script.py ++++ b/tools/make-version-script.py +@@ -63,9 +63,9 @@ def main(abifiles, symbols=None, unreleased_version=None, + + if dpkg: + assert dpkg_first_line is not None +- print dpkg_first_line ++ print(dpkg_first_line) + if dpkg_build_depends_package is not None: +- print "* Build-Depends-Package: %s" % dpkg_build_depends_package ++ print("* Build-Depends-Package: %s" % dpkg_build_depends_package) + + for filename in abifiles: + lines = open(filename, 'r').readlines() +@@ -120,8 +120,8 @@ def main(abifiles, symbols=None, unreleased_version=None, + lines = lines[cut:] + + if gnuld: +- print "%s {" % version +- print " global:" ++ print("%s {" % version) ++ print(" global:") + + for symbol in lines: + symbol = symbol.strip() +@@ -130,7 +130,7 @@ def main(abifiles, symbols=None, unreleased_version=None, + continue + + if gnuld: +- print " %s;" % symbol ++ print(" %s;" % symbol) + elif dpkg: + dpkg_symbols.append('%s@%s %s' % (symbol, version, release)) + +@@ -142,22 +142,22 @@ def main(abifiles, symbols=None, unreleased_version=None, + + if gnuld: + if extends == '-': +- print " local:" +- print " *;" +- print "};" ++ print(" local:") ++ print(" *;") ++ print("};") + else: +- print "} %s;" % extends +- print ++ print("} %s;" % extends) ++ print("") + + if dpkg: + dpkg_symbols.sort() + dpkg_versions.sort() + + for x in dpkg_versions: +- print " %s" % x ++ print(" %s" % x) + + for x in dpkg_symbols: +- print " %s" % x ++ print(" %s" % x) + + if symbol_set is not None: + missing = versioned_symbols - symbol_set +@@ -182,13 +182,13 @@ def main(abifiles, symbols=None, unreleased_version=None, + raise SystemExit(1) + + if gnuld: +- print "%s {" % unreleased_version +- print " global:" ++ print("%s {" % unreleased_version) ++ print(" global:") + + for symbol in unreleased: +- print " %s;" % symbol ++ print(" %s;" % symbol) + +- print "} %s;" % version ++ print("} %s;" % version) + + + if __name__ == '__main__': +diff --git a/tools/telepathy.am b/tools/telepathy.am +index 5e78dfd..20ff0be 100644 +--- a/tools/telepathy.am ++++ b/tools/telepathy.am +@@ -42,14 +42,21 @@ else + @exit 2; + endif + +-%.tar.bz2.asc: %.tar.bz2 ++%.tar.gz.asc: %.tar.gz + $(AM_V_GEN)gpg --detach-sign --armor $@ + +-@PACKAGE@-@VERSION@.tar.bz2: _is-release-check check distcheck ++@PACKAGE@-@VERSION@.tar.gz: ++ $(MAKE) _is-release-check ++ $(MAKE) check ++ $(MAKE) distcheck + +-maintainer-prepare-release: _is-release-check all distcheck release-mail ++maintainer-prepare-release: ++ $(MAKE) _is-release-check ++ $(MAKE) all ++ $(MAKE) distcheck ++ $(MAKE) release-mail + git tag -s @PACKAGE@-@VERSION@ -m @PACKAGE@' '@VERSION@ +- gpg --detach-sign --armor @PACKAGE@-@VERSION@.tar.bz2 ++ gpg --detach-sign --armor @PACKAGE@-@VERSION@.tar.gz + + release-mail: NEWS + $(AM_V_GEN)(python $(top_srcdir)/tools/make-release-mail.py \ +@@ -59,15 +66,17 @@ release-mail: NEWS + maintainer-upload-release: _maintainer-upload-release + + _maintainer-upload-release-check: _is-release-check +- test -f @PACKAGE@-@VERSION@.tar.bz2 +- test -f @PACKAGE@-@VERSION@.tar.bz2.asc +- gpg --verify @PACKAGE@-@VERSION@.tar.bz2.asc ++ test -f @PACKAGE@-@VERSION@.tar.gz ++ test -f @PACKAGE@-@VERSION@.tar.gz.asc ++ gpg --verify @PACKAGE@-@VERSION@.tar.gz.asc + + _maintainer-upload-release: _maintainer-upload-release-check +- rsync -vzP @PACKAGE@-@VERSION@.tar.bz2 telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.bz2 +- rsync -vzP @PACKAGE@-@VERSION@.tar.bz2.asc telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.bz2.asc ++ rsync -vzP @PACKAGE@-@VERSION@.tar.gz telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz ++ rsync -vzP @PACKAGE@-@VERSION@.tar.gz.asc telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz.asc + +-maintainer-make-release: maintainer-prepare-release maintainer-upload-release ++maintainer-make-release: ++ $(MAKE) maintainer-prepare-release ++ $(MAKE) maintainer-upload-release + @echo "Now:" + @echo " • bump the nano-version;" + @echo " • push the branch and tags upstream; and" +diff --git a/tools/with-session-bus.sh b/tools/with-session-bus.sh +index b3038cd..0afa593 100755 +--- a/tools/with-session-bus.sh ++++ b/tools/with-session-bus.sh +@@ -77,6 +77,12 @@ if [ -n "$VERBOSE_TESTS" ]; then + fi + + e=0 ++ ++# These might be non-null when run from e.g. gnome-terminal 3.8, which uses ++# an activatable service for its windows; we don't want to inherit them either ++unset DBUS_STARTER_ADDRESS ++unset DBUS_STARTER_BUS_TYPE ++ + DBUS_SESSION_BUS_ADDRESS="`cat $me-$$.address`" + export DBUS_SESSION_BUS_ADDRESS + DBUS_SESSION_BUS_PID="`cat $me-$$.pid`" +diff --git a/tools/xincludator.py b/tools/xincludator.py +index 12b35f0..aaf015e 100644 +--- a/tools/xincludator.py ++++ b/tools/xincludator.py +@@ -1,17 +1,19 @@ + #!/usr/bin/python3 + ++import sys + from sys import argv, stdout, stderr + import codecs, locale + import os + import xml.dom.minidom + +-stdout = codecs.getwriter('utf-8')(stdout) ++if sys.version_info[0] < 3: ++ stdout = codecs.getwriter('utf-8')(stdout) + + NS_XI = 'http://www.w3.org/2001/XInclude' + + def xincludate(dom, base, dropns = []): + remove_attrs = [] +- for i in xrange(dom.documentElement.attributes.length): ++ for i in range(dom.documentElement.attributes.length): + attr = dom.documentElement.attributes.item(i) + if attr.prefix == 'xmlns': + if attr.localName in dropns: +@@ -34,6 +36,11 @@ if __name__ == '__main__': + argv = argv[1:] + dom = xml.dom.minidom.parse(argv[0]) + xincludate(dom, argv[0]) +- xml = dom.toxml() ++ ++ if sys.version_info[0] >= 3: ++ xml = dom.toxml(encoding=None) ++ else: ++ xml = dom.toxml() ++ + stdout.write(xml) + stdout.write('\n') +-- +2.21.0 + diff -Nru polari-3.32.0/flatpak/tp-mc-python3.patch polari-3.34.0/flatpak/tp-mc-python3.patch --- polari-3.32.0/flatpak/tp-mc-python3.patch 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/flatpak/tp-mc-python3.patch 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,324 @@ +From ed91bdf3d8220ef84ced881829781952339e3487 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 15 Jul 2019 17:50:38 +0200 +Subject: [PATCH] tools: Move to python3 + +Python 2 is barely alive, time to port build tools over to python 3. +--- + configure.ac | 2 +- + tools/glib-blocking-client-gen.py | 6 +++--- + tools/glib-client-gen.py | 18 +++++++++--------- + tools/glib-client-marshaller-gen.py | 22 +++++++++++----------- + tools/glib-ginterface-gen.py | 22 +++++++++++----------- + tools/glib-gtypes-generator.py | 8 ++++---- + tools/glib-signals-marshal-gen.py | 6 +++--- + tools/libglibcodegen.py | 5 ++--- + tools/libtpcodegen.py | 5 ++++- + 9 files changed, 48 insertions(+), 46 deletions(-) + +diff --git a/configure.ac b/configure.ac +index cf9d290f..f405557b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -84,7 +84,7 @@ if test -z "$XSLTPROC"; then + AC_MSG_ERROR([xsltproc (from the libxslt source package) is required]) + fi + +-AM_PATH_PYTHON([2.6]) ++AM_PATH_PYTHON([3.6]) + AC_MSG_CHECKING([for enough Python for the tests]) + mc_want_twisted_tests=no + if $PYTHON -c "import twisted.internet.reactor, dbus.mainloop.glib"\ +diff --git a/tools/glib-blocking-client-gen.py b/tools/glib-blocking-client-gen.py +index c20dcd4a..e38825c1 100644 +--- a/tools/glib-blocking-client-gen.py ++++ b/tools/glib-blocking-client-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # glib-client-gen.py: "I Can't Believe It's Not dbus-binding-tool" + # +@@ -27,7 +27,7 @@ import os.path + import xml.dom.minidom + from getopt import gnu_getopt + +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libglibcodegen import Signature, type_to_gtype, \ + camelcase_to_lower, get_docstring + + +@@ -945,7 +945,7 @@ class Generator(object): + self.b('') + + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=lambda node: node.getAttributeNode('name').nodeValue) + + for node in nodes: + self.do_interface(node) +diff --git a/tools/glib-client-gen.py b/tools/glib-client-gen.py +index f8465a62..6e164b33 100644 +--- a/tools/glib-client-gen.py ++++ b/tools/glib-client-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # glib-client-gen.py: "I Can't Believe It's Not dbus-binding-tool" + # +@@ -28,7 +28,7 @@ import xml.dom.minidom + from getopt import gnu_getopt + + from libtpcodegen import file_set_contents +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libglibcodegen import Signature, type_to_gtype, \ + get_docstring, xml_escape, get_deprecated + + +@@ -74,18 +74,18 @@ class Generator(object): + self.guard = opts.get('--guard', None) + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__docs.append(s) + + def get_iface_quark(self): +@@ -1191,7 +1191,7 @@ class Generator(object): + self.b('') + + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=lambda node: node.getAttributeNode('name').nodeValue) + + for node in nodes: + self.do_interface(node) +diff --git a/tools/glib-client-marshaller-gen.py b/tools/glib-client-marshaller-gen.py +index cb27d638..0ac81932 100644 +--- a/tools/glib-client-marshaller-gen.py ++++ b/tools/glib-client-marshaller-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + import sys + import xml.dom.minidom +@@ -31,23 +31,23 @@ class Generator(object): + for signal in signals: + self.do_signal(signal) + +- print 'void' +- print '%s_register_dbus_glib_marshallers (void)' % self.prefix +- print '{' ++ print('void') ++ print('%s_register_dbus_glib_marshallers (void)' % self.prefix) ++ print('{') + + all = self.marshallers.keys() +- all.sort() ++ sorted(all) + for marshaller in all: + rhs = self.marshallers[marshaller] + +- print ' dbus_g_object_register_marshaller (' +- print ' g_cclosure_marshal_generic,' +- print ' G_TYPE_NONE, /* return */' ++ print(' dbus_g_object_register_marshaller (') ++ print(' g_cclosure_marshal_generic,') ++ print(' G_TYPE_NONE, /* return */') + for type in rhs: +- print ' G_TYPE_%s,' % type.replace('VOID', 'NONE') +- print ' G_TYPE_INVALID);' ++ print(' G_TYPE_%s,' % type.replace('VOID', 'NONE')) ++ print(' G_TYPE_INVALID);') + +- print '}' ++ print('}') + + + def types_to_gtypes(types): +diff --git a/tools/glib-ginterface-gen.py b/tools/glib-ginterface-gen.py +index 6fec0d3c..2421e721 100644 +--- a/tools/glib-ginterface-gen.py ++++ b/tools/glib-ginterface-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # glib-ginterface-gen.py: service-side interface generator + # +@@ -27,7 +27,7 @@ import os.path + import xml.dom.minidom + + from libtpcodegen import file_set_contents +-from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ ++from libglibcodegen import Signature, type_to_gtype, \ + NS_TP, dbus_gutils_wincaps_to_uscore + + +@@ -85,18 +85,18 @@ class Generator(object): + self.allow_havoc = allow_havoc + + def h(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__header.append(s) + + def b(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__body.append(s) + + def d(self, s): +- if isinstance(s, unicode): +- s = s.encode('utf-8') ++ if isinstance(s, bytes): ++ s = str(s, 'ascii') + self.__docs.append(s) + + def do_node(self, node): +@@ -733,7 +733,7 @@ class Generator(object): + + def __call__(self): + nodes = self.dom.getElementsByTagName('node') +- nodes.sort(cmp_by_name) ++ nodes.sort(key=lambda node : node.getAttributeNode('name').nodeValue) + + self.h('#include ') + self.h('#include ') +@@ -766,7 +766,7 @@ class Generator(object): + file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) + + def cmdline_error(): +- print """\ ++ print(''' + usage: + gen-ginterface [OPTIONS] xmlfile Prefix_ + options: +@@ -786,7 +786,7 @@ options: + void symbol (DBusGMethodInvocation *context) + and return some sort of "not implemented" error via + dbus_g_method_return_error (context, ...) +-""" ++''') + sys.exit(1) + + +diff --git a/tools/glib-gtypes-generator.py b/tools/glib-gtypes-generator.py +index 21dfc6aa..27faa1a2 100644 +--- a/tools/glib-gtypes-generator.py ++++ b/tools/glib-gtypes-generator.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Generate GLib GInterfaces from the Telepathy specification. + # The master copy of this program is in the telepathy-glib repository - +@@ -68,13 +68,13 @@ class GTypesGenerator(object): + self.need_other_arrays = {} + + def h(self, code): +- self.header.append(code.encode("utf-8")) ++ self.header.append(code) + + def c(self, code): +- self.body.append(code.encode("utf-8")) ++ self.body.append(code) + + def d(self, code): +- self.docs.append(code.encode('utf-8')) ++ self.docs.append(code) + + def do_mapping_header(self, mapping): + members = mapping.getElementsByTagNameNS(NS_TP, 'member') +diff --git a/tools/glib-signals-marshal-gen.py b/tools/glib-signals-marshal-gen.py +index 0d02c134..6746f0e4 100644 +--- a/tools/glib-signals-marshal-gen.py ++++ b/tools/glib-signals-marshal-gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + import sys + import xml.dom.minidom +@@ -42,11 +42,11 @@ class Generator(object): + self.do_signal(signal) + + all = self.marshallers.keys() +- all.sort() ++ sorted(all) + for marshaller in all: + rhs = self.marshallers[marshaller] + if not marshaller.startswith('g_cclosure'): +- print 'VOID:' + ','.join(rhs) ++ print('VOID:' + ','.join(rhs)) + + if __name__ == '__main__': + argv = sys.argv[1:] +diff --git a/tools/libglibcodegen.py b/tools/libglibcodegen.py +index 6a9d2148..57896099 100644 +--- a/tools/libglibcodegen.py ++++ b/tools/libglibcodegen.py +@@ -23,7 +23,6 @@ please make any changes there. + + from libtpcodegen import NS_TP, \ + Signature, \ +- cmp_by_name, \ + escape_as_identifier, \ + get_by_path, \ + get_descendant_text, \ +@@ -154,7 +153,7 @@ def type_to_gtype(s): + return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False) + elif s[:2] == 'a{': #some arbitrary hash tables + if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'): +- raise Exception, "can't index a hashtable off non-basic type " + s ++ raise Exception("can't index a hashtable off non-basic type " + s) + first = type_to_gtype(s[2]) + second = type_to_gtype(s[3:-1]) + return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False) +@@ -169,4 +168,4 @@ def type_to_gtype(s): + return ("GValueArray *", gtype, "BOXED", True) + + # we just don't know .. +- raise Exception, "don't know the GType for " + s ++ raise Exception("don't know the GType for " + s) +diff --git a/tools/libtpcodegen.py b/tools/libtpcodegen.py +index 7e9eb9a5..8e052c28 100644 +--- a/tools/libtpcodegen.py ++++ b/tools/libtpcodegen.py +@@ -167,7 +167,10 @@ class _SignatureIter: + def __init__(self, string): + self.remaining = string + +- def next(self): ++ def __iter__(self): ++ self ++ ++ def __next__(self): + if self.remaining == '': + raise StopIteration + +-- +2.21.0 + diff -Nru polari-3.32.0/help/el/el.po polari-3.34.0/help/el/el.po --- polari-3.32.0/help/el/el.po 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/help/el/el.po 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,490 @@ +# Greek translation for polari. +# Copyright (C) 2017 polari's COPYRIGHT HOLDER +# This file is distributed under the same license as the polari package. +# Γιάννης Κουτσούκος , 2017. +# Efstathios Iosifidis , 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: polari master\n" +"POT-Creation-Date: 2018-03-11 09:30+0000\n" +"PO-Revision-Date: 2019-09-03 01:56+0300\n" +"Last-Translator: Efstathios Iosifidis \n" +"Language-Team: Ελληνικά <>\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"Ελληνική μεταφραστική ομάδα GNOME , 2017\n" +"Γιάννης Κουτσούκος ,2017\n" +"Ευστάθιος Ιωσηφίδης ,2019" + +#. (itstool) path: info/title +#: C/index.page:7 +#| msgid "Polari" +msgctxt "text" +msgid "Polari" +msgstr "Polari" + +#. (itstool) path: credit/name +#: C/index.page:12 C/introduction.page:12 C/network-connect.page:11 +msgid "Ankit R Gadiya" +msgstr "Ankit R Gadiya" + +#. (itstool) path: credit/years +#: C/index.page:14 C/introduction.page:14 C/network-connect.page:13 +msgid "2016" +msgstr "2016" + +#. (itstool) path: credit/name +#: C/index.page:18 C/introduction.page:18 C/irc-commands.page:15 +#: C/irc-join-room.page:13 C/irc-nick-password.page:17 +#: C/irc-start-conversation.page:16 C/network-connect.page:16 +#: C/overview.page:13 C/sharing.page:12 +msgid "Paul Cutler" +msgstr "Paul Cutler" + +#. (itstool) path: license/p +#: C/index.page:23 C/irc-commands.page:19 C/irc-join-room.page:17 +#: C/irc-nick-password.page:21 C/irc-start-conversation.page:20 +#: C/overview.page:17 C/sharing.page:17 +#| msgid "Creative Commons Attribution-ShareAlike 4.0 International" +msgid "Creative Commons Share Alike 4.0" +msgstr "Άδεια Creative Commons Share Alike 4.0" + +#. (itstool) path: info/desc +#: C/index.page:27 +msgid "" +"Polari is a clean, simple, and minimal Internet Relay Chat (IRC) " +"client which integrates with the GNOME desktop. Learn more about Polari." +msgstr "" +"Η εφαρμογή Polari είναι ένας καθαρός, απλός και μινιμαλιστικός " +"πελάτης Internet Relay Chat (IRC) που ενσωματώνεται στην επιφάνεια εργασίας " +"του GNOME. Μάθετε περισσότερα για την εφαρμογή Polari." + +#. (itstool) path: page/title +#: C/index.page:32 +msgid "<_:media-1/> Polari" +msgstr "<_:media-1/> Polari" + +#. (itstool) path: section/title +#: C/index.page:38 +msgid "Connecting to IRC Servers and Chat Rooms" +msgstr "Σύνδεση σε διακομιστές IRC και δωμάτια συνομιλίας" + +#. (itstool) path: section/title +#: C/index.page:42 +msgid "Conversations" +msgstr "Συνομιλίες" + +#. (itstool) path: credit/years +#: C/introduction.page:20 C/network-connect.page:18 C/sharing.page:14 +msgid "2017" +msgstr "2017" + +#. (itstool) path: info/desc +#: C/introduction.page:25 +msgid "An introduction to Polari, a clean, minimal IRC client." +msgstr "" +"Μια εισαγωγή στην εφαρμογή Polari, ένα καθαρός, μινιμαλιστικός " +"πελάτης IRC" + +#. (itstool) path: page/title +#: C/introduction.page:29 +msgid "Introduction" +msgstr "Εισαγωγή" + +#. (itstool) path: page/p +#: C/introduction.page:31 +msgid "" +"Polari is a simple Internet Relay Chat (IRC) client which " +"integrates with the GNOME desktop and enables you to chat with people around " +"the world through large chatrooms or private messaging." +msgstr "" + +#. (itstool) path: page/media +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: C/introduction.page:37 +msgctxt "_" +msgid "" +"external ref='images/polari-screenshot.png' " +"md5='6b752736dd41aa5cddf337bb3b4be452'" +msgstr "" +"external ref='images/polari-screenshot.png' " +"md5='6b752736dd41aa5cddf337bb3b4be452'" + +#. (itstool) path: media/p +#: C/introduction.page:38 +msgid "Polari IRC Client" +msgstr "Πελάτης IRC Polari" + +#. (itstool) path: info/desc +#: C/irc-commands.page:8 +msgid "The supported IRC commands." +msgstr "Οι υποστηριζόμενες εντολές IRC." + +#. (itstool) path: credit/name +#: C/irc-commands.page:11 C/irc-nick-password.page:13 +#: C/irc-start-conversation.page:12 +msgid "Milo Casagrande" +msgstr "Milo Casagrande" + +#. (itstool) path: page/title +#: C/irc-commands.page:23 +msgid "Supported IRC commands" +msgstr "Υποστηριζόμενες εντολές IRC" + +#. (itstool) path: page/p +#: C/irc-commands.page:24 +msgid "" +"To see the list of the supported IRC commands, in a chat room type /" +"help and press Enter." +msgstr "" +"Για να δείτε τη λίστα των υποστηριζόμενων εντολών του IRC σε ένα δωμάτιο " +"συνομιλίας, πληκτρολογήστε /help και πατήστε Enter." + +#. (itstool) path: note/p +#: C/irc-commands.page:29 +msgid "" +"All commands available will be listed and you can type /help " +"commandname to get additional help with a specific command." +msgstr "" + +#. (itstool) path: info/desc +#: C/irc-join-room.page:10 +msgid "Join an IRC channel." +msgstr "Είσοδος σε κανάλι IRC" + +#. (itstool) path: page/title +#: C/irc-join-room.page:21 +msgid "Join an IRC chat room" +msgstr "Είσοδος σε δωμάτιο συνομιλίας IRC" + +#. (itstool) path: page/p +#: C/irc-join-room.page:23 +msgid "" +"You can join IRC chat rooms (also known as IRC channels) on any IRC network " +"you are connected to. To connect to an IRC network, see ." +msgstr "" + +#. (itstool) path: page/p +#: C/irc-join-room.page:27 +msgid "To join an IRC chat room:" +msgstr "" + +#. (itstool) path: item/p +#: C/irc-join-room.page:31 +msgid "Press + in the top-left corner." +msgstr "" + +#. (itstool) path: item/p +#: C/irc-join-room.page:34 +msgid "" +"Enter the name of the chat room you would like to join or select the chat " +"room(s) from the list and then press Join. You can select " +"multiple rooms from the list to join." +msgstr "" + +#. (itstool) path: item/p +#: C/irc-join-room.page:39 +msgid "Click the Join button to connect to the chat room or rooms." +msgstr "" + +#. (itstool) path: info/desc +#: C/irc-nick-password.page:10 +msgid "Protect your nickname to prevent other IRC users from using it." +msgstr "" + +#. (itstool) path: page/title +#: C/irc-nick-password.page:25 +msgid "Use a nickname password on IRC" +msgstr "" + +#. (itstool) path: page/p +#: C/irc-nick-password.page:27 +msgid "" +"On some IRC networks, you can register your nickname with a service called " +"NickServ. By sending special messages to NickServ, you can set your password " +"and identify yourself. Some IRC chat rooms may not allow you to join without " +"a registered nickname." +msgstr "" + +#. (itstool) path: page/p +#: C/irc-nick-password.page:32 +msgid "" +"Polari does not currently support nickname registration " +"automatically. Each IRC network handles registering a specific nickname " +"differently and you will need to check with the IRC network on how to " +"register your nickname. After you have registered a nickname, you will need " +"to message NickServ to identify yourself after connecting to the IRC Network " +"with the following command:" +msgstr "" + +#. (itstool) path: item/p +#: C/irc-nick-password.page:40 +msgid "/msg NickServ identify username password" +msgstr "" + +#. (itstool) path: item/p +#: C/irc-nick-password.page:43 +msgid "Press Enter" +msgstr "Πατήστε Enter" + +#. (itstool) path: note/p +#: C/irc-nick-password.page:47 +msgid "" +"Use the username and password you registered with the IRC network with this " +"command." +msgstr "" + +#. (itstool) path: page/p +#: C/irc-nick-password.page:52 +msgid "" +"Polari will remember your username and password and the next time " +"you connect to the IRC network Polari will automatically register " +"you with the Nickserv service." +msgstr "" + +#. (itstool) path: note/p +#: C/irc-nick-password.page:58 +msgid "" +"These instructions only allow you to use a password-protected nickname on " +"certain IRC networks. It is not currently possible to register an IRC " +"nickname or change your nickname password using Polari." +msgstr "" + +#. (itstool) path: info/desc +#: C/irc-start-conversation.page:9 +msgid "Start a conversation with an individual in IRC." +msgstr "" + +#. (itstool) path: page/title +#: C/irc-start-conversation.page:24 +msgid "Chat with somebody on IRC" +msgstr "Συνομιλήστε με κάποιον στο IRC" + +#. (itstool) path: page/p +#: C/irc-start-conversation.page:26 +msgid "" +"You can hold private conversations with other IRC users, outside of the " +"public IRC chat rooms. To start a conversation with another IRC user:" +msgstr "" +"Μπορείτε να πραγματοποιήσετε ιδιωτικές συνομιλίες με άλλους χρήστες του IRC " +"εκτός των δημόσιων δωματίων του IRC. Για να ξεκινήσετε μια συνομιλία με έναν " +"άλλο χρήστη IRC:" + +#. (itstool) path: item/p +#: C/irc-start-conversation.page:31 +msgid "" +"Click on the name of the person in the channel you would like to start a " +"chat with." +msgstr "" + +#. (itstool) path: item/p +#: C/irc-start-conversation.page:36 +msgid "" +"Information about the user, including their name and the last time they were " +"active in the channel, will appear. Click Message to start a " +"private conversation." +msgstr "" + +#. (itstool) path: page/p +#: C/irc-start-conversation.page:43 +msgid "Another option to start a conversation with a user:" +msgstr "" + +#. (itstool) path: item/p +#: C/irc-start-conversation.page:47 +msgid "" +"In the upper-right hand corner of Polari a number is displayed " +"that shows the total number of users in the chat room. Click on the number." +msgstr "" + +#. (itstool) path: item/p +#: C/irc-start-conversation.page:53 +msgid "" +"Select the name of the user you want to message. Information about the user, " +"including their name and the last time they were active in the channel, will " +"appear." +msgstr "" + +#. (itstool) path: item/p +#: C/irc-start-conversation.page:58 +msgid "Press Message to start a private conversation." +msgstr "" + +#. (itstool) path: page/p +#: C/irc-start-conversation.page:62 +msgid "" +"A new private conversation will start and a chat room will be created. The " +"chat room will be shown in the left sidebar of Polari with the " +"name of the person you are chatting with." +msgstr "" + +#. (itstool) path: p/link +#: C/legal.xml:5 +msgid "Creative Commons Attribution-ShareAlike 4.0 International" +msgstr "Άδεια Creative Commons Attribution-ShareAlike 4.0 International" + +#. (itstool) path: license/p +#: C/legal.xml:4 +msgid "This work is licensed under a <_:link-1/> license." +msgstr " Aυτό το έργο έχει αδειοδοτηθεί με <_:link-1/> αδεία" + +#. (itstool) path: license/p +#: C/legal.xml:8 +msgid "" +"As a special exception, the copyright holders give you permission to copy, " +"modify, and distribute the example code contained in this documentation " +"under the terms of your choosing, without restriction." +msgstr "" +"Ως ειδική εξαίρεση, οι κάτοχοι των πνευματικών δικαιωμάτων σας δίνουν την " +"άδεια να αντιγράψετε, να τροποποιήσετε και να διανείμετε το παράδειγμα " +"κωδικά που περιέχεται σε αυτήν την τεκμηρίωση σύμφωνα με τους όρους της " +"επιλογής σας, χωρίς περιορισμό." + +#. (itstool) path: info/desc +#: C/network-connect.page:21 +msgid "How to connect to an IRC network." +msgstr "Πως να συνδεθείτε σε ένα δίκτυο IRC." + +#. (itstool) path: page/title +#: C/network-connect.page:24 +msgid "Connect to an IRC Network" +msgstr "Σύνδεση σε δίκτυο IRC" + +#. (itstool) path: page/p +#: C/network-connect.page:26 +msgid "" +"The first time you start Polari you will be asked to join a " +"network. Polari comes with over fifty IRC networks configured for " +"you. Choose the IRC Network you would like to connect to and click on it." +msgstr "" + +#. (itstool) path: page/p +#: C/network-connect.page:32 +msgid "" +"If you do not see the IRC network you would like to join, you can also enter " +"the details of the IRC network. Click the Custom Network button " +"and enter the Server Address. You can optionally enter the name " +"of the network as you want it to appear in the list of networks in the " +"Network Name field." +msgstr "" + +#. (itstool) path: page/p +#: C/network-connect.page:39 +msgid "" +"After you have connected to an IRC Network, you can also connect to other " +"IRC Networks." +msgstr "" + +#. (itstool) path: item/p +#: C/network-connect.page:45 +msgid "Press on the + in the top left corner." +msgstr "" + +#. (itstool) path: item/p +#: C/network-connect.page:48 +msgid "" +"Press Add Network and select the IRC network from the list you " +"would like to join or press Custom Network and enter the details." +msgstr "" + +#. (itstool) path: item/p +#: C/network-connect.page:53 +msgid "" +"Enter the name of the chat room you would like to join or select the chat " +"room(s) from the list and then press Join." +msgstr "" + +#. (itstool) path: item/p +#: C/network-connect.page:58 +msgid "Press the Join button to connect to the room or rooms." +msgstr "" + +#. (itstool) path: note/p +#: C/network-connect.page:62 +msgid "" +"If the IRC network you are connecting to uses a custom port, you can append " +"it to the name of the network with a colon and the port number, for example " +"irc.example.org:12345" +msgstr "" + +#. (itstool) path: info/desc +#: C/overview.page:9 +msgid "What IRC is and how you can use it." +msgstr "" + +#. (itstool) path: page/title +#: C/overview.page:21 +msgid "Overview of Internet Relay Chat" +msgstr "" + +#. (itstool) path: page/p +#: C/overview.page:23 +msgid "" +"Internet Relay Chat (IRC) is a means of chatting with people online using " +"public and private chatrooms. IRC networks, such as Freenode or Gimpnet, are " +"unique and host their own servers with its own channels. IRC uses a client / " +"server model where you can use a client, such as Polari, to connect to an " +"IRC server and join a channel. Channels, also known as chat rooms, are where " +"users meet online to chat." +msgstr "" + +#. (itstool) path: info/desc +#: C/sharing.page:9 +msgid "How to easily share multiple lines of text or images." +msgstr "" + +#. (itstool) path: page/title +#: C/sharing.page:22 +msgid "Share text or images" +msgstr "Κοινή χρήση κειμένου ή εικόνων" + +#. (itstool) path: page/p +#: C/sharing.page:24 +msgid "" +"It is considered rude in IRC to copy and paste more than five lines of text. " +"If you attempt to paste more than five lines of text, Polari will " +"ask you if you would like the text to automatically be pasted to a public " +"paste service. If you agree to paste the text, press the Paste " +"button as seen in the following screenshot. After pressing Paste, " +"the link to the paste website will be automatically entered into the chat " +"box. Press Enter to share the link with the chat room." +msgstr "" + +#. (itstool) path: page/media +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: C/sharing.page:32 +msgctxt "_" +msgid "" +"external ref='images/polari-paste.png' md5='4214a5e96ebc973942e88a29874fb77e'" +msgstr "" +"external ref='images/polari-paste.png' md5='4214a5e96ebc973942e88a29874fb77e'" + +#. (itstool) path: page/p +#: C/sharing.page:34 +msgid "" +"To share an image file, drag and drop the image from Files into " +"the chat box in Polari or drag and drop a file from Files to Polari. You will be asked if you wish to upload the image " +"to a public paste service. If you agree to upload the image, press the " +"Paste button as seen in the following screenshot. After pressing " +"Paste, the link to the where the image was uploaded will be " +"automatically entered into the chat box. Press Enter to share the " +"link with the chat room." +msgstr "" diff -Nru polari-3.32.0/help/LINGUAS polari-3.34.0/help/LINGUAS --- polari-3.32.0/help/LINGUAS 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/help/LINGUAS 2019-09-09 18:44:11.000000000 +0000 @@ -1,5 +1,6 @@ cs de +el es fr hu diff -Nru polari-3.32.0/lint/eslintrc-gjs.json polari-3.34.0/lint/eslintrc-gjs.json --- polari-3.32.0/lint/eslintrc-gjs.json 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/lint/eslintrc-gjs.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -{ - "env": { - "es6": true - }, - "extends": "eslint:recommended", - "rules": { - "array-bracket-newline": [ - "error", - "consistent" - ], - "array-bracket-spacing": [ - "error", - "never" - ], - "arrow-spacing": "error", - "brace-style": "error", - "comma-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "indent": [ - "error", - 4, - { - "ignoredNodes": [ - "CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child" - ], - "MemberExpression": "off" - } - ], - "key-spacing": [ - "error", - { - "beforeColon": false, - "afterColon": true - } - ], - "keyword-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "linebreak-style": [ - "error", - "unix" - ], - "no-empty": [ - "error", - { - "allowEmptyCatch": true - } - ], - "no-implicit-coercion": [ - "error", - { - "allow": ["!!"] - } - ], - "no-restricted-properties": [ - "error", - { - "object": "Lang", - "property": "bind", - "message": "Use arrow notation or Function.prototype.bind()" - }, - { - "object": "Lang", - "property": "Class", - "message": "Use ES6 classes" - } - ], - "nonblock-statement-body-position": [ - "error", - "below" - ], - "object-curly-newline": [ - "error", - { - "consistent": true - } - ], - "object-curly-spacing": "error", - "prefer-template": "error", - "quotes": [ - "error", - "single", - { - "avoidEscape": true - } - ], - "semi": [ - "error", - "always" - ], - "semi-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "space-before-blocks": "error", - "space-infix-ops": [ - "error", - { - "int32Hint": false - } - ] - }, - "globals": { - "ARGV": false, - "Debugger": false, - "GIRepositoryGType": false, - "imports": false, - "Intl": false, - "log": false, - "logError": false, - "print": false, - "printerr": false, - "window": false - }, - "parserOptions": { - "ecmaVersion": 2017 - } -} diff -Nru polari-3.32.0/lint/eslintrc-gjs.yml polari-3.34.0/lint/eslintrc-gjs.yml --- polari-3.32.0/lint/eslintrc-gjs.yml 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/lint/eslintrc-gjs.yml 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,228 @@ +--- +env: + es6: true +extends: 'eslint:recommended' +rules: + array-bracket-newline: + - error + - consistent + array-bracket-spacing: + - error + - never + array-callback-return: error + arrow-parens: + - error + - as-needed + arrow-spacing: error + block-scoped-var: error + block-spacing: error + brace-style: error + # Waiting for this to have matured a bit in eslint + # camelcase: + # - error + # - properties: never + # allow: [^vfunc_, ^on_, _instance_init] + comma-dangle: + - error + - always-multiline + comma-spacing: + - error + - before: false + after: true + comma-style: + - error + - last + computed-property-spacing: error + curly: + - error + - multi-or-nest + - consistent + dot-location: + - error + - property + eol-last: error + eqeqeq: error + func-call-spacing: error + func-name-matching: error + func-style: + - error + - declaration + - allowArrowFunctions: true + indent: + - error + - 4 + - ignoredNodes: + # Allow not indenting the body of GObject.registerClass, since in the + # future it's intended to be a decorator + - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child' + # Allow dedenting chained member expressions + MemberExpression: 'off' + key-spacing: + - error + - beforeColon: false + afterColon: true + keyword-spacing: + - error + - before: true + after: true + linebreak-style: + - error + - unix + lines-between-class-members: error + max-nested-callbacks: error + max-statements-per-line: error + new-parens: error + no-array-constructor: error + no-await-in-loop: error + no-caller: error + no-constant-condition: + - error + - checkLoops: false + no-div-regex: error + no-empty: + - error + - allowEmptyCatch: true + no-extra-bind: error + no-extra-parens: + - error + - all + - conditionalAssign: false + returnAssign: false + no-implicit-coercion: + - error + - allow: + - '!!' + no-invalid-this: error + no-iterator: error + no-label-var: error + no-lonely-if: error + no-loop-func: error + no-nested-ternary: error + no-new-object: error + no-new-wrappers: error + no-octal-escape: error + no-proto: error + no-prototype-builtins: 'off' + no-restricted-properties: + - error + - object: Lang + property: bind + message: Use arrow notation or Function.prototype.bind() + - object: Lang + property: Class + message: Use ES6 classes + - object: imports + property: mainloop + message: Use GLib main loops and timeouts + no-restricted-syntax: + - error + - selector: >- + MethodDefinition[key.name="_init"] > + FunctionExpression[params.length=1] > + BlockStatement[body.length=1] + CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] > + Identifier:first-child + message: _init() that only calls super._init() is unnecessary + - selector: >- + MethodDefinition[key.name="_init"] > + FunctionExpression[params.length=0] > + BlockStatement[body.length=1] + CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"] + message: _init() that only calls super._init() is unnecessary + no-return-assign: error + no-return-await: error + no-self-compare: error + no-shadow: error + no-shadow-restricted-names: error + no-spaced-func: error + no-tabs: error + no-template-curly-in-string: error + no-throw-literal: error + no-trailing-spaces: error + no-undef-init: error + no-unneeded-ternary: error + no-unused-expressions: error + no-unused-vars: + - error + # Vars use a suffix _ instead of a prefix because of file-scope private vars + - varsIgnorePattern: (^unused|_$) + argsIgnorePattern: ^(unused|_) + no-useless-call: error + no-useless-computed-key: error + no-useless-concat: error + no-useless-constructor: error + no-useless-rename: error + no-useless-return: error + no-whitespace-before-property: error + no-with: error + nonblock-statement-body-position: + - error + - below + object-curly-newline: + - error + - consistent: true + object-curly-spacing: error + object-shorthand: error + operator-assignment: error + operator-linebreak: error + # These may be a bit controversial, we can try them out and enable them later + # prefer-const: error + # prefer-destructuring: error + prefer-numeric-literals: error + prefer-promise-reject-errors: error + prefer-rest-params: error + prefer-spread: error + prefer-template: error + quotes: + - error + - single + - avoidEscape: true + require-await: error + rest-spread-spacing: error + semi: + - error + - always + semi-spacing: + - error + - before: false + after: true + semi-style: error + space-before-blocks: error + space-before-function-paren: + - error + - named: never + # for `function ()` and `async () =>`, preserve space around keywords + anonymous: always + asyncArrow: always + space-in-parens: error + space-infix-ops: + - error + - int32Hint: false + space-unary-ops: error + spaced-comment: error + switch-colon-spacing: error + symbol-description: error + template-curly-spacing: error + template-tag-spacing: error + unicode-bom: error + valid-jsdoc: + - error + - requireReturn: false + wrap-iife: + - error + - inside + yield-star-spacing: error + yoda: error +globals: + ARGV: readonly + Debugger: readonly + GIRepositoryGType: readonly + imports: readonly + Intl: readonly + log: readonly + logError: readonly + print: readonly + printerr: readonly + window: readonly +parserOptions: + ecmaVersion: 2017 diff -Nru polari-3.32.0/lint/eslintrc-legacy.json polari-3.34.0/lint/eslintrc-legacy.json --- polari-3.32.0/lint/eslintrc-legacy.json 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/lint/eslintrc-legacy.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -{ - "rules": { - "indent": [ - "error", - 4, - { - "ignoredNodes": [ - "CallExpression > ArrowFunctionExpression", - "CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child" - ], - "CallExpression": { "arguments": "first" }, - "MemberExpression": "off" - } - ] - } -} diff -Nru polari-3.32.0/lint/eslintrc-polari.json polari-3.34.0/lint/eslintrc-polari.json --- polari-3.32.0/lint/eslintrc-polari.json 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/lint/eslintrc-polari.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -{ - "rules": { - "camelcase": [ - "error", - { - "properties": "never", - "allow": ["^vfunc_"] - } - ], - "no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "_$" - } - ], - "object-curly-spacing": [ - "error", - "always" - ], - "prefer-arrow-callback": "error" - }, - "globals": { - "debug": false, - "info": false, - "warning": false, - "critical": false, - "error": false, - "pkg": false, - "_": false, - "C_": false, - "N_": false, - "ngettext": false - } -} diff -Nru polari-3.32.0/lint/eslintrc-polari.yml polari-3.34.0/lint/eslintrc-polari.yml --- polari-3.32.0/lint/eslintrc-polari.yml 1970-01-01 00:00:00.000000000 +0000 +++ polari-3.34.0/lint/eslintrc-polari.yml 2019-09-09 18:44:11.000000000 +0000 @@ -0,0 +1,20 @@ +rules: + camelcase: + - error + - properties: never + allow: [^vfunc_, ^on_] + object-curly-spacing: + - error + - always + prefer-arrow-callback: error +globals: + debug: readonly + info: readonly + warning: readonly + critical: readonly + error: readonly + pkg: readonly + _: readonly + C_: readonly + N_: readonly + ngettext: readonly diff -Nru polari-3.32.0/lint/generate-report.sh polari-3.34.0/lint/generate-report.sh --- polari-3.32.0/lint/generate-report.sh 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/lint/generate-report.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -#!/bin/sh -SEP=`printf '\t'` -OUTPUT=/dev/stderr -CWD=`pwd` -SRCDIR=`dirname $0` - -run_lint() { - eslint -f unix "$@" . -} - -parse_opts() { - tmp=`getopt -l output: o: "$@"` - [ $? -ne 0 ] && exit 1 - - eval set -- $tmp - while true - do - case $1 in - --output|-o) - OUTPUT=`realpath $2`; shift 2; continue ;; - --) - shift; break ;; - esac - done -} - -# delete lines that don't start with '/', -# replace the first space with tab, sort -process_for_join() { - sed -E "/\//!d; s|(\S+)\s|\1$SEP|" | sort -b -} - -# re-replace tab with space -process_post_join() { - sed -E "s|$SEP| |" -} - -create_report() { - tmp1=`mktemp --tmpdir lint-XXXX` - run_lint | process_for_join > $tmp1 - - tmp2=`mktemp --tmpdir lint-XXXX` - run_lint -c lint/eslintrc-legacy.json | process_for_join > $tmp2 - - join -t"$SEP" -o '0,1.2' $tmp1 $tmp2 | process_post_join - rm $tmp1 $tmp2 -} - - -parse_opts "$@" - -cd $SRCDIR/.. - -create_report | tee $OUTPUT | grep -q . -rv=$(( $? == 0 )) - -cd $CWD - -[ $rv -eq 0 -a -f $OUTPUT ] && rm $OUTPUT - -exit $rv Binary files /tmp/tmp3mp2ue/LESzMqPoes/polari-3.32.0/logo.png and /tmp/tmp3mp2ue/FxzSaMb2sA/polari-3.34.0/logo.png differ diff -Nru polari-3.32.0/meson.build polari-3.34.0/meson.build --- polari-3.32.0/meson.build 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/meson.build 2019-09-09 18:44:11.000000000 +0000 @@ -1,5 +1,5 @@ project('polari', 'c', - version: '3.32.0', + version: '3.34.0', meson_version: '>= 0.43.0', license: 'GPL2+' ) @@ -27,7 +27,6 @@ girdir = join_paths(pkgdatadir, 'gir-1.0') typelibdir = join_paths(pkglibdir, 'girepository-1.0') -gjs_console = find_program('gjs') js_shell = find_program('js60', required: false) desktop_file_validate = find_program('desktop-file-validate', required: false) @@ -37,7 +36,7 @@ gtk3 = dependency('gtk+-3.0', version: '>= 3.21.6') telepathy_glib = dependency('telepathy-glib') girepository = dependency('gobject-introspection-1.0') -gjs = dependency('gjs-1.0', version: '>= 1.53.90') +gjs = dependency('gjs-1.0', version: '>= 1.57.3') conf = configuration_data() diff -Nru polari-3.32.0/NEWS polari-3.34.0/NEWS --- polari-3.32.0/NEWS 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/NEWS 2019-09-09 18:44:11.000000000 +0000 @@ -1,3 +1,67 @@ +3.34.0 — “Shut the Foot Up” +=========================== + +Translators: + Milo Casagrande [it], Charles Monzat [fr], Sabri Ünal [tr] + +3.33.92 — “We called her Bernie” +================================ +* Support profiling with sysprof [Florian; !123] +* Improve network reachability check [Florian; !132] +* Misc. bug fixes and cleanups [Florian; !125, !124, !126, + !127, !128, !129, !131, !130, !133] + +Contributors: + Florian Müllner, Γιάννης Κουτσούκος + +Translators: + Balázs Meskó [hu], Cheng-Chia Tseng [zh_TW], Daniel Mustieles [es], + Fabio Tomat [fur], Efstathios Iosifidis [el], Nathan Follens [nl], + Goran Vidović [hr], Kukuh Syafaat [id], Asier Sarasua Garmendia [eu], + Rafael Fontenelle [pt_BR], Kristjan SCHMIDT [eo], Anders Jonsson [sv], + Daniel Șerbănescu [ro], Aurimas Černius [lt], Jiri Grönroos [fi], + Piotr Drąg [pl], Tim Sabsch [de], Марко Костић [sr], Matej Urbančič [sl], + Ryuta Fujii [ja], Fran Dieguez [gl], Zander Brown [en_GB], Jordi Mas [ca], + Petr Kovář [cs], Danial Behzadi [fa], DaeHyun Sung [ko] + +3.33.2 — “Booty Hole Police” +============================ +* Display error message on failure to join room [Florian, Daronion; #17] + +Contributors: + Daronion, Florian Müllner + +Translators: + Daniel Mustieles [es] + +3.33.1 — “No Penguin Kisses!” +=========================================== +* Polish the no-results placeholder in userlist [Florian; #768846] +* Allow user-list to take up all available height [Florian; #768851] +* Show a clear indication when offline [Florian; #760833] +* Add a --quit command line option [Will; #20] +* Improve connectivity handling [Florian; !120] +* Misc. bug fixes and cleanups [Florian; !115, !116, !117, !119, !122] + +Contributors: + Will Burklund, Florian Müllner + +Translators: + Daniel Mustieles [es], Kukuh Syafaat [id], Fabio Tomat [fur], Jordi Mas [ca] + +3.32.1 — “Style Always Wins Out In The End” +=========================================== +* Handle notifications for private chats if GNOME's chat integration is + not available [Florian, Daronion; #18] +* Misc. bug fixes and cleanups [Florian, Shubhesh, Kalev; !103, !100, !101, + !99, !108, !109, !110, !111] + +Contributors: + Daronion, Shubhesh Dwivedi, Kalev Lember, Florian Müllner + +Translators: + Matej Urbančič [sl], Ask Hjorth Larsen [da] + 3.32.0 — “Don't Dream it, Be it” ================================ diff -Nru polari-3.32.0/po/ca.po polari-3.34.0/po/ca.po --- polari-3.32.0/po/ca.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/ca.po 2019-09-09 18:44:11.000000000 +0000 @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-04-22 16:06+0000\n" -"PO-Revision-Date: 2018-07-01 08:44+0200\n" +"POT-Creation-Date: 2019-06-18 09:10+0000\n" +"PO-Revision-Date: 2019-08-31 08:47+0200\n" "Last-Translator: Gil Forcada Codinachs \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -20,16 +20,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:160 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:808 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un client d'IRC per al GNOME" @@ -50,20 +50,15 @@ "miss an important message — for private conversations, they even allow you " "to reply instantly without switching back to the application!" msgstr "" -"Podeu utilitzar el Polari per parlar en públic en un canal i per tenir " -"converses privades d'un a un. Les notificacions us asseguren que no us " -"perdreu cap missatge important - per les converses privades, fins i tot us " -"permeten respondre directament sense haver de canviar d'aplicació!" +"Podeu utilitzar el Polari per parlar en canals públics i per tenir converses " +"privades. Les notificacions us asseguren que no us perdreu cap missatge " +"important - per les converses privades, fins i tot us permeten respondre " +"directament sense haver de canviar d'aplicació." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "El projecte GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -77,7 +72,7 @@ msgid "List of channels to restore on startup" msgstr "Llista de canals que s'han de restaurar en iniciar-se" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Executa en segon pla" @@ -167,7 +162,7 @@ msgstr "_Nom real" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Cancel·la" @@ -273,7 +268,7 @@ #: data/resources/initial-setup-window.ui:109 #: data/resources/initial-setup-window.ui:159 msgid "Welcome to Polari" -msgstr "Benvingut a Polari" +msgstr "Us donem la benvinguda a Polari" #: data/resources/initial-setup-window.ui:121 msgid "" @@ -290,7 +285,7 @@ "Seleccioneu sales on voleu connectar-vos. Podeu afegir més xarxes i sales " "després, clicant el botó +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Entra a la sala de xat" @@ -314,50 +309,39 @@ msgid "_Custom Network" msgstr "Xarxa _personalitzada" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Voleu executar Polari en segon pla?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari continuarà executant-se quan el tanqueu i s'iniciarà de forma " -"automàtica quan inicieu la sessió." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Surt" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "E_xecuta en segon pla" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Afegeix sales i xarxes" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Mostra els usuaris connectats" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Dreceres de teclat" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Ajuda" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Quant a" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Surt" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Afegeix sales i xarxes" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Mostra els usuaris connectats" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Fora de línia" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Connecteu-vos per xatejar i rebre missatges." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Canvia el sobrenom:" @@ -366,23 +350,23 @@ msgid "_Change" msgstr "_Canvia" -#: data/resources/room-list-header.ui:146 +#: data/resources/room-list-header.ui:145 msgid "Connect" msgstr "Connecta" -#: data/resources/room-list-header.ui:154 +#: data/resources/room-list-header.ui:152 msgid "Reconnect" msgstr "Reconnecta" -#: data/resources/room-list-header.ui:162 +#: data/resources/room-list-header.ui:159 msgid "Disconnect" msgstr "Desconnecta" -#: data/resources/room-list-header.ui:170 +#: data/resources/room-list-header.ui:166 msgid "Remove" msgstr "Suprimeix" -#: data/resources/room-list-header.ui:178 +#: data/resources/room-list-header.ui:173 msgid "Properties" msgstr "Propietats" @@ -406,101 +390,105 @@ msgid "Start Conversation" msgstr "Comença una conversació" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Inicia el client Telepathy" -#: src/application.js:50 +#: src/application.js:48 +msgid "Start in debug mode" +msgstr "Inicia el mode de depuració" + +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Permet que s'executi juntament amb una altra instància" -#: src/application.js:53 +#: src/application.js:54 msgid "Print version and exit" msgstr "Imprimeix la versió i surt" -#: src/application.js:420 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "No s'ha pogut obrir l'enllaç" -#: src/application.js:705 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "s'ha eliminat %s." -#: src/application.js:807 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Walter Garcia-Fontes \n" "Carles Ferrando Garcia " -#: src/application.js:813 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Apreneu més sobre el Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Desfés" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Missatges nous" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Obre l'enllaç" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copia l'adreça de l'enllaç" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s ara se'l coneix com %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s s'ha desconnectat" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s ha estat expulsat per %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "S'ha expulsat a %s" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s ha estat bandejat per %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "S'ha bandejat a %s" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s s'ha unit" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s ha sortit" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "s'ha unit %d usuari" msgstr[1] "s'han unit %d usuaris" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -509,14 +497,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%-H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Ahir, %-H∶%M" @@ -524,7 +512,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %-H∶%M" @@ -533,7 +521,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%-d %B, %-H∶%M" @@ -542,21 +530,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%-d %B de %Y, %-H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Ahir, %l∶%M %p" @@ -564,7 +552,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -573,7 +561,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%-d %B, %l∶%M %p" @@ -582,26 +570,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%-d %B de %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Ja s'ha afegit" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Sense resultats." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Propietats de «%s»" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -609,14 +596,14 @@ "El Polari s'ha desconnectat a causa d'un error de xarxa. Verifiqueu si el " "camp de l'adreça és correcte." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Voleu enganxar %s línia de text al servei públic d'enganxament?" msgstr[1] "Voleu enganxar %s línies de text al servei públic d'enganxament?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -624,46 +611,46 @@ msgstr[1] "" "S'estan carregant %s línies de text a un servei públic d'enganxament…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Voleu carregar la imatge al servei públic d'enganxament?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "S'està carregant la imatge a un servei públic d'enganxament…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Voleu carregar «%s» al servei públic d'enganxament?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "S'està carregant «%s» a un servei públic d'enganxament…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s a #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Enganxa de %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Enrere" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Fet" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Següent" @@ -752,16 +739,16 @@ msgid "Usage: %s" msgstr "Forma d'ús: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Ordres conegudes:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Usuaris a %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "No s'ha definit cap tema" @@ -769,82 +756,74 @@ msgid "Add Network" msgstr "Afegeix la xarxa" -#: src/mainWindow.js:382 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d usuari" msgstr[1] "%d usuaris" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Deixa la sala" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Finalitza la conversació" -#: src/roomList.js:288 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "La xarxa %s té un error" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:359 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:366 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problema de connexió" -#: src/roomList.js:383 +#: src/roomList.js:396 msgid "Connected" msgstr "Connectat" -#: src/roomList.js:385 +#: src/roomList.js:398 msgid "Connecting…" msgstr "S'està connectant..." -#: src/roomList.js:387 src/userList.js:415 -msgid "Offline" -msgstr "Fora de línia" - -#: src/roomList.js:389 +#: src/roomList.js:402 msgid "Unknown" msgstr "Desconegut" -#: src/roomList.js:409 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "No s'ha pogut connectar a %s d'una manera segura." -#: src/roomList.js:412 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s requereix una contrasenya." -#: src/roomList.js:418 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "No s'ha pogut connectar a %s. El servidor està ocupat." -#: src/roomList.js:421 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "No s'ha pogut connectar a %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "De_sa la Contrasenya" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Si s'hauria de desar la contrasenya." -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -852,95 +831,123 @@ "La identificació es produirà automàticament la propera vegada que us " "connecteu a %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "De_sa la Contrasenya" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "No s'ha pogut entrar a la sala." + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Reintenta" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "La sala és plena." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Heu estat vetat de la sala." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "La sala és només per convidats." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Heu estat expulsat de la sala." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "No és possible entrar ara al canal, però podeu intentar-ho més tard." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Uniu-vos a una sala usant el botó +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Adéu" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Voleu desar la contrasenya %s per a %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Desa" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s a %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Fa %d segon" msgstr[1] "Fa %d segons" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "Fa %d minut" msgstr[1] "Fa %d minuts" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "Fa %d hora" msgstr[1] "Fa %d hores" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "Fa %d dia" msgstr[1] "Fa %d dies" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "Fa %d setmana" msgstr[1] "Fa %d setmanes" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "Fa %d mes" msgstr[1] "Fa %d mesos" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponible en una altra sala." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "En línia" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Sense resultats" -#: src/userList.js:734 -msgid "All" -msgstr "Tot" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "L'usuari és en línia" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "L'usuari %s és en línia." @@ -954,51 +961,3 @@ #, javascript-format msgid "Polari NickServ password for %s" msgstr "Contrasenya del NickServ Polari per a %s" - -#~ msgid "Message" -#~ msgstr "Missatge" - -#~ msgid "Room _Name" -#~ msgstr "_Nom de la sala" - -#~ msgid "Window position" -#~ msgstr "Posició de la finestra" - -#~ msgid "Window position (x and y)." -#~ msgstr "Posició de la finestra (x i y)." - -#~ msgid "Preferences" -#~ msgstr "Preferències" - -#~ msgid "_Description" -#~ msgstr "_Descripció" - -#~ msgid "Add" -#~ msgstr "Afegeix" - -#~ msgid "_Add Connection" -#~ msgstr "_Afegeix una connexió" - -#~ msgid "Message a User" -#~ msgstr "Envia un missatge a un usuari" - -#~ msgid "Message User" -#~ msgstr "Envia un missatge a un usuari" - -#~ msgid "_Message" -#~ msgstr "_Missatge" - -#~ msgid "_Recent" -#~ msgstr "_Recent" - -#~ msgid "_Name" -#~ msgstr "_Nom" - -#~ msgid "Cr_eate" -#~ msgstr "Cr_ea" - -#~ msgid "Add Connection" -#~ msgstr "Afegeix una connexió" - -#~ msgid "No recent users" -#~ msgstr "Cap usuari recent" diff -Nru polari-3.32.0/po/cs.po polari-3.34.0/po/cs.po --- polari-3.32.0/po/cs.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/cs.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-14 09:20+0200\n" +"POT-Creation-Date: 2019-08-14 19:05+0000\n" +"PO-Revision-Date: 2019-08-16 09:59+0200\n" "Last-Translator: Marek Černocký \n" "Language-Team: čeština \n" "Language: cs\n" @@ -16,16 +16,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Gtranslator 2.91.7\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:847 msgid "An Internet Relay Chat Client for GNOME" msgstr "Komunikační klient IRC pro GNOME" @@ -49,17 +49,12 @@ "Polari můžete používat k veřejné diskuzi s lidmi na některém z kanálů nebo k " "soukromé konverzaci dvou lidí. Upozorňování zajistí, že nezmeškáte žádnou " "důležitou zprávu – u soukromých konverzací můžete dokonce ihned odpovědět, " -"aniž byste se museli přepnout zpátky do aplikace Polari." +"aniž byste se museli přepnout zpátky do aplikace Polari!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Projekt GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -71,7 +66,7 @@ #: data/org.gnome.Polari.gschema.xml:7 msgid "List of channels to restore on startup" -msgstr "Seznam kanálů, které se mají obnovit po spuštění." +msgstr "Seznam kanálů, které se mají obnovit po spuštění" #: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" @@ -95,7 +90,7 @@ #: data/org.gnome.Polari.gschema.xml:22 msgid "Window maximized state" -msgstr "Stav maximalizace okna." +msgstr "Stav maximalizace okna" #: data/org.gnome.Polari.gschema.xml:26 msgid "Last active channel" @@ -103,7 +98,7 @@ #: data/org.gnome.Polari.gschema.xml:27 msgid "Last active (selected) channel" -msgstr "Poslední aktivní (vybraný) kanál." +msgstr "Poslední aktivní (vybraný) kanál" #: data/org.gnome.Polari.gschema.xml:34 msgid "Identify botname" @@ -111,7 +106,7 @@ #: data/org.gnome.Polari.gschema.xml:35 msgid "Nickname of the bot to identify with" -msgstr "Přezdívka bota, pomocí kterého se uživatel identifikuje." +msgstr "Přezdívka bota, pomocí kterého se uživatel identifikuje" #: data/org.gnome.Polari.gschema.xml:39 msgid "Identify command" @@ -127,7 +122,7 @@ #: data/org.gnome.Polari.gschema.xml:45 msgid "Username to use in identify command" -msgstr "Uživatelské jméno pro identifikační příkaz." +msgstr "Uživatelské jméno pro identifikační příkaz" #: data/org.gnome.Polari.gschema.xml:49 msgid "Identify username supported" @@ -163,7 +158,7 @@ msgstr "_Skutečné jméno" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Zrušit" @@ -286,7 +281,7 @@ "Vyberte místnost, do které chcete vstoupit. Další sítě a místnosti můžete " "přidat později pomocí tlačítka +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Vstup do diskuzní místnosti" @@ -323,37 +318,26 @@ msgstr "O aplikaci" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Ukončit" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Nechat Polari běžet na pozadí?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari zůstane skrytě běžet, i když jej zavřete a automaticky se spustí po " -"vašem přihlášení." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "U_končit" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "Běžet na _pozadí" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Přidat místnosti a sítě" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Zobrazovat připojené uživatele" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Odpojeno" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Přejít on-line, chatovat a přijímat zprávy." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Změnit přezdívku:" @@ -402,96 +386,98 @@ msgid "Start Conversation" msgstr "Začít konverzaci" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Spustit klienta Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Spustit v ladicím režimu" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Povolit spuštění souběžně s jinou instancí" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Vypsat verzi a skončit" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:185 msgid "Failed to open link" msgstr "Selhalo otevření odkazu" -#: src/application.js:712 +#: src/application.js:770 #, javascript-format msgid "%s removed." msgstr "Účet %s byl odstraněn." -#: src/application.js:816 +#: src/application.js:846 msgid "translator-credits" -msgstr "Marek Černocký " +msgstr "" +"Marek Černocký \n" +" Ondřej Kolín " -#: src/application.js:822 +#: src/application.js:852 msgid "Learn more about Polari" msgstr "Dozvědět se více o Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:85 msgid "Undo" msgstr "Zpět" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nové zprávy" -#: src/chatView.js:762 +#: src/chatView.js:785 msgid "Open Link" msgstr "Otevřít odkaz" -#: src/chatView.js:768 +#: src/chatView.js:791 msgid "Copy Link Address" msgstr "Kopírovat adresu odkazu" -#: src/chatView.js:936 +#: src/chatView.js:963 #, javascript-format msgid "%s is now known as %s" msgstr "%s je nyní znám jako %s" -#: src/chatView.js:941 +#: src/chatView.js:968 #, javascript-format msgid "%s has disconnected" msgstr "%s se odpojil" -#: src/chatView.js:949 +#: src/chatView.js:977 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s byl vykopnut správcem %s" -#: src/chatView.js:951 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked" msgstr "%s byl vykopnut" -#: src/chatView.js:957 +#: src/chatView.js:985 #, javascript-format msgid "%s has been banned by %s" msgstr "%s byl zablokován správcem %s" -#: src/chatView.js:959 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned" msgstr "%s byl zablokován" -#: src/chatView.js:964 +#: src/chatView.js:991 #, javascript-format msgid "%s joined" msgstr "%s se připojil" -#: src/chatView.js:969 +#: src/chatView.js:996 #, javascript-format msgid "%s left" msgstr "%s opustil místnost" -#: src/chatView.js:1062 +#: src/chatView.js:1093 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -499,7 +485,7 @@ msgstr[1] "%d uživatelé se připojili" msgstr[2] "%d uživatelů se připojilo" -#: src/chatView.js:1065 +#: src/chatView.js:1100 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -509,14 +495,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1172 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1177 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Včera, %H∶%M" @@ -524,7 +510,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1182 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -533,7 +519,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1188 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d. %B, %H∶%M" @@ -542,21 +528,22 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1194 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d. %B %Y, %H∶%M" +#. eslint-disable-next-line no-lonely-if #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Včera, %l∶%M %p" @@ -564,7 +551,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -573,7 +560,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d. %B, %l∶%M %p" @@ -582,26 +569,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d. %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Již bylo přidáno" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." -msgstr "Žádné výsledky" +msgstr "Žádné výsledky." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Vlastnosti připojení „%s“" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -609,7 +595,7 @@ "Polari se odpojilo kvůli chybě sítě. Zkontrolujte prosím, jestli je pole s " "adresou správné." -#: src/entryArea.js:400 +#: src/entryArea.js:369 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -617,7 +603,7 @@ msgstr[1] "Vložit %s řádky textu do veřejně přístupné služby?" msgstr[2] "Vložit %s řádků textu do veřejně přístupné služby?" -#: src/entryArea.js:404 +#: src/entryArea.js:373 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -625,46 +611,46 @@ msgstr[1] "Nahrávají se %s řádky textu do veřejně přístupné služby…" msgstr[2] "Nahrává se %s řádků textu do veřejně přístupné služby…" -#: src/entryArea.js:411 +#: src/entryArea.js:380 msgid "Upload image to public paste service?" msgstr "Nahrát obrázek do veřejně přístupné služby?" -#: src/entryArea.js:412 +#: src/entryArea.js:381 msgid "Uploading image to public paste service…" msgstr "Nahrává se obrázek do veřejně přístupné služby…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:403 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Nahrát „%s“ do veřejně přístupné služby?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:405 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Nahrává se „%s“ do veřejně přístupné služby…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:414 #, javascript-format msgid "%s in #%s" msgstr "%s na kanále #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:416 #, javascript-format msgid "Paste from %s" msgstr "Vložit od uživatele %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Zpět" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Dokončít" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "Da_lší" @@ -677,12 +663,12 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:23 +#: src/ircParser.js:21 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "/CLOSE [] [] – zavře , standardně ten aktuální" -#: src/ircParser.js:24 +#: src/ircParser.js:22 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -690,79 +676,79 @@ "/HELP [] – zobrazit nápovědu pro nebo seznam dostupných " "příkazů" -#: src/ircParser.js:25 +#: src/ircParser.js:23 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] – pozvat uživatele na nebo " "na aktuální kanál" -#: src/ircParser.js:26 +#: src/ircParser.js:24 msgid "/JOIN — joins " msgstr "/JOIN – připojit " -#: src/ircParser.js:27 +#: src/ircParser.js:25 msgid "/KICK — kicks from current channel" msgstr "/KICK – vyhodit uživatele z aktuálního kanálu" -#: src/ircParser.js:28 +#: src/ircParser.js:26 msgid "/ME — sends to the current channel" msgstr "/ME – poslat na aktuální kanál" -#: src/ircParser.js:29 +#: src/ircParser.js:27 msgid "/MSG [] — sends a private message to " msgstr "" "/MSG [] – odeslat soukromou zprávu uživateli " -#: src/ircParser.js:30 +#: src/ircParser.js:28 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES – vypsat uživatele na aktuálním kanále" -#: src/ircParser.js:31 +#: src/ircParser.js:29 msgid "/NICK — sets your nick to " msgstr "/NICK – nastavat vaši přezdívku na " -#: src/ircParser.js:32 +#: src/ircParser.js:30 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "/PART [] [] – opustit , standardně ten aktuální" -#: src/ircParser.js:33 +#: src/ircParser.js:31 msgid "/QUERY — opens a private conversation with " msgstr "" "/QUERY – otevřít soukromou konverzaci s uživatelem " -#: src/ircParser.js:34 +#: src/ircParser.js:32 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] – odpojit se od aktuálního serveru" -#: src/ircParser.js:35 +#: src/ircParser.js:33 msgid "/SAY — sends to the current room/contact" msgstr "/SAY – poslat do aktuální místnosti/aktuálnímu kontaktu" -#: src/ircParser.js:36 +#: src/ircParser.js:34 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC – nastavit téma na nebo zobrazit aktuální téma" -#: src/ircParser.js:39 +#: src/ircParser.js:37 msgid "Unknown command — try /HELP for a list of available commands" msgstr "Neznámý příkaz – zkuste /HELP pro zobrazení seznamu dostupných příkazů" -#: src/ircParser.js:53 +#: src/ircParser.js:51 #, javascript-format msgid "Usage: %s" msgstr "Použití: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:88 msgid "Known commands:" msgstr "Známé příkazy:" -#: src/ircParser.js:188 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "Uživatelé na kanále %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:269 msgid "No topic set" msgstr "Není nastaveno žádné téma" @@ -770,7 +756,7 @@ msgid "Add Network" msgstr "Přidání sítě" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -778,108 +764,132 @@ msgstr[1] "%d uživatelé" msgstr[2] "%d uživatelů" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Opustit diskuzní místnost" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Ukončit konverzaci" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Síť %s má chybu" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problém s připojením" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Připojeno" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Připojuje se…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Odpojeno" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Neznámo" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "K účtu %s se nelze připojit zabezpečeným způsobem." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "Účet %s požaduje heslo." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nelze se připojit k účtu %s. Server je zaneprázdněn." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nelze se připojit k účtu %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Uložit heslo" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Má se heslo uložit?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:651 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "Až se příště budete přihlašovat k %s, provede se identifikace automaticky" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Uložit heslo" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Nepodařilo se připojit do místnosti" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Zopakovat" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Místnost je plná." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Přístup do místnosti byl zakázán." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Místnost je pouze pro zvané." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Z místnosti jste byli vykázáni." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Teď se nedaří do místnosti připojit, zkuste to později." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Vstupte do místnosti pomocí tlačítka +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:464 msgid "Good Bye" msgstr "Naviděnou" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:650 #, javascript-format msgid "Save %s password for %s?" msgstr "Uložit heslo %s pro účet %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:654 msgid "Save" msgstr "Uložit" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:686 #, javascript-format msgid "%s in %s" msgstr "%s v místnosti %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -887,7 +897,7 @@ msgstr[1] "před %d sekundami" msgstr[2] "před %d sekundami" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -895,7 +905,7 @@ msgstr[1] "před %d minutami" msgstr[2] "před %d minutami" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -903,7 +913,7 @@ msgstr[1] "před %d hodinami" msgstr[2] "před %d hodinami" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -911,7 +921,7 @@ msgstr[1] "před %d dny" msgstr[2] "před %d dny" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -919,7 +929,7 @@ msgstr[1] "před %d týdny" msgstr[2] "před %d týdny" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -927,37 +937,55 @@ msgstr[1] "před %d měsíci" msgstr[2] "před %d měsíci" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." -msgstr "Dostupný v jiné místnosti" +msgstr "Dostupný v jiné místnosti." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Připojený" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Žádné výsledky" -#: src/userList.js:734 -msgid "All" -msgstr "Vše" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Uživatelé je připojený" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Uživatel %s je nyní připojený." -#: src/utils.js:106 +#: src/utils.js:104 #, javascript-format msgid "Polari server password for %s" msgstr "Heslo serveru Polari pro účet %s" -#: src/utils.js:111 +#: src/utils.js:109 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Heslo Polari NickServ pro účet %s" + +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Nechat Polari běžet na pozadí?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari zůstane skrytě běžet, i když jej zavřete a automaticky se spustí " +#~ "po vašem přihlášení." + +#~ msgid "_Quit" +#~ msgstr "U_končit" + +#~ msgid "_Run in background" +#~ msgstr "Běžet na _pozadí" + +#~ msgid "All" +#~ msgstr "Vše" diff -Nru polari-3.32.0/po/da.po polari-3.34.0/po/da.po --- polari-3.32.0/po/da.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/da.po 2019-09-09 18:44:11.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-29 17:10+0000\n" +"POT-Creation-Date: 2019-03-28 20:27+0000\n" "PO-Revision-Date: 2018-08-30 21:06+0200\n" "Last-Translator: Ask Hjorth Larsen \n" "Language-Team: Danish \n" @@ -28,7 +28,7 @@ msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:814 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:829 msgid "An Internet Relay Chat Client for GNOME" msgstr "En Internet Relay Chat-klient for GNOME" @@ -54,15 +54,10 @@ "meddelelse — for private samtaler, lader de dig endda svare omgående, uden " "at du skal skifte tilbage til programmet!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME-projektet" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -76,7 +71,7 @@ msgid "List of channels to restore on startup" msgstr "Liste med kanaler der skal gendannes ved opstart" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Kør i baggrunden" @@ -137,7 +132,8 @@ msgstr "Understøtter identify med brugernavn" #: data/org.gnome.Polari.gschema.xml:50 -msgid "Whether the identify command is known to support the username parameter" +msgid "" +"Whether the identify command is known to support the username parameter" msgstr "" "Om identify-kommandoen vides at understøtte brugernavn (parameteren username)" @@ -167,7 +163,7 @@ msgstr "_Rigtige navn" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:81 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 msgid "_Cancel" msgstr "_Annullér" @@ -290,7 +286,7 @@ "Vælg rummene, du vil forbinde til. Du kan tilføje flere netværk og rum " "senere ved at klikke på +-knappen." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:234 msgid "Join Chat Room" msgstr "Deltag i chatrum" @@ -314,50 +310,30 @@ msgid "_Custom Network" msgstr "_Brugertilpasset netværk" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Kør Polari i baggrunden?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari vil fortsætte med at køre efter lukning og vil automatisk blive " -"startet ved indlogning." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Afslut" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Kør i baggrunden" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Tilføj rum og netværk" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Vis forbundne brugere" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Tastaturgenveje" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Hjælp" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Om" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 msgid "Quit" msgstr "Afslut" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Tilføj rum og netværk" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Vis forbundne brugere" + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Skift kaldenavn:" @@ -422,30 +398,31 @@ msgid "Print version and exit" msgstr "Udskriv version og afslut" -#: src/application.js:422 src/utils.js:185 +#: src/application.js:462 src/utils.js:186 msgid "Failed to open link" msgstr "Kunne ikke åbne link" -#: src/application.js:709 +#: src/application.js:753 #, javascript-format msgid "%s removed." msgstr "%s blev fjernet." -#: src/application.js:813 +#: src/application.js:828 msgid "translator-credits" msgstr "" "Joe Hansen\n" "Ask Hjorth Larsen\n" "scootergrisen\n" "\n" -"Dansk-gruppen \n" -"Mere info: http://www.dansk-gruppen.dk" +"Dansk-gruppen\n" +"Websted http://dansk-gruppen.dk\n" +"E-mail " -#: src/application.js:819 +#: src/application.js:834 msgid "Learn more about Polari" msgstr "Lær mere om Polari" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Fortryd" @@ -453,62 +430,62 @@ msgid "New Messages" msgstr "Nye meddelelser" -#: src/chatView.js:765 +#: src/chatView.js:792 msgid "Open Link" msgstr "Åbn link" -#: src/chatView.js:771 +#: src/chatView.js:798 msgid "Copy Link Address" msgstr "Kopiér linkadresse" -#: src/chatView.js:939 +#: src/chatView.js:971 #, javascript-format msgid "%s is now known as %s" msgstr "%s er nu kendt som %s" -#: src/chatView.js:944 +#: src/chatView.js:976 #, javascript-format msgid "%s has disconnected" msgstr "%s har afbrudt forbindelsen" -#: src/chatView.js:952 +#: src/chatView.js:985 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s er blevet sparket ud af %s" -#: src/chatView.js:954 +#: src/chatView.js:986 #, javascript-format msgid "%s has been kicked" msgstr "%s er blevet sparket ud" -#: src/chatView.js:960 +#: src/chatView.js:993 #, javascript-format msgid "%s has been banned by %s" msgstr "%s har fået karantæne af %s" -#: src/chatView.js:962 +#: src/chatView.js:994 #, javascript-format msgid "%s has been banned" msgstr "%s har fået karantæne" -#: src/chatView.js:967 +#: src/chatView.js:999 #, javascript-format msgid "%s joined" msgstr "%s kom ind i rummet" -#: src/chatView.js:972 +#: src/chatView.js:1004 #, javascript-format msgid "%s left" msgstr "%s forlod rummet" -#: src/chatView.js:1065 +#: src/chatView.js:1097 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d bruger kom ind i rummet" msgstr[1] "%d brugere kom ind i rummet" -#: src/chatView.js:1068 +#: src/chatView.js:1100 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -517,14 +494,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1135 +#: src/chatView.js:1167 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1140 +#: src/chatView.js:1172 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "I går, %H∶%M" @@ -532,7 +509,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1177 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -541,7 +518,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1183 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d. %B, %H∶%M" @@ -550,21 +527,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1157 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d. %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1162 +#: src/chatView.js:1194 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1167 +#: src/chatView.js:1199 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "I går, %l∶%M %p" @@ -572,7 +549,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1204 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -581,7 +558,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1210 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d. %B, %l∶%M %p" @@ -590,26 +567,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1184 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d. %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:54 msgid "Already added" msgstr "Allerede tilføjet" -#: src/connections.js:107 +#: src/connections.js:117 msgid "No results." msgstr "Ingen resultater." -#. Translators: %s is a connection name -#: src/connections.js:486 +#: src/connections.js:519 #, javascript-format msgid "“%s” Properties" msgstr "Egenskaber for “%s”" -#: src/connections.js:530 +#: src/connections.js:563 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -617,60 +593,60 @@ "Polari mistede forbindelsen på grund af en netværksfejl. Tjek venligst at " "adressefeltet er korrekt." -#: src/entryArea.js:363 +#: src/entryArea.js:372 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Indsæt %s linje tekst til offentlig tekstdelingstjeneste?" msgstr[1] "Indsæt %s linjer tekst til offentlig tekstdelingstjeneste?" -#: src/entryArea.js:367 +#: src/entryArea.js:376 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Sender %s linje tekst til offentlig tekstdelingstjeneste …" msgstr[1] "Sender %s linjer tekst til offentlig tekstdelingstjeneste …" -#: src/entryArea.js:374 +#: src/entryArea.js:383 msgid "Upload image to public paste service?" msgstr "Send billede til offentlig tekstdelingstjeneste?" -#: src/entryArea.js:375 +#: src/entryArea.js:384 msgid "Uploading image to public paste service…" msgstr "Sender billede til offentlig tekstdelingstjeneste …" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:405 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Læg “%s” op på offentlig tekstdelingstjeneste?" #. Translators: %s is a filename -#: src/entryArea.js:398 +#: src/entryArea.js:407 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Sender “%s” til offentlig tekstdelingstjeneste …" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:407 +#: src/entryArea.js:416 #, javascript-format msgid "%s in #%s" msgstr "%s i #%s" -#: src/entryArea.js:409 +#: src/entryArea.js:418 #, javascript-format msgid "Paste from %s" msgstr "Indsæt fra %s" -#: src/initialSetup.js:81 +#: src/initialSetup.js:84 msgid "_Back" msgstr "_Tilbage" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Done" msgstr "_Færdig" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Next" msgstr "_Næste" @@ -683,14 +659,14 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/CLOSE [] [] — lukker ; som udgangspunkt den " "nuværende kanal" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -698,272 +674,294 @@ "/HELP [] — viser hjælp for eller en liste med " "tilgængelige kommandoer" -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — inviterer til eller den " "nuværende kanal" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN — tilslutter " -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK — sparker ud af den nuværende kanal" -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME — sender til den nuværende kanal" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "" "/MSG [] — sender en privat meddelelse til " -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — viser brugere i den nuværende kanal" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK — sætter dit kaldenavn til " -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [] [] — forlader ; som udgangspunkt den " "nuværende kanal" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY — åbner en privat samtale med " -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" -msgstr "/QUIT [] — afbryder forbindelsen til den nuværende server" +msgstr "" +"/QUIT [] — afbryder forbindelsen til den nuværende server" -#: src/ircParser.js:36 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY — sender til det nuværende rum/kontakt" -#: src/ircParser.js:37 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC — sætter emnet til , eller viser det nuværende emne" -#: src/ircParser.js:40 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Ukendt kommando — prøv /HELP for at se en liste med tilgængelige kommandoer" -#: src/ircParser.js:54 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Brug: %s" -#: src/ircParser.js:90 +#: src/ircParser.js:89 msgid "Known commands:" msgstr "Kendte kommandoer:" -#: src/ircParser.js:189 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "Brugere i %s:" -#: src/ircParser.js:268 +#: src/ircParser.js:270 msgid "No topic set" msgstr "Intet emne givet" -#: src/joinDialog.js:230 +#: src/joinDialog.js:234 msgid "Add Network" msgstr "Tilføj netværk" -#: src/mainWindow.js:384 +#: src/mainWindow.js:364 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d bruger" msgstr[1] "%d brugere" -#: src/roomList.js:187 +#: src/roomList.js:193 msgid "Leave chatroom" msgstr "Forlad chatrum" -#: src/roomList.js:187 +#: src/roomList.js:193 msgid "End conversation" msgstr "Afslut samtale" -#: src/roomList.js:291 +#: src/roomList.js:299 #, javascript-format msgid "Network %s has an error" msgstr "Netværket %s har en fejl" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:362 +#: src/roomList.js:370 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:386 +#: src/roomList.js:377 +msgid "Connection Problem" +msgstr "Problem med forbindelsen" + +#: src/roomList.js:394 msgid "Connected" msgstr "Forbundet" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connecting…" msgstr "Forbinder …" -#: src/roomList.js:390 src/userList.js:413 +#: src/roomList.js:398 src/userList.js:426 msgid "Offline" msgstr "Offline" -#: src/roomList.js:392 +#: src/roomList.js:400 msgid "Unknown" msgstr "Ukendt" -#: src/roomList.js:412 +#: src/roomList.js:420 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Kunne ikke oprette forbindelse til %s på en sikker måde." -#: src/roomList.js:415 +#: src/roomList.js:423 #, javascript-format msgid "%s requires a password." msgstr "%s kræver en adgangskode." -#: src/roomList.js:421 +#: src/roomList.js:429 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Kunne ikke oprette forbindelse til %s. Serveren er optaget." -#: src/roomList.js:424 +#: src/roomList.js:432 #, javascript-format msgid "Could not connect to %s." msgstr "Kunne ikke oprette forbindelse til %s." -#: src/roomStack.js:115 +#: src/roomStack.js:123 msgid "_Save Password" msgstr "_Gem adgangskode" -#: src/roomStack.js:124 +#: src/roomStack.js:133 msgid "Should the password be saved?" msgstr "Skal adgangskoden gemmes?" -#: src/roomStack.js:161 +#: src/roomStack.js:180 msgid "Join a room using the + button." msgstr "Deltag i et rum med +-knappen." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:418 msgid "Good Bye" msgstr "Farvel" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:598 #, javascript-format msgid "Save %s password for %s?" msgstr "Gem %s-adgangskode til %s?" -#: src/telepathyClient.js:585 +#: src/telepathyClient.js:599 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "Identifikationen vil ske automatisk næste gang, du til forbinder til %s" -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:602 msgid "Save" msgstr "Gem" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:625 #, javascript-format msgid "%s in %s" msgstr "%s i %s" -#: src/userList.js:227 +#: src/userList.js:237 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d sekund siden" msgstr[1] "%d sekunder siden" -#: src/userList.js:232 +#: src/userList.js:242 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minut siden" msgstr[1] "%d minutter siden" -#: src/userList.js:237 +#: src/userList.js:247 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d time siden" msgstr[1] "%d timer siden" -#: src/userList.js:242 +#: src/userList.js:252 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d dag siden" msgstr[1] "%d dage siden" -#: src/userList.js:247 +#: src/userList.js:257 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d uge siden" msgstr[1] "%d uger siden" -#: src/userList.js:251 +#: src/userList.js:261 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d måned siden" msgstr[1] "%d måneder siden" -#: src/userList.js:409 +#: src/userList.js:422 msgid "Available in another room." msgstr "Tilgængelig i et andet rum." -#: src/userList.js:411 +#: src/userList.js:424 msgid "Online" msgstr "Online" -#: src/userTracker.js:306 +#: src/userList.js:582 +msgid "No results" +msgstr "Ingen resultater" + +#: src/userTracker.js:315 msgid "User is online" msgstr "Bruger er online" -#: src/userTracker.js:307 +#: src/userTracker.js:316 #, javascript-format msgid "User %s is now online." msgstr "Brugeren %s er nu online." -#: src/utils.js:107 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Polari-serveradgangskode for %s" -#: src/utils.js:112 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari-NickServ-serveradgangskode til %s" -#~ msgid "Connection Problem" -#~ msgstr "Problem med forbindelsen" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" -#~ msgid "No results" -#~ msgstr "Ingen resultater" +#~ msgid "Run Polari in the Background?" +#~ msgstr "Kør Polari i baggrunden?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started on " +#~ "login." +#~ msgstr "" +#~ "Polari vil fortsætte med at køre efter lukning og vil automatisk blive " +#~ "startet ved indlogning." + +#~ msgid "_Quit" +#~ msgstr "_Afslut" + +#~ msgid "_Run in background" +#~ msgstr "_Kør i baggrunden" #~ msgid "All" #~ msgstr "Alle" -# scootergrisen: "Message" er noget man gør når man har valgt en bruger. +#~ # scootergrisen: "Message" er noget man gør når man har valgt en bruger. #~ msgid "Message" #~ msgstr "Send meddelelse" @@ -1044,3 +1042,4 @@ #~ msgid "Enable them by opening %s in the application menu." #~ msgstr "Slå dem til ved at åbne %s i programmenuen." + diff -Nru polari-3.32.0/po/de.po polari-3.34.0/po/de.po --- polari-3.32.0/po/de.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/de.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,30 +7,31 @@ # J.M. Ruetter , 2015. # Mario Blättermann , 2016-2018. # Benjamin Steinwender , 2017. +# Tim Sabsch , 2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-04 19:18+0200\n" -"Last-Translator: Mario Blättermann \n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-19 20:32+0200\n" +"Last-Translator: Tim Sabsch \n" "Language-Team: Deutsch \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.9\n" +"X-Generator: Poedit 2.2.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Ein IRC-Client für GNOME" @@ -57,15 +58,10 @@ "Unterhaltungen können Sie sogar direkt antworten, ohne in das " "Anwendungsfenster wechseln zu müssen." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Das GNOME-Projekt" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -170,7 +166,7 @@ msgstr "_Realname" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Abbrechen" @@ -295,7 +291,7 @@ "Wählen Sie die Räume aus, die Sie betreten wollen. Sie können später weitere " "Räume und Netzwerke hinzufügen, indem Sie auf das Plus-Symbol klicken." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Raum beitreten" @@ -332,37 +328,26 @@ msgstr "Info" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Beenden" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Polari im Hintergrund ausführen?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari wird beim Schließen weiter ausgeführt und wird auch automatisch beim " -"Anmelden gestartet." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Beenden" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "Im _Hintergrund ausführen" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Räume und Netzwerke hinzufügen" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Verbundene Benutzer anzeigen" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Abgemeldet" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Gehen Sie online, um Nachrichten zu schreiben und zu empfangen." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Spitzname ändern:" @@ -411,107 +396,108 @@ msgid "Start Conversation" msgstr "Unterhaltung beginnen" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Telepathy-Client starten" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Im Fehlerdiagnosemodus starten" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Ausführung weiterer Instanzen erlauben" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Versionsnummer ausgeben und beenden" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Fehler beim Öffnen des Links" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s wurde entfernt." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Christian Kirbach \n" "Bernd Homuth \n" "J.M. Ruetter \n" -"Mario Blättermann " +"Mario Blättermann \n" +"Tim Sabsch " -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Mehr über Polari erfahren" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Rückgängig" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Neue Nachrichten" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Link öffnen" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Link-Adresse kopieren" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s ist jetzt bekannt als %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s hat sich abgemeldet" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s wurde von %s rausgeworfen" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s wurde rausgeworfen" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s wurde von %s gebannt" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s wurde gebannt" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s hat den Raum betreten" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s hat den Raum verlassen" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d Benutzer hat den Raum betreten" msgstr[1] "%d Benutzer haben den Raum betreten" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -520,14 +506,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Gestern, %H:%M" @@ -535,7 +521,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -544,7 +530,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%e. %B, %H∶%M" @@ -553,21 +539,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%e. %B %Y, %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Gestern, %H:%M" @@ -575,7 +561,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %H∶%M" @@ -584,7 +570,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%e. %B, %H∶%M" @@ -593,26 +579,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%e. %B %Y, %H:%M" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Bereits hinzugefügt" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Keine Ergebnisse." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "»%s«-Eigenschaften" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -620,14 +605,14 @@ "Polari wurde auf Grund eines Netzwerkfehlers getrennt. Bitte überprüfen Sie " "das Adressfeld." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "%s Textzeile in öffentlichem Textspeicherdienst speichern?" msgstr[1] "%s Textzeilen in öffentlichem Textspeicherdienst speichern?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -635,46 +620,46 @@ msgstr[1] "" "%s Textzeilen werden in öffentlichem Textspeicherdienst gespeichert …" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Bild in öffentlichem Speicherdienst speichern?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Bild wird zu öffentlichem Speicherdienst übertragen …" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Datei »%s« in öffentlichem Speicherdienst speichern?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Datei »%s« wird zu öffentlichem Speicherdienst übertragen …" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s in #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Von %s einfügen" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Zurück" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Fertig" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Weiter" @@ -769,16 +754,16 @@ msgid "Usage: %s" msgstr "Aufruf: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Bekannte Befehle:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Benutzer in %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Kein Thema angegeben" @@ -786,83 +771,75 @@ msgid "Add Network" msgstr "Netzwerk hinzufügen" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d Benutzer" msgstr[1] "%d Benutzer" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Raum verlassen" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Unterhaltung beenden" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Fehler bei Netzwerk %s" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Verbindungsproblem" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Verbunden" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Verbindung wird hergestellt …" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Abgemeldet" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Unbekannt" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Zu %s konnte keine sichere Verbindung hergestellt werden." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s benötigt ein Passwort." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "" "Zu %s konnte keine Verbindung hergestellt werden. Der Server ist belegt." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Zu %s konnte keine Verbindung hergestellt werden." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "Passwort _speichern" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Soll das Passwort gespeichert werden?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -870,95 +847,125 @@ "Bei der nächsten Verbindung mit %s findet die Identifizierung automatisch " "statt" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "Passwort _speichern" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Dem Raum konnte nicht beigetreten werden" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Wiederholen" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Der Raum ist voll." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Sie wurden aus dem Raum verbannt." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Dem Raum kann nur per Einladung beigetreten werden." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Sie wurden aus dem Raum entfernt." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Dem Raum kann im Moment nicht beigetreten werden. Sie können es später " +"erneut versuchen." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Nutzen Sie den +-Knopf, um einen Raum zu betreten." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Auf Wiedersehen" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Passwort %s für %s speichern?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Speichern" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s in %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Vor %d Sekunde" msgstr[1] "Vor %d Sekunden" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "Vor %d Minute" msgstr[1] "Vor %d Minuten" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "Vor %d Stunde" msgstr[1] "Vor %d Stunden" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "vor %d Tag" msgstr[1] "vor %d Tagen" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "vor %d Woche" msgstr[1] "vor %d Wochen" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "vor %d Monat" msgstr[1] "vor %d Monaten" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "In einem anderen Raum verfügbar." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Angemeldet" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Keine Ergebnisse" -#: src/userList.js:734 -msgid "All" -msgstr "Alle" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Benutzer ist angemeldet" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Benutzer %s ist nun angemeldet." @@ -972,3 +979,25 @@ #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari NickServ-Passwort für %s" + +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Polari im Hintergrund ausführen?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari wird beim Schließen weiter ausgeführt und wird auch automatisch " +#~ "beim Anmelden gestartet." + +#~ msgid "_Quit" +#~ msgstr "_Beenden" + +#~ msgid "_Run in background" +#~ msgstr "Im _Hintergrund ausführen" + +#~ msgid "All" +#~ msgstr "Alle" diff -Nru polari-3.32.0/po/el.po polari-3.34.0/po/el.po --- polari-3.32.0/po/el.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/el.po 2019-09-09 18:44:11.000000000 +0000 @@ -8,26 +8,26 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-14 00:37+0300\n" -"Last-Translator: Efstathios Iosifidis \n" +"POT-Creation-Date: 2019-05-21 16:29+0000\n" +"PO-Revision-Date: 2019-06-12 11:58+0300\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Ελληνικά <>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.9\n" +"X-Generator: Poedit 1.8.7.1\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Ένας πελάτης συνομιλίας μεταγωγής διαδικτύου για το GNOME" @@ -54,15 +54,10 @@ "για ιδιωτικές συζητήσεις, σας επιτρέπουν επίσης να απαντήσετε απευθείας, " "χωρίς να κάνετε εναλλαγή στην εφαρμογή!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Το έργο GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -168,7 +163,7 @@ msgstr "Π_ραγματικό όνομα" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "Ά_κυρο" @@ -291,7 +286,7 @@ "Επιλέξτε δωμάτια που θέλετε να συνδεθείτε. Μπορείτε να προσθέσετε " "περισσότερα δίκτυα και δωμάτια αργότερα κάνοντας κλικ στο πλήκτρο +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Συμμετοχή σε δωμάτιο συνομιλιών" @@ -328,37 +323,26 @@ msgstr "Περί" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Έξοδος" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Εκτέλεση του Polari στο παρασκήνιο;" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Το Polari θα συνεχίσει να εκτελείται όταν κλείσει και θα εκκινήσει αυτόματα " -"κατά την είσοδο." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "Έ_ξοδος" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Εκτέλεση στο παρασκήνιο" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Προσθήκη δωματίων και δικτύων" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Εμφάνιση συνδεδεμένων χρηστών" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Χωρίς σύνδεση" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Συνδεθείτε για να συζητήσετε και να λάβετε μηνύματα." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Αλλαγή ψευδωνύμου:" @@ -407,32 +391,32 @@ msgid "Start Conversation" msgstr "Έναρξη συνομιλίας" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Έναρξη πελάτη Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Εκκίνηση σε λειτουργία αποσφαλμάτωσης" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Να επιτρέπεται η εκτέλεση μαζί με μια άλλη διεργασία" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Εμφάνιση έκδοσης και έξοδος" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Αδυναμία ανοίγματος συνδέσμου" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "Αφαιρέθηκε το %s." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Ελληνική μεταφραστική ομάδα του GNOME\n" @@ -443,74 +427,74 @@ "Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n" "http://gnome.gr/" -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Μάθετε περισσότερα για το Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Αναίρεση" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Νέα μηνύματα" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Άνοιγμα συνδέσμου" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Αντιγραφή διεύθυνσης συνδέσμου" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "Ο %s τώρα είναι γνωστός ως %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "Ο %s αποσυνδέθηκε" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "Ο %s έχει εκδιωχθεί από τον %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "Ο %s έχει εκδιωχθεί" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "Ο %s έχει αποκλειστεί από τον %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "Ο %s έχει αποκλειστεί" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "Ο %s συμμετέχει" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "Ο %s αποχώρησε" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d χρήστης συμμετάσχει" msgstr[1] "%d χρήστες συμμετάσχουν" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -519,14 +503,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Χθες, %H∶%M" @@ -534,7 +518,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -543,7 +527,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -552,21 +536,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Χθες, %l∶%M %p" @@ -574,7 +558,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -583,7 +567,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -592,26 +576,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Η διεύθυνση έχει ήδη προστεθεί " -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Δε βρέθηκαν αποτελέσματα." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Ιδιότητες “%s”" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -619,7 +602,7 @@ "Το Polari αποσυνδέθηκε λόγω σφάλματος δικτύου. Παρακαλούμε, ελέγξτε αν είναι " "σωστό το πεδίο της διεύθυνσης." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -628,7 +611,7 @@ msgstr[1] "" "Επικόλληση %s γραμμών κειμένου στη δημόσια υπηρεσία επικόλλησης δεδομένων;" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -639,47 +622,47 @@ "Γίνεται αποστολή %s γραμμών κειμένου στη δημόσια υπηρεσία επικόλλησης " "δεδομένων;" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Αποστολή εικόνας στη δημόσια υπηρεσία επικόλλησης δεδομένων;" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "" "Γίνεται αποστολή της εικόνας στη δημόσια υπηρεσία επικόλλησης δεδομένων…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Αποστολή του “%s” στη δημόσια υπηρεσία επικόλλησης δεδομένων;" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Γίνεται αποστολή του “%s” στη δημόσια υπηρεσία επικόλλησης δεδομένων…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s στο #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Επικόλληση από %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Πίσω" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Ολοκληρώθηκε" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Επόμενο" @@ -773,16 +756,16 @@ msgid "Usage: %s" msgstr "Χρήση: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Γνωστές εντολές:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Χρήστες στο %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Δεν έχει οριστεί θέμα" @@ -790,82 +773,74 @@ msgid "Add Network" msgstr "Προσθήκη δικτύου" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d χρήστης" msgstr[1] "%d χρήστες" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Αποχώρηση από το δωμάτιο συνομιλιών" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Τερματισμός συνομιλίας" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Το δίκτυο %s έχει σφάλμα" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Πρόβλημα σύνδεσης" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Συνδέθηκε" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Γίνεται σύνδεση…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Χωρίς σύνδεση" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Άγνωστο" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Αδυναμία σύνδεσης στο %s με ασφαλή τρόπο." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "Το %s απαιτεί κωδικό πρόσβασης." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Αδυναμία σύνδεσης στο %s. Ο διακομιστής είναι απασχολημένος." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Αδυναμία σύνδεσης στο %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Αποθήκευση κωδικού πρόσβασης" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Να αποθηκευτεί ο κωδικός πρόσβασης;" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -873,95 +848,125 @@ "Η ταυτοποίηση θα εκτελεστεί αυτόματα την επόμενη φορά που θα συνδεθείτε στο " "%s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Αποθήκευση κωδικού πρόσβασης" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Αποτυχία σύνδεσης στο δωμάτιο." + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "Προσπάθεια _ξανά" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Το δωμάτιο είναι πλήρες." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Έχετε αποκλειστεί από το δωμάτιο." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Το δωμάτιο είναι μόνο με πρόσκληση." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Έχετε εκδιωχθεί από το δωμάτιο." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Δεν είναι δυνατό να συνδεθείτε τώρα στο δωμάτιο, αλλά μπορείτε να δοκιμάσετε " +"αργότερα." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Συνδεθείτε σε ένα δωμάτιο χρησιμοποιώντας το κουμπί +" -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Αποχαιρετισμός" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Αποθήκευση κωδικού πρόσβασης του %s για το %s;" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Αποθήκευση" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s στο %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d δευτερόλεπτο πριν" msgstr[1] "%d δευτερόλεπτα πριν" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d λεπτό πριν" msgstr[1] "%d λεπτά πριν" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d ώρα πριν" msgstr[1] "%d ώρες πριν" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d ημέρα πριν" msgstr[1] "%d ημέρες πριν" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d εβδομάδα πριν" msgstr[1] "%d εβδομάδες πριν" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d μήνα πριν" msgstr[1] "%d μήνες πριν" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Διαθέσιμος σε άλλο δωμάτιο." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Σε σύνδεση" -#: src/userList.js:562 -msgid "No results" -msgstr "Δε βρέθηκαν αποτελέσματα" - -#: src/userList.js:734 -msgid "All" -msgstr "Όλα" +#: src/userList.js:617 +msgid "No Results" +msgstr "Κανένα αποτέλεσμα" -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Ο χρήστης είναι συνδεδεμένος" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Ο χρήστης %s είναι τώρα σε σύνδεση." @@ -976,6 +981,28 @@ msgid "Polari NickServ password for %s" msgstr "Κωδικός πρόσβασης διακομιστή NickServ για το %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Εκτέλεση του Polari στο παρασκήνιο;" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Το Polari θα συνεχίσει να εκτελείται όταν κλείσει και θα εκκινήσει " +#~ "αυτόματα κατά την είσοδο." + +#~ msgid "_Quit" +#~ msgstr "Έ_ξοδος" + +#~ msgid "_Run in background" +#~ msgstr "_Εκτέλεση στο παρασκήνιο" + +#~ msgid "All" +#~ msgstr "Όλα" + #~ msgid "Message" #~ msgstr "Μήνυμα" @@ -1060,9 +1087,6 @@ #~ msgid "Try again" #~ msgstr "Προσπαθήστε ξανά" -#~ msgid "The server is busy." -#~ msgstr "Ο διακομιστής είναι απασχολημένος." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Αποτυχία σύνδεσης για άγνωστο λόγο." diff -Nru polari-3.32.0/po/en_GB.po polari-3.34.0/po/en_GB.po --- polari-3.32.0/po/en_GB.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/en_GB.po 2019-09-09 18:44:11.000000000 +0000 @@ -1,32 +1,33 @@ # British English translation for polari. # Copyright (C) 2014 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. -# Bruce Cowan , 2014, 2017, 2018. +# Zander Brown , 2019. +# Bruce Cowan , 2014-2019. # msgid "" msgstr "" "Project-Id-Version: polari gnome-3-14\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-17 17:26+0000\n" -"PO-Revision-Date: 2018-08-19 16:46+0100\n" +"POT-Creation-Date: 2019-08-25 10:20+0000\n" +"PO-Revision-Date: 2019-08-30 19:25+0100\n" "Last-Translator: Bruce Cowan \n" -"Language-Team: British English \n" +"Language-Team: English - United Kingdom \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.7\n" +"X-Generator: Gtranslator 3.32.1\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:158 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:814 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:847 msgid "An Internet Relay Chat Client for GNOME" msgstr "An Internet Relay Chat Client for GNOME" @@ -52,15 +53,10 @@ "miss an important message — for private conversations, they even allow you " "to reply instantly without switching back to the application!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "The GNOME Project" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -74,7 +70,7 @@ msgid "List of channels to restore on startup" msgstr "List of channels to restore on startup" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Run in Background" @@ -165,7 +161,7 @@ msgstr "_Real Name" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:81 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Cancel" @@ -287,7 +283,7 @@ "Select rooms you want to connect to. You can add more networks and rooms " "later, by clicking the + button." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Join Chat Room" @@ -311,49 +307,38 @@ msgid "_Custom Network" msgstr "_Custom Network" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Run Polari in the Background?" +#: data/resources/main-window.ui:22 +msgid "Keyboard Shortcuts" +msgstr "Keyboard Shortcuts" -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari will continue to run when closed and will be automatically started on " -"login." +#: data/resources/main-window.ui:26 +msgid "Help" +msgstr "Help" -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Quit" +#: data/resources/main-window.ui:30 +msgid "About" +msgstr "About" -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Run in background" +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 +msgid "Quit" +msgstr "Quit" #: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Add rooms and networks" -#: data/resources/main-window.ui:175 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Show connected users" -#: data/resources/menus.ui:12 -msgid "Keyboard Shortcuts" -msgstr "Keyboard Shortcuts" - -#: data/resources/menus.ui:16 -msgid "Help" -msgstr "Help" - -#: data/resources/menus.ui:20 -msgid "About" -msgstr "About" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Offline" -#: data/resources/menus.ui:24 -msgid "Quit" -msgstr "Quit" +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Go online to chat and receive messages." #: data/resources/nick-popover.ui:16 msgid "Change nickname:" @@ -419,27 +404,28 @@ msgid "Print version and exit" msgstr "Print version and exit" -#: src/application.js:422 src/utils.js:183 +#: src/application.js:479 src/utils.js:185 msgid "Failed to open link" msgstr "Failed to open link" -#: src/application.js:709 +#: src/application.js:770 #, javascript-format msgid "%s removed." msgstr "%s removed." -#: src/application.js:813 +#: src/application.js:846 msgid "translator-credits" msgstr "" "Bruce Cowan \n" "David King \n" -"Waldo Luís Ribeiro " +"Waldo Luís Ribeiro \n" +"Zander Brown " -#: src/application.js:819 +#: src/application.js:852 msgid "Learn more about Polari" msgstr "Learn more about Polari" -#: src/appNotifications.js:80 +#: src/appNotifications.js:85 msgid "Undo" msgstr "Undo" @@ -447,62 +433,62 @@ msgid "New Messages" msgstr "New Messages" -#: src/chatView.js:765 +#: src/chatView.js:785 msgid "Open Link" msgstr "Open Link" -#: src/chatView.js:771 +#: src/chatView.js:791 msgid "Copy Link Address" msgstr "Copy Link Address" -#: src/chatView.js:939 +#: src/chatView.js:963 #, javascript-format msgid "%s is now known as %s" msgstr "%s is now known as %s" -#: src/chatView.js:944 +#: src/chatView.js:968 #, javascript-format msgid "%s has disconnected" msgstr "%s has disconnected" -#: src/chatView.js:952 +#: src/chatView.js:977 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s has been kicked by %s" -#: src/chatView.js:954 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked" msgstr "%s has been kicked" -#: src/chatView.js:960 +#: src/chatView.js:985 #, javascript-format msgid "%s has been banned by %s" msgstr "%s has been banned by %s" -#: src/chatView.js:962 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned" msgstr "%s has been banned" -#: src/chatView.js:967 +#: src/chatView.js:991 #, javascript-format msgid "%s joined" msgstr "%s joined" -#: src/chatView.js:972 +#: src/chatView.js:996 #, javascript-format msgid "%s left" msgstr "%s left" -#: src/chatView.js:1065 +#: src/chatView.js:1093 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d user joined" msgstr[1] "%d users joined" -#: src/chatView.js:1068 +#: src/chatView.js:1100 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -511,14 +497,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1135 +#: src/chatView.js:1172 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1140 +#: src/chatView.js:1177 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Yesterday, %H∶%M" @@ -526,7 +512,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1182 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -535,7 +521,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1188 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -544,21 +530,22 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1157 +#: src/chatView.js:1194 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H:%M" +#. eslint-disable-next-line no-lonely-if #. today #. Translators: Time in 12h format -#: src/chatView.js:1162 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1167 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Yesterday, %l∶%M %p" @@ -566,7 +553,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -575,7 +562,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -584,26 +571,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1184 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Already added" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "No results." -#. Translators: %s is a connection name -#: src/connections.js:486 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” Properties" -#: src/connections.js:530 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -611,60 +597,60 @@ "Polari disconnected due to a network error. Please check if the address " "field is correct." -#: src/entryArea.js:363 +#: src/entryArea.js:369 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Paste %s line of text to public paste service?" msgstr[1] "Paste %s lines of text to public paste service?" -#: src/entryArea.js:367 +#: src/entryArea.js:373 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Uploading %s line of text to public paste service…" msgstr[1] "Uploading %s lines of text to public paste service…" -#: src/entryArea.js:374 +#: src/entryArea.js:380 msgid "Upload image to public paste service?" msgstr "Upload image to public paste service?" -#: src/entryArea.js:375 +#: src/entryArea.js:381 msgid "Uploading image to public paste service…" msgstr "Uploading image to public paste service…" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:403 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Upload “%s” to public paste service?" #. Translators: %s is a filename -#: src/entryArea.js:398 +#: src/entryArea.js:405 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Uploading “%s” to public paste service…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:407 +#: src/entryArea.js:414 #, javascript-format msgid "%s in #%s" msgstr "%s in #%s" -#: src/entryArea.js:409 +#: src/entryArea.js:416 #, javascript-format msgid "Paste from %s" msgstr "Paste from %s" -#: src/initialSetup.js:81 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Back" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Done" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Next" @@ -677,13 +663,13 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:21 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/CLOSE [] [] — closes , by default the current one" -#: src/ircParser.js:25 +#: src/ircParser.js:22 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -691,265 +677,308 @@ "/HELP [] — displays help for , or a list of available " "commands" -#: src/ircParser.js:26 +#: src/ircParser.js:23 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — invites to , or the current one" -#: src/ircParser.js:27 +#: src/ircParser.js:24 msgid "/JOIN — joins " msgstr "/JOIN — joins " -#: src/ircParser.js:28 +#: src/ircParser.js:25 msgid "/KICK — kicks from current channel" msgstr "/KICK — kicks from current channel" -#: src/ircParser.js:29 +#: src/ircParser.js:26 msgid "/ME — sends to the current channel" msgstr "/ME — sends to the current channel" -#: src/ircParser.js:30 +#: src/ircParser.js:27 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — sends a private message to " -#: src/ircParser.js:31 +#: src/ircParser.js:28 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — lists users on the current channel" -#: src/ircParser.js:32 +#: src/ircParser.js:29 msgid "/NICK — sets your nick to " msgstr "/NICK — sets your nick to " -#: src/ircParser.js:33 +#: src/ircParser.js:30 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [] [] — leaves , by default the current one" -#: src/ircParser.js:34 +#: src/ircParser.js:31 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY — opens a private conversation with " -#: src/ircParser.js:35 +#: src/ircParser.js:32 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — disconnects from the current server" -#: src/ircParser.js:36 +#: src/ircParser.js:33 msgid "/SAY — sends to the current room/contact" msgstr "/SAY — sends to the current room/contact" -#: src/ircParser.js:37 +#: src/ircParser.js:34 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC — sets the topic to , or shows the current one" -#: src/ircParser.js:40 +#: src/ircParser.js:37 msgid "Unknown command — try /HELP for a list of available commands" msgstr "Unknown command — try /HELP for a list of available commands" -#: src/ircParser.js:54 +#: src/ircParser.js:51 #, javascript-format msgid "Usage: %s" msgstr "Usage: %s" -#: src/ircParser.js:90 +#: src/ircParser.js:88 msgid "Known commands:" msgstr "Known commands:" -#: src/ircParser.js:189 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "Users on %s:" -#: src/ircParser.js:268 +#: src/ircParser.js:269 msgid "No topic set" msgstr "No topic set" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Add Network" -#: src/mainWindow.js:383 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d user" msgstr[1] "%d users" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Leave chatroom" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "End conversation" msgstr "End conversation" -#: src/roomList.js:291 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Network %s has an error" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:362 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:369 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Connection Problem" -#: src/roomList.js:386 +#: src/roomList.js:396 msgid "Connected" msgstr "Connected" -#: src/roomList.js:388 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Connecting…" -#: src/roomList.js:390 src/userList.js:412 -msgid "Offline" -msgstr "Offline" - -#: src/roomList.js:392 +#: src/roomList.js:402 msgid "Unknown" msgstr "Unknown" -#: src/roomList.js:412 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Could not connect to %s in a safe way." -#: src/roomList.js:415 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s requires a password." -#: src/roomList.js:421 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Could not connect to %s. The server is busy." -#: src/roomList.js:424 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Could not connect to %s." -#: src/roomStack.js:115 -msgid "_Save Password" -msgstr "_Save Password" - -#: src/roomStack.js:124 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Should the password be saved?" -#: src/roomStack.js:132 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:651 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "Identification will happen automatically the next time you connect to %s" -#: src/roomStack.js:161 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Save Password" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Failed to join the room" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Retry" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "The room is full." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "You have been banned from the room." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "The room is invite-only." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "You have been kicked from the room." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "It is not possible to join the room now, but you can retry later." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Join a room using the + button." -#: src/telepathyClient.js:412 +#: src/telepathyClient.js:464 msgid "Good Bye" msgstr "Good Bye" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:650 #, javascript-format msgid "Save %s password for %s?" msgstr "Save %s password for %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:654 msgid "Save" msgstr "Save" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:686 #, javascript-format msgid "%s in %s" msgstr "%s in %s" -#: src/userList.js:227 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d second ago" msgstr[1] "%d seconds ago" -#: src/userList.js:232 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minute ago" msgstr[1] "%d minutes ago" -#: src/userList.js:237 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d hour ago" msgstr[1] "%d hours ago" -#: src/userList.js:242 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d day ago" msgstr[1] "%d days ago" -#: src/userList.js:247 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d week ago" msgstr[1] "%d weeks ago" -#: src/userList.js:251 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d month ago" msgstr[1] "%d months ago" -#: src/userList.js:408 +#: src/userList.js:452 msgid "Available in another room." msgstr "Available in another room." -#: src/userList.js:410 +#: src/userList.js:454 msgid "Online" msgstr "Online" -#: src/userList.js:555 -msgid "No results" -msgstr "No results" +#: src/userList.js:617 +msgid "No Results" +msgstr "No Results" -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "User is online" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "User %s is now online." -#: src/utils.js:105 +#: src/utils.js:104 #, javascript-format msgid "Polari server password for %s" msgstr "Polari server password for %s" -#: src/utils.js:110 +#: src/utils.js:109 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari NickServ password for %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Run Polari in the Background?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." + +#~ msgid "_Quit" +#~ msgstr "_Quit" + +#~ msgid "_Run in background" +#~ msgstr "_Run in background" + #~ msgid "All" #~ msgstr "All" diff -Nru polari-3.32.0/po/eo.po polari-3.34.0/po/eo.po --- polari-3.32.0/po/eo.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/eo.po 2019-09-09 18:44:11.000000000 +0000 @@ -9,26 +9,27 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2019-03-02 10:57+0000\n" -"PO-Revision-Date: 2019-03-06 21:43+0100\n" -"Last-Translator: Kristjan SCHMIDT \n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-07-18 12:00+0200\n" +"Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Gtranslator 3.30.1\n" +"X-Generator: Poedit 2.2.1\n" "X-DamnedLies-Scope: partial\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polario" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:829 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "IRC-a kliento por GNOME" @@ -58,11 +59,6 @@ msgid "The GNOME Project" msgstr "La GNOME-projekto" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -77,12 +73,10 @@ msgstr "Listo de restaŭrotaj kanaloj je startigo" #: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 -#| msgid "_Run in background" msgid "Run in Background" msgstr "Ruli fone" #: data/org.gnome.Polari.gschema.xml:12 -#, fuzzy msgid "Keep running in background when closed." msgstr "Daŭrigi ruladon en fono post fermo." @@ -106,42 +100,6 @@ msgid "Last active channel" msgstr "Lasta aktiva kanalo" -#: data/org.gnome.Polari.gschema.xml:27 -msgid "Last active (selected) channel" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:34 -msgid "Identify botname" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:35 -msgid "Nickname of the bot to identify with" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:39 -msgid "Identify command" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:40 -msgid "Command used to identify with bot" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:44 -msgid "Identify username" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:45 -msgid "Username to use in identify command" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:49 -msgid "Identify username supported" -msgstr "" - -#: data/org.gnome.Polari.gschema.xml:50 -msgid "Whether the identify command is known to support the username parameter" -msgstr "" - #: data/resources/connection-details.ui:13 msgid "_Server Address" msgstr "_Servila adreso" @@ -168,7 +126,7 @@ msgstr "_Realnomo" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Rezigni" @@ -257,7 +215,7 @@ #: data/resources/help-overlay.ui:110 msgctxt "shortcut window" msgid "First – Ninth Room" -msgstr "Unua — naŭa babilejo" +msgstr "Unua – naŭa babilejo" #: data/resources/initial-setup-window.ui:10 msgid "Polari Setup" @@ -289,7 +247,7 @@ "Elektu babilejojn al kiuj vi ŝatus konekti. Vi povas aldoni pli da retoj kaj " "babilejoj poste, per klaki la + butonon." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:234 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Aliĝi al retbabilejo" @@ -315,7 +273,7 @@ #: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" -msgstr "Klavkominoj" +msgstr "Klavkombinoj" #: data/resources/main-window.ui:26 msgid "Help" @@ -326,6 +284,7 @@ msgstr "Pri" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Forlasi" @@ -337,6 +296,14 @@ msgid "Show connected users" msgstr "Montri konektitajn uzantojn" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Nekonektita" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Enretiĝu por babili kaj ricevi mesaĝojn." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Ŝanĝi kromnomon:" @@ -401,23 +368,24 @@ msgid "Print version and exit" msgstr "Presi version kaj ĉesi" -#: src/application.js:462 src/utils.js:186 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Malsukcesis malfermi ligilon" -#: src/application.js:753 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s forigita." -#: src/application.js:828 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Daniel PUENTES\n" "Kristjan SCHMIDT\n" -"Carmen Bianca BAKKER " +"Carmen Bianca BAKKER \n" +"Tirifto" -#: src/application.js:834 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Lernu pli pri Polario" @@ -429,62 +397,62 @@ msgid "New Messages" msgstr "Novaj mesaĝoj" -#: src/chatView.js:792 +#: src/chatView.js:786 msgid "Open Link" msgstr "Malfermi ligilon" -#: src/chatView.js:798 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopii ligilan adreson" -#: src/chatView.js:971 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s estas nun konata kiel %s" -#: src/chatView.js:976 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s malkonektiĝis" -#: src/chatView.js:985 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s estas forpelita de %s" -#: src/chatView.js:986 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s estas forpelita" -#: src/chatView.js:993 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s estis forbarita de %s" -#: src/chatView.js:994 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s estis forbarita" -#: src/chatView.js:999 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s aliĝis" -#: src/chatView.js:1004 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s eliris" -#: src/chatView.js:1097 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d uzanto aliĝis" msgstr[1] "%d uzantoj aliĝis" -#: src/chatView.js:1100 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -493,14 +461,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1167 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1172 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Hieraŭ, %H∶%M" @@ -508,7 +476,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1177 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -517,7 +485,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1183 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%-d-a de %B, %H∶%M" @@ -526,21 +494,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1189 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%-d-a de %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1194 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1199 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Hieraŭ, %l∶%M %p" @@ -548,7 +516,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1204 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -557,7 +525,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1210 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%-d-a de %B, %l∶%M %p" @@ -566,85 +534,85 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1216 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%-d-a de %B %Y, %l∶%M %p" -#: src/connections.js:54 +#: src/connections.js:42 msgid "Already added" msgstr "Jam aldonita" -#: src/connections.js:117 +#: src/connections.js:104 msgid "No results." msgstr "Neniu rezulto." -#: src/connections.js:519 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Ecoj de “%s”" -#: src/connections.js:563 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." msgstr "" "Polario malkonektis pro reteraro. Bonvolu kontroli ĉu la adreso ĝustas." -#: src/entryArea.js:372 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Ĉu alglui %s linion da teksto al publika glua servo?" msgstr[1] "Ĉu alglui %s liniojn da teksto al publika glua servo?" -#: src/entryArea.js:376 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Alŝutante %s linion da teksto al publika glua servo…" msgstr[1] "Alŝutante %s liniojn da teksto al publika glua servo…" -#: src/entryArea.js:383 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Ĉu alŝuti bildon al publika glua servo?" -#: src/entryArea.js:384 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Alŝutante bildon al publika glua servo…" #. Translators: %s is a filename -#: src/entryArea.js:405 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Ĉu alŝuti “%s” al publika glua servo?" #. Translators: %s is a filename -#: src/entryArea.js:407 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Alŝutante “%s” al publika glua servo…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:416 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s en #%s" -#: src/entryArea.js:418 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Alglui el %s" -#: src/initialSetup.js:84 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Reen" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Farita" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Sekva" @@ -730,189 +698,213 @@ msgid "Usage: %s" msgstr "Uzado: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Konataj komandoj:" -#: src/ircParser.js:190 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Uzantoj en %s:" -#: src/ircParser.js:270 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Neniu temo difinita" -#: src/joinDialog.js:234 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Aldoni reton" -#: src/mainWindow.js:361 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d uzanto" msgstr[1] "%d uzantoj" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Eliri retbabilejon" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "End conversation" msgstr "Fini interparolon" -#: src/roomList.js:299 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Reto %s havas eraron" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:370 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:377 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Konekta problemo" -#: src/roomList.js:394 +#: src/roomList.js:396 msgid "Connected" msgstr "Konektita" -#: src/roomList.js:396 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Konektante…" -#: src/roomList.js:398 src/userList.js:426 -msgid "Offline" -msgstr "Nekonektita" - -#: src/roomList.js:400 +#: src/roomList.js:402 msgid "Unknown" msgstr "Nekonata" -#: src/roomList.js:420 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Ne povis konekti al %s sekure." -#: src/roomList.js:423 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s bezonas pasvorton." -#: src/roomList.js:429 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Ne povis konekti al %s. La servilo estas okupata." -#: src/roomList.js:432 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Ne povis konekti al %s." -#: src/roomStack.js:123 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "Ĉu konservi la pasvorton?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "Identigo estos aŭtomate farita kiam vi venonte konektas al %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "_Konservi pasvorton" -#: src/roomStack.js:133 -msgid "Should the password be saved?" -msgstr "Ĉu konservi la pasvorton?" +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Malsukcesis aliĝi al ĉambro" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Reprovi" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "La ĉambro estas plena." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Oni vin forbaris de la ĉambro." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "La ĉambro estas aliĝebla nur per invito." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Oni vin forpelis de la ĉambro." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Ne eblas aliĝi al la ĉambro nun, sed vi povas reprovi poste." -#: src/roomStack.js:180 +#: src/roomStack.js:209 msgid "Join a room using the + button." -msgstr "Aliĝi al babilejo per uzi la butonon +." +msgstr "Aliĝi al babilejo per la butono +." -#: src/telepathyClient.js:418 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Ĝis la revido" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:598 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Ĉu konservi %s pasvorton por %s?" -#: src/telepathyClient.js:599 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "Identigo estos aŭtomate farita kiam vi venonte konektas al %s" - -#: src/telepathyClient.js:602 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Konservi" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:625 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s en %s" -#: src/userList.js:237 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Antaŭ %d sekundo" msgstr[1] "Antaŭ %d sekundoj" -#: src/userList.js:242 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "Antaŭ %d minuto" msgstr[1] "Antaŭ %d minutoj" -#: src/userList.js:247 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "Antaŭ %d horo" msgstr[1] "Antaŭ %d horoj" -#: src/userList.js:252 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "Antaŭ %d tago" msgstr[1] "Antaŭ %d tagoj" -#: src/userList.js:257 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "Antau %d semajno" msgstr[1] "Antau %d semajnoj" -#: src/userList.js:261 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "Antaŭ %d monato" msgstr[1] "Antaŭ %d monatoj" -#: src/userList.js:422 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponebla en alia babilejo." -#: src/userList.js:424 +#: src/userList.js:454 msgid "Online" msgstr "Enreta" -#: src/userList.js:582 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Neniu rezulto" -#: src/userTracker.js:315 +#: src/userTracker.js:312 msgid "User is online" msgstr "Uzanto estas enreta" -#: src/userTracker.js:316 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Uzanto %s estas nun enreta." @@ -925,7 +917,10 @@ #: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" -msgstr "Polaria NickServ pasvorto por %s" +msgstr "Polaria NickServ-pasvorto por %s" + +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" #~ msgid "Run Polari in the Background?" #~ msgstr "Ĉu ruli Polarion fone?" diff -Nru polari-3.32.0/po/es.po polari-3.34.0/po/es.po --- polari-3.32.0/po/es.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/es.po 2019-09-09 18:44:11.000000000 +0000 @@ -4,14 +4,14 @@ # FIRST AUTHOR , YEAR. # # Adrian Perez Dominguez , 2016. -# Daniel Mustieles , 2013-2018, 2018. +# Daniel Mustieles , 2013-2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-07-27 13:18+0200\n" +"POT-Creation-Date: 2019-05-21 16:29+0000\n" +"PO-Revision-Date: 2019-06-10 15:17+0200\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: es \n" "Language: es\n" @@ -19,16 +19,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Gtranslator 2.91.7\n" +"X-Generator: Gtranslator 3.32.0\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un cliente de IRC para GNOME" @@ -54,15 +54,10 @@ "un mensaje importante; en conversaciones privadas, incluso le permiten " "contestar inmediatamente sin tener que volver a la aplicación." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "El Proyecto GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -167,7 +162,7 @@ msgstr "Nombre _real" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Cancelar" @@ -290,7 +285,7 @@ "Seleccione las salas a las que se quiere conectar. Puede añadir más redes y " "salas posteriormente, pulsando el botón +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Unirse a la sala de chat" @@ -327,37 +322,26 @@ msgstr "Acerca de" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Salir" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "¿Ejecutar Polari en segundo plano?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari se seguiré ejecutando cuando lo cierre, y se iniciará automáticamente " -"al iniciar la sesión." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Salir" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Ejecutar en segundo plano" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Añadir salas y redes" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Mostrar usuarios conectados" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Desconectado" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Conectarse para chatear y recibir mensajes." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Cambiar alias:" @@ -406,103 +390,103 @@ msgid "Start Conversation" msgstr "Iniciar conversación" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Iniciar el cliente de Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Iniciar en modo de depuración" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Permitir ejecutar junto con otra instancia" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Mostrar el número de versión y salir" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Falló al abrir el enlace" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s eliminado." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "Daniel Mustieles , 2013 - 2016" -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Saber más acerca de Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Deshacer" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Mensajes nuevos" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Abrir enlace" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copiar la dirección del enlace" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s ahora se llama %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s se ha desconectado" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s ha sido expulsado por %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s ha sido expulsado" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s ha sido bloqueado por %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s ha sido bloqueado" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s ha entrado" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s se ha ido" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "ha entrado %d usuario" msgstr[1] "han entrado %d usuarios" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -511,14 +495,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Ayer a las %H:%M" @@ -526,7 +510,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A a las %H:%M" @@ -535,7 +519,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d de %B a las %H:%M" @@ -544,21 +528,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d de %B de %Y a las %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Ayer a las %l∶%M %p" @@ -566,7 +550,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A a las %l∶%M %p" @@ -575,7 +559,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d de %B a las %H:%M" @@ -584,26 +568,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d de %B de %Y a las %H:%M" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Ya añadido" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "No se encontraron resultados." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Propiedades de «%s»" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -611,60 +594,60 @@ "Polari se ha desconectado por un error de la red. Compruebe si el campo de " "dirección es correcto." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "¿Pegar %s línea de texto en un servicio de pegado público?" msgstr[1] "¿Pegar %s líneas de texto en un servicio de pegado público?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Subiendo %s línea de texto a un servicio de pegado público…" msgstr[1] "Subiendo %s líneas de texto a un servicio de pegado público…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "¿Subir imagen al servicio de pegado público?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Subiendo imagen a un servicio de pegado público…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "¿Subir «%s» al servicio de pegado público?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Subiendo «%s» a un servicio de pegado público…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s en #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Pegar desde %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "A_trás" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Hecho" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "Siguie_nte" @@ -756,16 +739,16 @@ msgid "Usage: %s" msgstr "Uso: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Comandos conocidos:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Usuarios en %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "No hay ningún tema establecido" @@ -773,177 +756,200 @@ msgid "Add Network" msgstr "Añadir red" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d usuario" msgstr[1] "%d usuarios" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Salir de la sala de chat" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Terminar conversación" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "La red %s tiene un error" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problema de conexión" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Conectado" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Conectando…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Desconectado" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Desconocido" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "No se pudo conectar a %s de manera segura." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s necesita una contraseña." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "No se pudo conectar a %s. El servidor está ocupado" -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "No se pudo conectar a %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Guardar contraseña" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "¿Se debe guardar la contraseña?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "La identificación se hará automáticamente la próxima vez que se conecte a %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Guardar contraseña" + +#: src/roomStack.js:139 +#| msgid "Available in another room." +msgid "Failed to join the room" +msgstr "Falló al unirse a la sala" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Reintentar" + +#: src/roomStack.js:165 +#| msgid "The server is busy." +msgid "The room is full." +msgstr "La sala está llena." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Se le ha bloqueado en la sala." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "La sala es sólo para invitados." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Se ha expulsado de la sala." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"No posible unirse a la sala ahora, pero puede volver a intentarlo más tarde." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Únase a una sala pulsando el botón +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Adiós" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "¿Guardar contraseña %s para %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Guardar" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s en %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Hace %d segundo" msgstr[1] "Hace %d segundos" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "Hace %d minuto" msgstr[1] "Hace %d minutos" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "Hace %d hora" msgstr[1] "Hace %d horas" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "Hace %d día" msgstr[1] "Hace %d días" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "Hace %d semana" msgstr[1] "Hace %d semanas" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "Hace %d mes" msgstr[1] "Hace %d meses" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponible en otra sala" -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "En línea" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "No hay resultados" -#: src/userList.js:734 -msgid "All" -msgstr "Todos" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "El usuario está conectado" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "El usuario %s está ahora conectado." @@ -958,6 +964,28 @@ msgid "Polari NickServ password for %s" msgstr "Contraseña del NickServ de Polari para %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "¿Ejecutar Polari en segundo plano?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari se seguiré ejecutando cuando lo cierre, y se iniciará " +#~ "automáticamente al iniciar la sesión." + +#~ msgid "_Quit" +#~ msgstr "_Salir" + +#~ msgid "_Run in background" +#~ msgstr "_Ejecutar en segundo plano" + +#~ msgid "All" +#~ msgstr "Todos" + #~ msgid "Message" #~ msgstr "Mensaje" @@ -1048,9 +1076,6 @@ #~ msgid "Try again" #~ msgstr "Intentarlo de nuevo" -#~ msgid "The server is busy." -#~ msgstr "El servidor está ocupado" - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Falló al conectar debido a una razón desconocida." diff -Nru polari-3.32.0/po/eu.po polari-3.34.0/po/eu.po --- polari-3.32.0/po/eu.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/eu.po 2019-09-09 18:44:11.000000000 +0000 @@ -2,32 +2,30 @@ # Copyright (C) 2013 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # -# # Iñaki Larrañaga Murgoitio , 2014, 2015, 2016, 2017. +# Asier Sarasua Garmendia , 2019. +# msgid "" -msgstr "" -"Project-Id-Version: polari master\n" -"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" -"product=polari&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2017-08-13 21:20+0000\n" -"PO-Revision-Date: 2017-08-27 17:40+0200\n" -"Last-Translator: Iñaki Larrañaga Murgoitio \n" +msgstr "Project-Id-Version: polari master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-07-20 10:00+0100\n" +"Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 1.5\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:169 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:758 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "IRCaren (Interneteko berriketa-zerbitzua) bezero bat GNOMEntzako" @@ -36,10 +34,7 @@ "A simple Internet Relay Chat (IRC) client that is designed to integrate " "seamlessly with GNOME; it features a simple and beautiful interface which " "allows you to focus on your conversations." -msgstr "" -"IRCrako (Interneteko berriketa-zerbitzua) bezero xume bat GNOMErekin " -"bateratuta egoteko diseinatuta. Interfaze xume eta dotorea du zu " -"berriketetan zentra zaitezen." +msgstr "IRCrako (Interneteko berriketa-zerbitzua) bezero xume bat GNOMErekin bateratuta egoteko diseinatuta. Interfaze xume eta dotorea du zu berriketetan zentra zaitezen." #: data/appdata/org.gnome.Polari.appdata.xml.in:15 msgid "" @@ -47,17 +42,11 @@ "private one-to-one conversations. Notifications make sure that you never " "miss an important message — for private conversations, they even allow you " "to reply instantly without switching back to the application!" -msgstr "" -"Polari erabil dezakezu jendearekin publikoki berriketan egiteko kanal " -"batean, eta banan banako berriketa pribatuak edukitzeko. Jakinarazpenek mezu " -"garrantzitsurik ez dituzula inoiz galduko ziurtatzen dute — berriketa " -"pribatuentzako, gainera berehala erantzutea baimentzen dizute aplikaziora " -"itzuli gabe." - -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" +msgstr "Polari erabil dezakezu jendearekin publikoki berriketan egiteko kanal batean, eta banan banako berriketa pribatuak edukitzeko. Jakinarazpenek mezu garrantzitsurik ez dituzula inoiz galduko ziurtatzen dute — berriketa pribatuentzako, gainera berehala erantzutea baimentzen dizute aplikaziora itzuli gabe." + +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 +msgid "The GNOME Project" +msgstr "GNOME proiektua" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 @@ -72,7 +61,7 @@ msgid "List of channels to restore on startup" msgstr "Kanalen zerrenda abioan leheneratzeko" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Exekutatu atzeko planoan" @@ -113,7 +102,6 @@ msgstr "Bot-aren goitizena horrekin identifikatzeko" #: data/org.gnome.Polari.gschema.xml:39 -#| msgid "Identify botname" msgid "Identify command" msgstr "Identifikazioaren komandoa" @@ -130,14 +118,12 @@ msgstr "Erabiltzaile-izena \"identify\" komandoan erabiltzeko" #: data/org.gnome.Polari.gschema.xml:49 -#| msgid "Identify username" msgid "Identify username supported" msgstr "Identifikazioaren erabiltzaile-izena onartuta" #: data/org.gnome.Polari.gschema.xml:50 msgid "Whether the identify command is known to support the username parameter" -msgstr "" -"\"identify\" komandoak erabiltzaile-izenaren parametroa onartzen duen edo ez" +msgstr "\"identify\" komandoak erabiltzaile-izenaren parametroa onartzen duen edo ez" #: data/resources/connection-details.ui:13 msgid "_Server Address" @@ -164,8 +150,8 @@ msgid "_Real Name" msgstr "_Benetako izena" -#: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:149 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 +#: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Utzi" @@ -173,19 +159,11 @@ msgid "_Apply" msgstr "_Aplikatu" -#: data/resources/entry-area.ui:16 -msgid "Change nickname:" -msgstr "Aldatu _goitizena:" - -#: data/resources/entry-area.ui:27 -msgid "_Change" -msgstr "_Aldatu" - -#: data/resources/entry-area.ui:78 +#: data/resources/entry-area.ui:38 msgid "Change nickname" msgstr "Aldatu goitizena" -#: data/resources/entry-area.ui:159 +#: data/resources/entry-area.ui:119 msgid "_Paste" msgstr "_Itsatsi" @@ -265,14 +243,12 @@ msgstr "Aurrenekoa – 9. gela" #: data/resources/initial-setup-window.ui:10 -#| msgid "Polari" msgid "Polari Setup" msgstr "Polari-ren konfigurazioa" #: data/resources/initial-setup-window.ui:60 -#| msgid "Connected" msgid "Not connected" -msgstr "Konektatu gabe" +msgstr "Ez dago konektatuta" #: data/resources/initial-setup-window.ui:73 msgid "Please connect to the internet to continue the setup." @@ -280,26 +256,21 @@ #: data/resources/initial-setup-window.ui:109 #: data/resources/initial-setup-window.ui:159 -#| msgid "Learn more about Polari" msgid "Welcome to Polari" msgstr "Ongi etorri Polari-ra" #: data/resources/initial-setup-window.ui:121 msgid "" "Polari is an easy way to chat using IRC. Select a network to get started." -msgstr "" -"IRC erabiliz berriketan egiteko erabil errazeko aplikazio bat da Polari. " -"Hautatu sare bat hasteko." +msgstr "IRC erabiliz berriketan egiteko erabil errazeko aplikazio bat da Polari. Hautatu sare bat hasteko." #: data/resources/initial-setup-window.ui:171 msgid "" "Select rooms you want to connect to. You can add more networks and rooms " "later, by clicking the + button." -msgstr "" -"Hautatu gelak, haietara konektatzeko. Sare eta gela gehiago gehi ditzakezu " -"geroago, + botoian klik eginez." +msgstr "Hautatu gelak, haietara konektatzeko. Sare eta gela gehiago gehi ditzakezu geroago, + botoian klik eginez." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:236 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Elkartu berriketa gelara" @@ -323,59 +294,64 @@ msgid "_Custom Network" msgstr "Sare _pertsonalizatua" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Exekutatu Polari atzeko planoan?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari exekutatzen jarraituko da itxitakoan, eta automatikoki abiaraziko da " -"saioa hastean." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "I_rten" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Exekutatu atzeko planoan" - -#: data/resources/main-window.ui:68 -msgid "Add rooms and networks" -msgstr "Gehitu gelak eta sareak" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Laster-teklak" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Laguntza" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Honi buruz" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Irten" -#: data/resources/room-list-header.ui:146 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Gehitu gelak eta sareak" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Erakutsi konektatutako erabiltzaileak" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Deskonektatuta" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Konektatu berriketan aritzeko eta mezuak jasotzeko." + +#: data/resources/nick-popover.ui:16 +msgid "Change nickname:" +msgstr "Aldatu _goitizena:" + +#: data/resources/nick-popover.ui:27 +msgid "_Change" +msgstr "_Aldatu" + +#: data/resources/room-list-header.ui:145 msgid "Connect" msgstr "Konektatu" -#: data/resources/room-list-header.ui:154 +#: data/resources/room-list-header.ui:152 msgid "Reconnect" msgstr "Konektatu berriro" -#: data/resources/room-list-header.ui:162 +#: data/resources/room-list-header.ui:159 +msgid "Disconnect" +msgstr "Deskonektatu" + +#: data/resources/room-list-header.ui:166 msgid "Remove" msgstr "Kendu" -#: data/resources/room-list-header.ui:170 +#: data/resources/room-list-header.ui:173 msgid "Properties" msgstr "Propietateak" @@ -396,99 +372,106 @@ msgstr "Erabiltzailea konektatzean jakinaraziko du." #: data/resources/user-details.ui:181 -#| msgid "End conversation" msgid "Start Conversation" msgstr "Hasi berriketa" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Abiarazi Telepathy bezeroa" -#: src/application.js:50 +#: src/application.js:48 +msgid "Start in debug mode" +msgstr "Abiarazi arazteko modua" + +#: src/application.js:51 +msgid "Allow running alongside another instance" +msgstr "Onartu beste instantzia batekin aldi berean exekutatzea" + +#: src/application.js:54 msgid "Print version and exit" msgstr "Erakutsi bertsioa eta irten" -#: src/application.js:380 src/utils.js:185 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Huts egin du esteka irekitzean" -#: src/application.js:657 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "\"%s\" kenduta." -#: src/application.js:757 +#: src/application.js:848 msgid "translator-credits" -msgstr "Iñaki Larrañaga Murgoitio " +msgstr "Asier Sarasua Garmendia " -#: src/application.js:763 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Ikasi gehiago Polari-ri buruz" -#: src/appNotifications.js:85 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Desegin" -#: src/chatView.js:142 +#: src/chatView.js:137 msgid "New Messages" msgstr "Mezu berriak" -#: src/chatView.js:780 +#: src/chatView.js:786 msgid "Open Link" msgstr "Ireki esteka" -#: src/chatView.js:786 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopiatu estekaren helbidea" -#: src/chatView.js:954 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" -msgstr "%s orain honela ezagutzen da: %s" +msgstr "%s orain %s izenarekin ezagutzen da" -#: src/chatView.js:959 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s deskonektatu egin da" -#: src/chatView.js:967 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s kanporatuta %s(r)engatik" -#: src/chatView.js:969 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s kanporatua izan da" -#: src/chatView.js:975 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s debekatuta %s(r)engatik" -#: src/chatView.js:977 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s debekatua izan da" -#: src/chatView.js:982 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s elkartu da" -#: src/chatView.js:987 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s irten da" -#: src/chatView.js:1080 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "Erabiltzaile %d elkartu da" msgstr[1] "%d erabiltzaile elkartu dira" -#: src/chatView.js:1083 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -497,22 +480,22 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1150 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1155 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" -msgstr "Atzo, %H∶%M" +msgstr "Atzo, %H:%M" #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1160 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -521,7 +504,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1166 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %d, %H∶%M" @@ -530,29 +513,29 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1172 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%B %d %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1177 +#: src/chatView.js:1200 msgid "%l∶%M %p" -msgstr "%l∶%M %p" +msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1182 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" -msgstr "Atzo, %l∶%M %p" +msgstr "Atzo, %I:%M %p" #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1187 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -561,7 +544,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1193 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%B %d, %l∶%M %p" @@ -570,83 +553,84 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1199 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%B %d %Y, %l∶%M %p" -#: src/connections.js:54 +#: src/connections.js:42 msgid "Already added" msgstr "Jadanik gehituta" -#. Translators: %s is a connection name -#: src/connections.js:468 +#: src/connections.js:104 +msgid "No results." +msgstr "Emaitzarik ez." + +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "'%s' - Propietateak" -#: src/connections.js:510 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." -msgstr "" -"Polari deskonektatuta sareko errore bat dela eta. Egiaztatu helbidearen " -"eremua zuzena dela." +msgstr "Polari deskonektatuta sareko errore bat dela eta. Egiaztatu helbidearen eremua zuzena dela." -#: src/entryArea.js:338 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Testuaren lerro %s itsasteko zerbitzu publikora igo?" msgstr[1] "Testuaren %s lerro itsasteko zerbitzu publikora igo?" -#: src/entryArea.js:342 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Testuaren lerro %s itsasteko zerbitzu publikora igotzen..." msgstr[1] "Testuaren %s lerro itsasteko zerbitzu publikora igotzen..." -#: src/entryArea.js:349 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Irudia itsasteko zerbitzu publikora igo?" -#: src/entryArea.js:350 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Irudia itsasteko zerbitzu publikora igotzen..." #. Translators: %s is a filename -#: src/entryArea.js:371 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "'%s' itsasteko zerbitzu publikora igo?" #. Translators: %s is a filename -#: src/entryArea.js:373 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "“%s“ itsasteko zerbitzu publikora igotzen..." #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:382 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s #%s(e)n" -#: src/entryArea.js:384 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Itsatsi %s(e)ndik" -#: src/initialSetup.js:84 +#: src/initialSetup.js:85 msgid "_Back" -msgstr "A_tzera" +msgstr "At_zera" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Eginda" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Hurrengoa" @@ -659,279 +643,319 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" -msgstr "" -"/CLOSE [] [] — ixten du, unekoa lehenetsi gisa" +msgstr "/CLOSE [] [] — ixten du, unekoa lehenetsi gisa" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" -msgstr "" -"/HELP [] — ren laguntza edo komando erabilgarrien " -"zerrenda bistaratzen du" +msgstr "/HELP [] — ren laguntza edo komando erabilgarrien zerrenda bistaratzen du" -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" -msgstr "" -"/INVITE [] — gonbidatzen du, edo " -"unekora" +msgstr "/INVITE [] — gonbidatzen du, edo unekora" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN elkartzen da" -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK uneko kanaletik kanporatzen du" -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME bidaltzen du uneko kanalera" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — bidali mezu pribatua " -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — uneko kanaleko erabiltzaileak zerrendatzen ditu" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK — zure ezizena bezala ezartzen du" -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" -msgstr "" -"/PART [] [] — uzten du, unekoa lehenetsi gisa" +msgstr "/PART [] [] — uzten du, unekoa lehenetsi gisa" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY berriketa pribatua irekitzen du" -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — uneko zerbitzaritik deskonektatzen da" -#: src/ircParser.js:36 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY bidaltzen du uneko gelara/kontaktuari" -#: src/ircParser.js:37 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC — gaia gisa ezartzen du, edo unekoa erakusten du" -#: src/ircParser.js:40 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" -msgstr "" -"Komando ezezaguna — probatu /HELP komando erabilgarrien zerrenda bistaratzeko" +msgstr "Komando ezezaguna — probatu /HELP komando erabilgarrien zerrenda bistaratzeko" -#: src/ircParser.js:56 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Erabilera: %s" -#: src/ircParser.js:92 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Komando ezagunak:" -#: src/ircParser.js:191 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Erabiltzaileak %s(e)n:" -#: src/ircParser.js:270 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Ez da gairik ezarri" -#: src/joinDialog.js:237 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Gehitu sarea" -#: src/mainWindow.js:383 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "Erabiltzaile %d" msgstr[1] "%d erabiltzaile" -#: src/roomList.js:133 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Irten berriketa-gelatik" -#: src/roomList.js:133 +#: src/roomList.js:190 msgid "End conversation" msgstr "Amaitu berriketa" -#: src/roomList.js:224 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "'%s' sareak errore bat dauka" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:281 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:288 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Konexio-arazoa" -#: src/roomList.js:304 +#: src/roomList.js:396 msgid "Connected" msgstr "Konektatuta" -#: src/roomList.js:306 +#: src/roomList.js:398 msgid "Connecting…" -msgstr "Konektatzen…" +msgstr "Konektatzen..." -#: src/roomList.js:308 src/userList.js:422 -msgid "Offline" -msgstr "Lineaz kanpo" - -#: src/roomList.js:310 +#: src/roomList.js:402 msgid "Unknown" msgstr "Ezezaguna" -#: src/roomList.js:330 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Ezin izan da \"%s\"(r)ekin modu seguruan konektatu." -#: src/roomList.js:333 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "\"%s\"(e)k pasahitza eskatzen du." -#: src/roomList.js:339 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Ezin izan da \"%s\"(r)ekin konektatu. Zerbitzaria lanpetuta dago." -#: src/roomList.js:342 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Ezin izan da \"%s\"(r)ekin konektatu." -#: src/roomStack.js:124 -msgid "_Save Password" -msgstr "_Gorde pasahitza" - -#: src/roomStack.js:133 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Pasahitza gorde behar da?" -#: src/roomStack.js:141 src/telepathyClient.js:577 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" -msgstr "" -"Identifikazioa automatikoki gertatuko da '%s'(e)ra hurrengo batean " -"konektatzen zarenean" +msgstr "Identifikazioa automatikoki gertatuko da '%s'(e)ra hurrengo batean konektatzen zarenean" -#: src/roomStack.js:172 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Gorde pasahitza" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Huts egin du gelarekin elkartzeak" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "S_aiatu berriro" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Gela beteta dago." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Gela honetan debekua ezarri dizute." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Gelara gonbidapen bidez soilik sar daiteke." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Gelatik bota egin zaituzte." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Ezin da gelarekin elkartzea orain, baina geroago saia zaitezke berriro." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Elkartu gelara + botoia erabiliz." -#: src/telepathyClient.js:402 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Agur" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:576 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Gorde '%s' pasahitza '%s' kontuarentzako?" -#: src/telepathyClient.js:580 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Gorde" -#: src/userList.js:237 +#. Translators: This is the title of the notification announcing a newly +#. received message, in the form "user-nickname in room-display-name" +#: src/telepathyClient.js:683 +#, javascript-format +msgid "%s in %s" +msgstr "%s %s gailuan" + +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Duela segundo %d" -msgstr[1] "Duela %d segundo" +msgstr[1] "orain dela %d segundo" -#: src/userList.js:242 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" -msgstr[0] "Duela minutu %d" -msgstr[1] "Duela %d minutu" +msgstr[0] "duela minutu %d" +msgstr[1] "duela %d minutu" -#: src/userList.js:247 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" -msgstr[0] "Duela ordu %d" -msgstr[1] "Duela %d ordu" +msgstr[0] "duela ordu %d" +msgstr[1] "duela %d ordu" -#: src/userList.js:252 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" -msgstr[0] "Duela egun %d" -msgstr[1] "Duela %d egun" +msgstr[0] "duela egun %d" +msgstr[1] "duela %d egun" -#: src/userList.js:257 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" -msgstr[0] "Duela aste %d" -msgstr[1] "Duela %d aste" +msgstr[0] "duela aste %d" +msgstr[1] "duela %d aste" -#: src/userList.js:261 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" -msgstr[0] "Duela hilabete %d" -msgstr[1] "Duela %d hilabete" +msgstr[0] "duela hilabete %d" +msgstr[1] "duela %d hilabete" -#: src/userList.js:418 +#: src/userList.js:452 msgid "Available in another room." msgstr "Beste gela batean erabilgarri." -#: src/userList.js:420 +#: src/userList.js:454 msgid "Online" -msgstr "Lineaz kanpo" - -#: src/userList.js:569 -msgid "No results" -msgstr "Emaitzarik ez" +msgstr "Konektatuta" -#: src/userList.js:743 -msgid "All" -msgstr "Denak" +#: src/userList.js:617 +msgid "No Results" +msgstr "Ez dago emaitzarik" -#: src/userTracker.js:315 +#: src/userTracker.js:312 msgid "User is online" msgstr "Erabiltzailea konektatuta dago" -#: src/userTracker.js:316 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "%s erabiltzailea konektatuta dago orain." -#: src/utils.js:107 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Polari zerbitzariaren pasahitza %s(r)entzako" -#: src/utils.js:112 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari NickServ-eko '%s'(r)en pasahitza" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Exekutatu Polari atzeko planoan?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari exekutatzen jarraituko da itxitakoan, eta automatikoki abiaraziko " +#~ "da saioa hastean." + +#~ msgid "_Quit" +#~ msgstr "I_rten" + +#~ msgid "_Run in background" +#~ msgstr "_Exekutatu atzeko planoan" + +#~ msgid "All" +#~ msgstr "Denak" + #~ msgid "Message" #~ msgstr "Mezua" @@ -941,9 +965,6 @@ #~ msgid "_Password" #~ msgstr "_Pasahitza" -#~ msgid "Show connections" -#~ msgstr "Erakutsi konexioak" - #~ msgid "_Description" #~ msgstr "_Azalpena" @@ -998,9 +1019,6 @@ #~ msgid "Try again" #~ msgstr "Saiatu berriro" -#~ msgid "The server is busy." -#~ msgstr "Zerbitzaria lanpetuta dago." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Konexioak huts egin du arrazoi ezezagunagatik." diff -Nru polari-3.32.0/po/fa.po polari-3.34.0/po/fa.po --- polari-3.32.0/po/fa.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/fa.po 2019-09-09 18:44:11.000000000 +0000 @@ -2,33 +2,33 @@ # Copyright (C) 2015 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. # Arash Mousavi , 2015, 2016, 2017. +# Danial Behzadi , 2018, 2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" -"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" -"product=polari&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2017-09-30 02:13+0000\n" -"PO-Revision-Date: 2017-09-30 17:57+0330\n" -"Last-Translator: Arash Mousavi \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-09-04 08:37+0000\n" +"Last-Translator: Danial Behzadi \n" "Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.2.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:169 +#: src/roomStack.js:205 msgid "Polari" msgstr "پولاری" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:758 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" -msgstr "یک کارگیر بازپخش اینترنت (IRC) برای گنوم" +msgstr "یک کارخواه بازپخش اینترنت (IRC) برای گنوم" #: data/appdata/org.gnome.Polari.appdata.xml.in:10 msgid "" @@ -36,7 +36,7 @@ "seamlessly with GNOME; it features a simple and beautiful interface which " "allows you to focus on your conversations." msgstr "" -"یک کارگیر ساده بازپخش اینترنت (IRC) که برای یکپارچگی با گنوم طراحی شده است؛ " +"یک کارخواه ساده بازپخش اینترنت (IRC) که برای یکپارچگی با گنوم طراحی شده است؛ " "شامل یک واسط ساده و زیبا است که به شما اجازه می‌دهد تا بر روی گفت‌وگوهای خود " "تمرکز کنید." @@ -49,13 +49,12 @@ msgstr "" "شما می‌توانید از پولاری برای گپ عمومی در یک کانال استفاده کنید و یا گفت‌وگوهای " "خصوصی یک-به-یک داشته باشید. اعلان باعث می‌شوند تا هیچ‌وقت یک پیام مهم را - برای " -"گفت‌وگوهای خصوصی - از دست ندهید، آنها حتی به شما اجازه می‌دهد تا بدون باز کردن " +"گفت‌وگوهای خصوصی - از دست ندهید، آنها حتی به شما اجازه می‌دهد تا بدون گشودن " "برنامه به آنها پاسخ دهید!" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 +msgid "The GNOME Project" +msgstr "پروژهٔ گنوم" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 @@ -70,7 +69,7 @@ msgid "List of channels to restore on startup" msgstr "فهرست کانال‌ها جهت بازگردانی در هنگام شروع" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "اجرا در پس‌زمینه" @@ -80,11 +79,11 @@ #: data/org.gnome.Polari.gschema.xml:16 msgid "Window size" -msgstr "اندازه پنجره" +msgstr "اندازهٔ پنجره" #: data/org.gnome.Polari.gschema.xml:17 msgid "Window size (width and height)." -msgstr "اندازه پنجره (عرض و ارتقاع)." +msgstr "اندازهٔ پنجره (پهنا و بلندا)" #: data/org.gnome.Polari.gschema.xml:21 msgid "Window maximized" @@ -100,7 +99,7 @@ #: data/org.gnome.Polari.gschema.xml:27 msgid "Last active (selected) channel" -msgstr "آخرین کانال فعال (انتخاب شده)" +msgstr "آخرین کانال فعال (گزینش شده)" #: data/org.gnome.Polari.gschema.xml:34 msgid "Identify botname" @@ -159,8 +158,8 @@ msgid "_Real Name" msgstr "نام _واقعی" -#: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:149 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 +#: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_لغو" @@ -168,19 +167,11 @@ msgid "_Apply" msgstr "_اعمال" -#: data/resources/entry-area.ui:16 -msgid "Change nickname:" -msgstr "تغییر نام مستعار:" - -#: data/resources/entry-area.ui:27 -msgid "_Change" -msgstr "_تغییر" - -#: data/resources/entry-area.ui:78 +#: data/resources/entry-area.ui:38 msgid "Change nickname" msgstr "تغییر نام مستعار" -#: data/resources/entry-area.ui:159 +#: data/resources/entry-area.ui:119 msgid "_Paste" msgstr "_جای‌گذاری" @@ -197,7 +188,7 @@ #: data/resources/help-overlay.ui:27 msgctxt "shortcut window" msgid "Leave Room" -msgstr "ترک کردن اتاق" +msgstr "ترک اتاق" #: data/resources/help-overlay.ui:34 msgctxt "shortcut window" @@ -207,7 +198,7 @@ #: data/resources/help-overlay.ui:41 msgctxt "shortcut window" msgid "Show Emoji Picker" -msgstr "نمایش انتخابگر ایموجی" +msgstr "نمایش گزینشگر ایموجی" #: data/resources/help-overlay.ui:48 msgctxt "shortcut window" @@ -232,7 +223,7 @@ #: data/resources/help-overlay.ui:75 msgctxt "shortcut window" msgid "Previous Room" -msgstr "اتاق قبلی" +msgstr "اتاق پیشین" #: data/resources/help-overlay.ui:82 msgctxt "shortcut window" @@ -242,7 +233,7 @@ #: data/resources/help-overlay.ui:89 msgctxt "shortcut window" msgid "Previous Room with Unread Messages" -msgstr "اتاق قبلی با پیام‌های خوانده نشده" +msgstr "اتاق پیشین با پیام‌های خوانده نشده" #: data/resources/help-overlay.ui:96 msgctxt "shortcut window" @@ -279,17 +270,17 @@ #: data/resources/initial-setup-window.ui:121 msgid "Polari is an easy way to chat using IRC. Select a network to get started." msgstr "" -"پولاری راه حلی ساده برای چت از طریق IRC است. یک شبکه را برای شروع انتخاب کنید." +"پولاری راه حلی ساده برای چت از طریق IRC است. یک شبکه را برای شروع گزینش کنید." #: data/resources/initial-setup-window.ui:171 msgid "" "Select rooms you want to connect to. You can add more networks and rooms " "later, by clicking the + button." msgstr "" -"اتاق‌هایی که می‌خواهید به آنها متصل شوید را انتخاب کنید. شما می‌توانید با کلیک بر " +"اتاق‌هایی که می‌خواهید به آنها متصل شوید را گزینش کنید. شما می‌توانید با کلیک بر " "روی دکمه +، شبکه‌ها و اتاق‌های بیشتری را بعداً اضافه کنید." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:236 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "پیوستن به اتاق گپ" @@ -303,7 +294,7 @@ #: data/resources/join-room-dialog.ui:75 msgid "_Add Network" -msgstr "_اضافه کردن شبکه" +msgstr "_افزودن شبکه" #: data/resources/join-room-dialog.ui:159 msgid "_Add" @@ -313,65 +304,70 @@ msgid "_Custom Network" msgstr "شبکه _سفارشی" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "اجرای پولاری در پس‌زمینه؟" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"پولاری پس از بسته شدن به کار ادامه خواهد داد و بطور خودکار در هنگام ورود به " -"سیستم دوباره اجرا خواهد شد." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_خروج" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_اجرا در پس‌زمینه" - -#: data/resources/main-window.ui:68 -msgid "Add rooms and networks" -msgstr "اضافه کردن اتاق‌ها و شبکه‌ها" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "میان‌برهای صفحه‌کلید" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "راهنما" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "درباره" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "خروج" -#: data/resources/room-list-header.ui:146 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "افزودن اتاق‌ها و شبکه‌ها" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "نمایش کاربران متّصل" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "برون‌خط" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "برای گپ زدن و دریافت پیام‌ها، برخط شوید" + +#: data/resources/nick-popover.ui:16 +msgid "Change nickname:" +msgstr "تغییر نام مستعار:" + +#: data/resources/nick-popover.ui:27 +msgid "_Change" +msgstr "_تغییر" + +#: data/resources/room-list-header.ui:145 msgid "Connect" msgstr "اتصال" -#: data/resources/room-list-header.ui:154 +#: data/resources/room-list-header.ui:152 msgid "Reconnect" msgstr "اتصال مجدد" -#: data/resources/room-list-header.ui:162 +#: data/resources/room-list-header.ui:159 +msgid "Disconnect" +msgstr "قطع ارتباط" + +#: data/resources/room-list-header.ui:166 msgid "Remove" msgstr "حذف" -#: data/resources/room-list-header.ui:170 +#: data/resources/room-list-header.ui:173 msgid "Properties" msgstr "‌ویژگی‌ها" #: data/resources/server-room-list.ui:45 msgid "Enter room name to add" -msgstr "برای اضافه کردن نام اتاق را وارد کنید" +msgstr "برای افزودن نام اتاق را وارد کنید" #: data/resources/user-details.ui:27 msgid "Loading details" @@ -389,94 +385,102 @@ msgid "Start Conversation" msgstr "شروع گفت‌وگو" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" -msgstr "اجرای کارگیر Telepathy" +msgstr "اجرای کارخواه Telepathy" + +#: src/application.js:48 +msgid "Start in debug mode" +msgstr "شروع در حالت اشکال‌زدایی" -#: src/application.js:50 +#: src/application.js:51 +msgid "Allow running alongside another instance" +msgstr "اجازه به اجرا در کنار اجرایی دیگر" + +#: src/application.js:54 msgid "Print version and exit" msgstr "چاپِ نسخه و خروج" -#: src/application.js:380 src/utils.js:185 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" -msgstr "بازکردن پیوند شکست خورد" +msgstr "گشودن پیوند شکست خورد" -#: src/application.js:657 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s حذف شد." -#: src/application.js:757 +#: src/application.js:848 msgid "translator-credits" msgstr "آرش موسوی " -#: src/application.js:763 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "درباره پولاری بیشتر بدانید" -#: src/appNotifications.js:85 +#: src/appNotifications.js:87 msgid "Undo" msgstr "برگردان" -#: src/chatView.js:142 +#: src/chatView.js:137 msgid "New Messages" msgstr "پیام جدید" -#: src/chatView.js:780 +#: src/chatView.js:786 msgid "Open Link" -msgstr "بازکردن پیوند" +msgstr "گشودن پیوند" -#: src/chatView.js:786 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "رونوشت آدرس پیوند" -#: src/chatView.js:954 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s بعوان %s شناخته می‌شود" -#: src/chatView.js:959 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "اتصال %s قطع شد" -#: src/chatView.js:967 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s توسط %s اخراج شد" -#: src/chatView.js:969 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s اخراج شده است" -#: src/chatView.js:975 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "دسترسی %s توسط %s مسدود شد" -#: src/chatView.js:977 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "دسترسی %s مسدود شده است" -#: src/chatView.js:982 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s به کانال ملحق شد" -#: src/chatView.js:987 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s کانال را ترک کرد" -#: src/chatView.js:1080 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%Id کاربر به اتاق پیوستند" -#: src/chatView.js:1083 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -484,14 +488,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1150 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%OH∶%OM" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1155 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "دیروز، %OH∶%OM" @@ -499,7 +503,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1160 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A، %OH∶%OM" @@ -508,7 +512,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1166 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%Od %B, %OH∶%OM" @@ -517,21 +521,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1172 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Od %B %OY, %OH∶%OM" #. today #. Translators: Time in 12h format -#: src/chatView.js:1177 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%Ol∶%OM %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1182 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "دیروز، %Ol∶%OM %p" @@ -539,7 +543,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1187 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %Ol∶%OM %p" @@ -548,7 +552,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1193 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%Id %B, %Ol∶%OM %p" @@ -557,22 +561,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1199 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Od %B %OY, %Ol∶%OM %p" -#: src/connections.js:54 +#: src/connections.js:42 msgid "Already added" msgstr "قبلا اضافه شده" -#. Translators: %s is a connection name -#: src/connections.js:468 +#: src/connections.js:104 +msgid "No results." +msgstr "بدون نتیجه." + +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "ویژگی‌های «%s»" -#: src/connections.js:510 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address field " "is correct." @@ -580,58 +587,58 @@ "اتصال پولاری به دلیل یک خطا در شبکه قطع شده است. لطفا بررسی کنید که فیلد آدرس " "صحیح باشد." -#: src/entryArea.js:338 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "جای‌گذاری %s خط از متن در سرویس جای‌گذاری عمومی؟" -#: src/entryArea.js:342 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "بارگذاری %s خط به سرویس جای‌گذاری عمومی…" -#: src/entryArea.js:349 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "بارگذاری تصویر به سرویس جای‌گذاری عمومی؟" -#: src/entryArea.js:350 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "درحال بارگذاری تصویر به سرویس جای‌گذاری عمومی…" #. Translators: %s is a filename -#: src/entryArea.js:371 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "بارگذاری «%s» در یک سرویس جای‌گذاری عمومی؟" #. Translators: %s is a filename -#: src/entryArea.js:373 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "درحال بارگذاری «%s» در یک سرویس جای‌گذاری عمومی…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:382 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s در #%s" -#: src/entryArea.js:384 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "جای‌گذاری از %s" -#: src/initialSetup.js:84 +#: src/initialSetup.js:85 msgid "_Back" -msgstr "_قبلی" +msgstr "_پیشین" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_انجام شد" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_بعدی" @@ -644,13 +651,13 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "فرمان /CLOSE [<کانال>] [<دلیل>] - <کانال> را می‌بندد، بصورت پیش‌فرض کانال فعلی" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -658,257 +665,307 @@ "فرمان /HELP [<فرمان>] - راهنما را برای <فرمان> یا یک فهرست از فرمان‌های موجود " "را نمایش می‌دهد" -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "فرمان /INVITE <نام مستعار> [<کانال>] — <نام مستعار> را به <کانال> یا کانال " "فعلی دعوت می‌کند" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "فرمان /JOIN <کانال> — به <کانال> ملحق می‌شوید" -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "فرمان /KICK <نام مستعار> — <نام مستعار> را از کانال اخراج می‌کند" -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "فرمان /ME <کنش> — <کنش> را به کانال ارسال می‌کند" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "" "فرمان /MSG <نام‌مستعار> [<پیام>] — یک پیام خصوصی به <نام‌مستعار> ارسال می‌کند" -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "فرمان /NAMES — فهرست اعضا فعلی کانال را نشان می‌دهد" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "فرمان /NICK <نام مستعار> — نام مستعار شما را به <نام مستعار> تغییر می‌دهد" -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "فرمان /PART [<کانال>] [<دلیل>] — <کانال> را ترک می‌کند، بصورت پیش‌فرض کانال فعلی" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "فرمان /QUERY <نام مستعار> — یک گفت‌وگو خصوصی را با <نام مستعار> باز می‌کند" -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" -msgstr "فرمان /QUIT [<دلیل>] — از کارگزار فعلی قطع می‌شود" +msgstr "فرمان /QUIT [<دلیل>] — از کارساز فعلی قطع می‌شود" -#: src/ircParser.js:36 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "فرمان /SAY <متن> — <متن> را به اتاق/مشترک فعلی ارسال می‌کند" -#: src/ircParser.js:37 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "فرمان /TOPIC <سرفصل> — سرفصل را به <سرفصل> تغییر می‌دهد یا سرفصل فعلی را نمایش " "می‌دهد" -#: src/ircParser.js:40 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "فرمان ناشناس — برای نمایش یک فهرست از فرمان‌های ممکن Help/ را وارد کنید" -#: src/ircParser.js:56 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "استفاده: %s" -#: src/ircParser.js:92 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "دستورات شناخته شده:" -#: src/ircParser.js:191 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "کاربران %s:" -#: src/ircParser.js:270 +#: src/ircParser.js:271 msgid "No topic set" msgstr "هیچ سرفصلی تنظیم نشده" -#: src/joinDialog.js:237 +#: src/joinDialog.js:232 msgid "Add Network" -msgstr "اضافه کردن شبکه" +msgstr "افزودن شبکه" -#: src/mainWindow.js:383 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%Id کاربر" -#: src/roomList.js:133 +#: src/roomList.js:190 msgid "Leave chatroom" -msgstr "ترک کردن اتاق گپ" +msgstr "ترک اتاق گپ" -#: src/roomList.js:133 +#: src/roomList.js:190 msgid "End conversation" msgstr "ویرایش گفت‌وگو" -#: src/roomList.js:224 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "شبکه %s خطایی دارد" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:281 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:288 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "مشکل در اتصال" -#: src/roomList.js:304 +#: src/roomList.js:396 msgid "Connected" msgstr "متصل شد" -#: src/roomList.js:306 +#: src/roomList.js:398 msgid "Connecting…" msgstr "در حال اتصال…" -#: src/roomList.js:308 src/userList.js:422 -msgid "Offline" -msgstr "برون‌خط" - -#: src/roomList.js:310 +#: src/roomList.js:402 msgid "Unknown" msgstr "ناشناس" -#: src/roomList.js:330 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "امکان برقراری اتصال به %s به شکل ایمن نبود." -#: src/roomList.js:333 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s نیاز به گذرواژه دارد." -#: src/roomList.js:339 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." -msgstr "امکان برقراری اتصال به %s نبود. کارگزار مشغول است." +msgstr "امکان برقراری اتصال به %s نبود. کارساز مشغول است." -#: src/roomList.js:342 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "امکان برقراری اتصال به %s نبود." -#: src/roomStack.js:124 -msgid "_Save Password" -msgstr "_ذخیره گذرواژه" - -#: src/roomStack.js:133 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "آیا گذرواژه باید ذخیره شود؟" -#: src/roomStack.js:141 src/telepathyClient.js:577 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "Identification will happen automatically the next time you connect to %s" msgstr "شناسایی دفعه آینده‌ای که به %s وارد شوید بطور خودکار انجام خواهد شد" -#: src/roomStack.js:172 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_ذخیره گذرواژه" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "شکست در پیوستن به اتاق" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_تلاش دوباره" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "اتاق پر است." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "از اتاق محروم شدید" + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "اتاق فقط‌دعوتی است" + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "از اتاق بیرون انداخته شدید" + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"پیوستن به اتاق در حال حاضر ممکن نیست، ولی می‌توانید بعداُ دوباره تلاش کنید." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "با استفاده از دکمه + به یک اتاق بپیوندید." -#: src/telepathyClient.js:402 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "خداحافظ" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:576 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "ذخیره گذرواژه %s برای %s؟" -#: src/telepathyClient.js:580 +#: src/telepathyClient.js:651 msgid "Save" msgstr "ذخیره" -#: src/userList.js:237 +#. Translators: This is the title of the notification announcing a newly +#. received message, in the form "user-nickname in room-display-name" +#: src/telepathyClient.js:683 +#, javascript-format +msgid "%s in %s" +msgstr "%s در %s" + +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%Id ثانیه قبل" -#: src/userList.js:242 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%Id دقیقه قبل" -#: src/userList.js:247 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%Id ساعت قبل" -#: src/userList.js:252 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%Id روز قبل" -#: src/userList.js:257 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%Id هفته قبل" -#: src/userList.js:261 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%Id ماه قبل" -#: src/userList.js:418 +#: src/userList.js:452 msgid "Available in another room." msgstr "موجود در یک اتاق دیگر." -#: src/userList.js:420 +#: src/userList.js:454 msgid "Online" msgstr "برخط" -#: src/userList.js:569 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "بدون نتیجه" -#: src/userList.js:743 -msgid "All" -msgstr "همه" - -#: src/userTracker.js:315 +#: src/userTracker.js:312 msgid "User is online" msgstr "کاربر برخط است" -#: src/userTracker.js:316 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "کاربر %s هم‌اکنون برخط است." -#: src/utils.js:107 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" -msgstr "گذرواژه کارگزار پولاری برای %s" +msgstr "گذرواژه کارساز پولاری برای %s" -#: src/utils.js:112 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "گذرواژه پولاری NickServ برای %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "اجرای پولاری در پس‌زمینه؟" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "پولاری پس از بسته شدن به کار ادامه خواهد داد و بطور خودکار در هنگام ورود به " +#~ "سیستم دوباره اجرا خواهد شد." + +#~ msgid "_Quit" +#~ msgstr "_خروج" + +#~ msgid "_Run in background" +#~ msgstr "_اجرا در پس‌زمینه" + +#~ msgid "All" +#~ msgstr "همه" + #~ msgid "Room _Name" #~ msgstr "_نام اتاق" @@ -918,9 +975,6 @@ #~ msgid "Message" #~ msgstr "پیام" -#~ msgid "Show connections" -#~ msgstr "نمایش اتصال‌ها" - #~ msgid "_Description" #~ msgstr "_توضیحات" @@ -975,9 +1029,6 @@ #~ msgid "Try again" #~ msgstr "تلاش مجدد" -#~ msgid "The server is busy." -#~ msgstr "کارگزار مشغول است." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "اتصال به دلایل نامعلومی شکست خورد." diff -Nru polari-3.32.0/po/fi.po polari-3.34.0/po/fi.po --- polari-3.32.0/po/fi.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/fi.po 2019-09-09 18:44:11.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-17 11:08+0300\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-17 15:46+0300\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: suomi \n" "Language: fi\n" @@ -17,16 +17,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.0.6\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "IRC-asiakassovellus Gnomelle" @@ -52,15 +52,10 @@ "keskusteluihin suoraan ilmoituksen kautta vaihtamatta itse sovelluksen " "ikkunaan!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Gnome-projekti" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -164,7 +159,7 @@ msgstr "O_ikea nimi" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Peru" @@ -287,7 +282,7 @@ "Valitse yksi tai useampi kanava, joihin liitytään. Voit lisätä verkkoja ja " "kanavia myöhemmin napsauttamalla +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Liity kanavalle" @@ -324,37 +319,26 @@ msgstr "Tietoja" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Lopeta" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Suoritetaanko Polari taustalla?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polarin suorittamista jatketaan, kun se suljetaan, ja se käynnistetään " -"automaattisesti sisäänkirjautumisen yhteydessä." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Lopeta" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Suorita taustalla" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Lisää kanavia ja verkkoja" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Näytä yhdistetyt käyttäjät" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Ei verkossa" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Yhdistä verkkoon keskustellaksesi ja vastaanottaaksesi viestejä." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Muuta nimimerkki:" @@ -403,103 +387,103 @@ msgid "Start Conversation" msgstr "Aloita keskustelu" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Käynnistä Telepathy-asiakas" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Käynnistä vianjäljitystilassa" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Salli käynnissä oleminen toisen instanssin rinnalla" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Tulosta versio ja poistu" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Linkin avaaminen epäonnistui" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s poistettiin." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "Jiri Grönroos" -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Tietoja - Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Kumoa" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Uudet viestit" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Avaa linkki" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopioi linkin osoite" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s vaihtoi nimekseen %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s katkaisi yhteyden" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s potkaistiin käyttäjän %s toimesta" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s potkaistiin" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s sai bannit käyttäjän %s toimesta" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s bannattiin" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s liittyi" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s poistui" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d käyttäjä liittyi" msgstr[1] "%d käyttäjää liittyi" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -508,14 +492,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Eilen, %H:%M" @@ -523,7 +507,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H:%M" @@ -532,7 +516,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%e. %Bta, %H:%M" @@ -541,21 +525,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%e. %Bta %Y, %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Eilen, %l∶%M %p" @@ -563,7 +547,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -572,7 +556,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%e. %Bta, %H:%M" @@ -581,26 +565,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%B %d %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Lisätty jo" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Ei tuloksia." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” - ominaisuudet" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -608,60 +591,60 @@ "Polari katkaisi yhteyden yhteysvirheen vuoksi. Tarkista, että osoitekentän " "sisältö on oikein." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Liitetäänkö %s rivi tekstiä julkiseen liittämispalveluun?" msgstr[1] "Liitetäänkö %s riviä tekstiä julkiseen liittämispalveluun?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Lähetetään %s rivi tekstiä julkiseen liittämispalveluun…" msgstr[1] "Lähetetään %s riviä tekstiä julkiseen liittämispalveluun…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Lähetetäänkö kuva julkiseen liittämispalveluun?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Lähetetään kuvaa julkiseen liittämispalveluun…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Lähetetäänkö “%s” julkiseen liittämispalveluun?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Lähetetään “%s” julkiseen liittämispalveluun…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s kanavalla #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Liitetty teksti lähteestä %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Takaisin" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Valmis" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Seuraava" @@ -762,16 +745,16 @@ msgid "Usage: %s" msgstr "Käyttö: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Tunnetut komennot:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Käyttäjät kanavalla %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Kanavan otsikkoa ei ole asetettu" @@ -779,82 +762,74 @@ msgid "Add Network" msgstr "Lisää verkko" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d käyttäjä" msgstr[1] "%d käyttäjää" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Poistu kanavalta" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Lopeta keskustelu" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Verkossa %s on virhe" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Yhteysongelma" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Yhdistetty" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Yhdistetään…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Ei verkossa" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Tuntematon" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Yhteydeyn muodostaminen kohteeseen %s ei onnistunut turvallisesti." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s vaatii salasanan." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Yhteys kohteeseen %s epäonnistui. Palvelin on varattu." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Yhteys kohteeseen %s epäonnistui." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Tallenna salasana" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Tallennetaanko salasana?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -862,95 +837,125 @@ "Tunnistautuminen tapahtuu automaattisesti seuraavalla kerralla, kun " "muodostat yhteyden verkkoon %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Tallenna salasana" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Kanavalle liittyminen epäonnistui" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Yritä uudelleen" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Kanava on täynnä." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Sinut on bannattu kanavalta." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Liittyminen kanavalle onnistuu vain kutsulla." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Sinut on potkittu kanavalta." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Kanavalle ei ole juuri nyt mahdollista liittyä, mutta voit yrittää uudelleen " +"myöhemmin." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Liity kanavalle painamalla +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Näkemiin" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Tallennetaanko \"%s\"-salasana tilille %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Tallenna" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s kanavalla %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d sekunti sitten" msgstr[1] "%d sekuntia sitten" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minuutti sitten" msgstr[1] "%d minuuttia sitten" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d tunti sitten" msgstr[1] "%d tuntia sitten" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d päivä sitten" msgstr[1] "%d päivää sitten" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d viikko sitten" msgstr[1] "%d viikkoa sitten" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d kuukausi sitten" msgstr[1] "%d kuukautta sitten" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Saatavilla toisella kanavalla." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Linjoilla" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Ei tuloksia" -#: src/userList.js:734 -msgid "All" -msgstr "Kaikki" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Käyttäjä on linjoilla" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Käyttäjä %s on nyt linjoilla." @@ -965,6 +970,28 @@ msgid "Polari NickServ password for %s" msgstr "Polarin NickServ-salasana kohteelle %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Suoritetaanko Polari taustalla?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polarin suorittamista jatketaan, kun se suljetaan, ja se käynnistetään " +#~ "automaattisesti sisäänkirjautumisen yhteydessä." + +#~ msgid "_Quit" +#~ msgstr "_Lopeta" + +#~ msgid "_Run in background" +#~ msgstr "_Suorita taustalla" + +#~ msgid "All" +#~ msgstr "Kaikki" + #~ msgid "Message" #~ msgstr "Viesti" @@ -1035,9 +1062,6 @@ #~ msgid "Try again" #~ msgstr "Yritä uudelleen" -#~ msgid "The server is busy." -#~ msgstr "Palvelin on varattu." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Yhdistäminen epäonnistui tuntemattomasta syystä." diff -Nru polari-3.32.0/po/fr.po polari-3.34.0/po/fr.po --- polari-3.32.0/po/fr.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/fr.po 2019-09-09 18:44:11.000000000 +0000 @@ -5,30 +5,31 @@ # Sébastien Lafargue , 2013. # Guillaume Bernard Guillaume Bernard , 2014-2018. # Alain Lojewski , 2017. -# Charles Monzat , 2018. +# Charles Monzat , 2018-2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-11-01 14:24+0000\n" -"PO-Revision-Date: 2018-11-10 15:49+0100\n" -"Last-Translator: Charles Monzat \n" -"Language-Team: français \n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-26 10:08+0200\n" +"Last-Translator: Charles Monzat \n" +"Language-Team: GNOME French Team \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Gtranslator 3.30.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.32.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:832 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un client de discussion relayée par Internet (IRC) pour GNOME" @@ -55,15 +56,10 @@ "privées, elles vous permettent même de répondre instantanément sans " "retourner dans l’application." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Le projet GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -77,7 +73,7 @@ msgid "List of channels to restore on startup" msgstr "Liste des salons à restaurer au démarrage" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Exécuter en arrière-plan" @@ -171,7 +167,7 @@ msgstr "Nom _réel" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "A_nnuler" @@ -293,7 +289,7 @@ "Sélectionnez les salons auxquels vous souhaitez vous connecter. Vous pourrez " "en ajouter plus tard à l’aide du bouton +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Rejoindre un salon" @@ -317,49 +313,38 @@ msgid "_Custom Network" msgstr "Réseau _personnalisé" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Exécuter Polari en arrière-plan ?" +#: data/resources/main-window.ui:22 +msgid "Keyboard Shortcuts" +msgstr "Raccourcis clavier" -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari continuera à fonctionner s’il est fermé et sera redémarré " -"automatiquement à la connexion." +#: data/resources/main-window.ui:26 +msgid "Help" +msgstr "Aide" -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Quitter" +#: data/resources/main-window.ui:30 +msgid "About" +msgstr "À propos" -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "E_xécution en arrière-plan" +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 +msgid "Quit" +msgstr "Quitter" #: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Ajouter des salons et des réseaux" -#: data/resources/main-window.ui:175 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Afficher les utilisateurs connectés" -#: data/resources/menus.ui:12 -msgid "Keyboard Shortcuts" -msgstr "Raccourcis clavier" - -#: data/resources/menus.ui:16 -msgid "Help" -msgstr "Aide" - -#: data/resources/menus.ui:20 -msgid "About" -msgstr "À propos" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Hors ligne" -#: data/resources/menus.ui:24 -msgid "Quit" -msgstr "Quitter" +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Se connecter pour discuter et recevoir des messages." #: data/resources/nick-popover.ui:16 msgid "Change nickname:" @@ -409,32 +394,32 @@ msgid "Start Conversation" msgstr "Commencer la conversation" -#: src/application.js:42 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Démarrer le client Telepathy" -#: src/application.js:47 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Démarrer avec le mode débogage" -#: src/application.js:50 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Autoriser l’exécution d’une autre instance" -#: src/application.js:53 +#: src/application.js:54 msgid "Print version and exit" msgstr "Imprimer la version et quitter" -#: src/application.js:439 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "L’ouverture du lien a échoué" -#: src/application.js:726 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s supprimé." -#: src/application.js:831 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Alexandre Franke , 2013-2016\n" @@ -443,74 +428,74 @@ "Mathieu Stumpf Guntz, 2016\n" "Alain Lojewski , 2017" -#: src/application.js:837 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "En apprendre plus sur Polari" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Annuler" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nouveaux messages" -#: src/chatView.js:766 +#: src/chatView.js:786 msgid "Open Link" msgstr "Ouvrir le lien" -#: src/chatView.js:772 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copier l’adresse du lien" -#: src/chatView.js:940 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s est désormais connu en tant que %s" -#: src/chatView.js:945 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s s’est déconnecté" -#: src/chatView.js:953 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s a été expulsé par %s" -#: src/chatView.js:955 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s a été expulsé" -#: src/chatView.js:961 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s a été banni par %s" -#: src/chatView.js:963 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s a été banni" -#: src/chatView.js:968 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s est arrivé" -#: src/chatView.js:973 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s est parti" -#: src/chatView.js:1066 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d utilisateur est arrivé" msgstr[1] "%d utilisateurs sont arrivés" -#: src/chatView.js:1069 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -519,14 +504,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1136 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1141 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Hier, %H∶%M" @@ -534,7 +519,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1146 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -543,7 +528,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1152 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -552,21 +537,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1158 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1163 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1168 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Hier, %l∶%M %p" @@ -574,7 +559,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1173 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -583,7 +568,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1179 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -592,26 +577,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1185 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:51 +#: src/connections.js:42 msgid "Already added" msgstr "Déjà ajouté" -#: src/connections.js:106 +#: src/connections.js:104 msgid "No results." msgstr "Aucun résultat." -#. Translators: %s is a connection name -#: src/connections.js:485 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Propriétés de « %s »" -#: src/connections.js:529 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -619,60 +603,60 @@ "Polari s’est déconnecté suite à une erreur réseau. Veuillez vérifier si le " "champ adresse est correct." -#: src/entryArea.js:364 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Envoyer %s ligne de texte vers le service de partage public ?" msgstr[1] "Envoyer %s lignes de texte vers le service de partage public ?" -#: src/entryArea.js:368 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Envoi de %s ligne de texte au service de partage public…" msgstr[1] "Envoi de %s lignes de texte au service de partage public…" -#: src/entryArea.js:375 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Envoyer l’image sur le service de partage public ?" -#: src/entryArea.js:376 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Envoi de l’image sur le service de partage public…" #. Translators: %s is a filename -#: src/entryArea.js:397 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Envoyer « %s » sur le service de partage public ?" #. Translators: %s is a filename -#: src/entryArea.js:399 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Envoi de « %s » sur le service de partage public…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:408 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s dans #%s" -#: src/entryArea.js:410 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Coller à partir de %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Précédent" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Terminé" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Suivant" @@ -764,191 +748,219 @@ msgid "Usage: %s" msgstr "Utilisation : %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Commandes connues :" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Utilisateurs sur %s :" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Aucun sujet défini" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Ajouter un réseau" -#: src/mainWindow.js:383 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d utilisateur" msgstr[1] "%d utilisateurs" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Quitter le salon" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "End conversation" msgstr "Mettre fin à la conversation" -#: src/roomList.js:290 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Le réseau %s présente une erreur" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:361 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:368 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Erreur de connexion" -#: src/roomList.js:385 +#: src/roomList.js:396 msgid "Connected" msgstr "Connecté" -#: src/roomList.js:387 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Connexion…" -#: src/roomList.js:389 src/userList.js:414 -msgid "Offline" -msgstr "Hors ligne" - -#: src/roomList.js:391 +#: src/roomList.js:402 msgid "Unknown" msgstr "Inconnu" -#: src/roomList.js:411 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Impossible de se connecter à %s de manière sûre." -#: src/roomList.js:414 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s nécessite un mot de passe." -#: src/roomList.js:420 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Impossible de se connecter à %s. Le serveur est occupé." -#: src/roomList.js:423 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Impossible de se connecter à %s." -#: src/roomStack.js:114 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "Le mot de passe doit-il être enregistré ?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "" +"L’identification se fera automatiquement la prochaine fois que vous vous " +"connecterez à %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "Enregistrer le mot de _passe" -#: src/roomStack.js:123 -msgid "Should the password be saved?" -msgstr "Le mot de passe doit-il être enregistré ?" +#: src/roomStack.js:139 +#| msgid "Available in another room." +msgid "Failed to join the room" +msgstr "Impossible de rejoindre le salon" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Réessayer" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Le salon est complet." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Vous avez été banni du salon." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Le salon est uniquement sur invitation." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Vous avez été expulsé du salon." -#: src/roomStack.js:160 +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Il n’est pas possible de rejoindre le salon actuellement, mais vous pouvez " +"réessayer plus tard." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Rejoindre un salon avec le bouton +." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Au revoir" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Enregistrer le mot de passe %s pour %s ?" -#: src/telepathyClient.js:585 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" -"L’identification se fera automatiquement la prochaine fois que vous vous " -"connecterez à %s" - -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Enregistrer" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s dans %s" -#: src/userList.js:228 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "Il y a %d seconde" msgstr[1] "Il y a %d secondes" -#: src/userList.js:233 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "Il y a %d minute" msgstr[1] "Il y a %d minutes" -#: src/userList.js:238 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "Il y a %d heure" msgstr[1] "Il y a %d heures" -#: src/userList.js:243 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "Il y a %d jour" msgstr[1] "Il y a %d jours" -#: src/userList.js:248 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "Il y a %d semaine" msgstr[1] "Il y a %d semaines" -#: src/userList.js:252 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "Il y a %d mois" msgstr[1] "Il y a %d mois" -#: src/userList.js:410 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponible dans un autre salon." -#: src/userList.js:412 +#: src/userList.js:454 msgid "Online" msgstr "En ligne" -#: src/userList.js:557 -msgid "No results" +#: src/userList.js:617 +#| msgid "No results" +msgid "No Results" msgstr "Aucun résultat" -#: src/userTracker.js:305 +#: src/userTracker.js:312 msgid "User is online" msgstr "L’utilisateur est en ligne" -#: src/userTracker.js:306 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "L’utilisateur %s est en ligne." @@ -963,5 +975,24 @@ msgid "Polari NickServ password for %s" msgstr "Mot de passe NickServ de Polari pour %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Exécuter Polari en arrière-plan ?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari continuera à fonctionner s’il est fermé et sera redémarré " +#~ "automatiquement à la connexion." + +#~ msgid "_Quit" +#~ msgstr "_Quitter" + +#~ msgid "_Run in background" +#~ msgstr "E_xécution en arrière-plan" + #~ msgid "All" #~ msgstr "Tous" diff -Nru polari-3.32.0/po/fur.po polari-3.34.0/po/fur.po --- polari-3.32.0/po/fur.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/fur.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2019-02-27 19:14+0000\n" -"PO-Revision-Date: 2019-02-27 20:50+0100\n" +"POT-Creation-Date: 2019-05-21 16:29+0000\n" +"PO-Revision-Date: 2019-06-11 10:09+0200\n" "Last-Translator: Fabio Tomat \n" "Language-Team: Friulian \n" "Language: fur\n" @@ -16,15 +16,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:806 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un program IRC par GNOME" @@ -55,11 +56,6 @@ msgid "The GNOME Project" msgstr "Il progjet GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -165,7 +161,7 @@ msgstr "Non _reâl" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Anule" @@ -288,7 +284,7 @@ "Selezione lis stanziis dulà conetisi. Si pues zontâ plui rêts e stanziis " "plui indenant, fasint clic sul boton + ." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:234 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Jentre te stanzie di conversazion" @@ -325,6 +321,7 @@ msgstr "Informazions" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Jes" @@ -336,6 +333,14 @@ msgid "Show connected users" msgstr "Mostre utents tacâts" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Fûr rêt" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Va in linie par chatâ e ricevi messaçs." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Cambie sorenon:" @@ -400,20 +405,20 @@ msgid "Print version and exit" msgstr "Stampe la version e jes" -#: src/application.js:439 src/utils.js:186 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Impussibil vierzi il link" -#: src/application.js:730 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s gjavât." -#: src/application.js:805 +#: src/application.js:848 msgid "translator-credits" msgstr "Fabio Tomat " -#: src/application.js:811 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Plui informazions su Polari" @@ -425,62 +430,62 @@ msgid "New Messages" msgstr "Gnûf messaç" -#: src/chatView.js:779 +#: src/chatView.js:786 msgid "Open Link" msgstr "Vierç Link" -#: src/chatView.js:785 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copie direzion link" -#: src/chatView.js:956 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "L'utent %s al è cognossût cumò come %s" -#: src/chatView.js:961 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "L'utent %s si è disconetût" -#: src/chatView.js:970 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "L'utent %s al è stât parât fûr (kick) di %s" -#: src/chatView.js:971 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "L'utent %s al è stât parât fûr" -#: src/chatView.js:978 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "L'utent %s al è stât bandît di %s" -#: src/chatView.js:979 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "L'utent %s al è stât bandît" -#: src/chatView.js:984 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "L'utent %s al è jentrât" -#: src/chatView.js:989 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "L'utent %s al è lât vie" -#: src/chatView.js:1082 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "L'utent %d al è jentrât" msgstr[1] "I utents %d a son jentrâts" -#: src/chatView.js:1085 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -489,14 +494,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1152 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1157 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Îr, %H∶%M" @@ -504,7 +509,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1162 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -513,7 +518,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1168 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d di %B, %H∶%M" @@ -522,21 +527,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1174 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d di %B dal %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1179 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%I∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1184 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Îr, %I∶%M %p" @@ -544,7 +549,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1189 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %I∶%M %p" @@ -553,7 +558,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1195 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d di %B, %I∶%M %p" @@ -562,25 +567,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1201 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d di %B dal %Y, %I∶%M %p" -#: src/connections.js:54 +#: src/connections.js:42 msgid "Already added" msgstr "Za zontadis" -#: src/connections.js:117 +#: src/connections.js:104 msgid "No results." msgstr "Nissun risultât." -#: src/connections.js:519 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Proprietâts “%s”" -#: src/connections.js:563 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -588,14 +593,14 @@ "Polari si è disconetût par vie di un erôr di rêt. Par plasê controle se il " "cjamp direzion al è coret." -#: src/entryArea.js:372 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Tache %s linie di test suntun servizi public par incolâ?" msgstr[1] "Tache %s liniis di test suntun servizi public par incolâ?" -#: src/entryArea.js:376 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -604,46 +609,46 @@ msgstr[1] "" "O stoi cjariant %s liniis di test suntun servizi public par incolâ robis…" -#: src/entryArea.js:383 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Cjariâ imagjin suntun servizi public par incolâ robis?" -#: src/entryArea.js:384 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "O stoi cjariant la imagjin suntun servizi public par incolâ robis…" #. Translators: %s is a filename -#: src/entryArea.js:405 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Cjariâ \"%s\" suntun servizi public par incolâ?" #. Translators: %s is a filename -#: src/entryArea.js:407 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Daûr a cjariâ “%s” suntun servizi public par incolâ robis…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:416 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s in #%s" -#: src/entryArea.js:418 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Tache da %s" -#: src/initialSetup.js:84 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Indaûr" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Fat" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Next" msgstr "P_rossim" @@ -731,168 +736,193 @@ msgid "Usage: %s" msgstr "Ûs: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Comants cognossûts:" -#: src/ircParser.js:190 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Utents in %s:" -#: src/ircParser.js:270 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nissun argoment stabilît" -#: src/joinDialog.js:234 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Zonte rêt" -#: src/mainWindow.js:361 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d utent" msgstr[1] "%d utents" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Jes de stanzie" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "End conversation" msgstr "Termine conversazion" -#: src/roomList.js:299 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "La rêt %s e presente un erôr" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:370 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:377 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Probleme di conession" -#: src/roomList.js:394 +#: src/roomList.js:396 msgid "Connected" msgstr "Conetût" -#: src/roomList.js:396 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Daûr a coneti…" -#: src/roomList.js:398 src/userList.js:426 -msgid "Offline" -msgstr "Fûr rêt" - -#: src/roomList.js:400 +#: src/roomList.js:402 msgid "Unknown" msgstr "No cognossût" -#: src/roomList.js:420 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Impussibil conetisi a %s in mût sigûr." -#: src/roomList.js:423 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s al à dibisugne di une password." -#: src/roomList.js:429 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Impussibil conetisi a %s. Il servidôr al è ocupât." -#: src/roomList.js:432 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Impussibil conetisi a %s." -#: src/roomStack.js:123 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "La password ise di salvâ?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "" +"La identificazion e vegnarà fate in automatic la prossime volte che tu ti " +"conetis a %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "_Salve password" -#: src/roomStack.js:133 -msgid "Should the password be saved?" -msgstr "La password ise di salvâ?" +# Disponibil o disponibile? soggetto? +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "No si è rivâts a jentrâ te stanzie" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Torne prove" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "La stanzie e je plene." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Tu sês stât bandît de stanzie." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "La stanzie e je dome su invît." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Tu sês stât parât fûr de stanzie." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Nol è pussibil jentrâ te stanzie cumò, ma si pues provâ plui indenant." -#: src/roomStack.js:180 +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Jentrâ intune stanzie doprant il boton +." -#: src/telepathyClient.js:411 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Mandi" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:591 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Salvâ password di %s par %s?" -#: src/telepathyClient.js:592 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" -"La identificazion e vegnarà fate in automatic la prossime volte che tu ti " -"conetis a %s" - -#: src/telepathyClient.js:595 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Salve" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:618 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s in %s" -#: src/userList.js:237 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d secont indaûr" msgstr[1] "%d seconts indaûr" -#: src/userList.js:242 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minût indaûr" msgstr[1] "%d minûts indaûr" -#: src/userList.js:247 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d ore indaûr" msgstr[1] "%d oris indaûr" -#: src/userList.js:252 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d zornade indaûr" msgstr[1] "%d dîs indaûr" -#: src/userList.js:257 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d setemane indaûr" msgstr[1] "%d setemanis indaûr" -#: src/userList.js:261 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -900,23 +930,23 @@ msgstr[1] "%d mês indaûr" # Disponibil o disponibile? soggetto? -#: src/userList.js:422 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponibil intune altre stanzie." -#: src/userList.js:424 +#: src/userList.js:454 msgid "Online" msgstr "In rêt" -#: src/userList.js:582 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Nissun risultât" -#: src/userTracker.js:309 +#: src/userTracker.js:312 msgid "User is online" msgstr "L'utent al è in rêt" -#: src/userTracker.js:310 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "L'utent %s al è cumò in rêt." @@ -931,6 +961,9 @@ msgid "Polari NickServ password for %s" msgstr "Password di NickServ di Polari par %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + #~ msgid "Run Polari in the Background?" #~ msgstr "Eseguî Polari par daûr (background)" @@ -1020,9 +1053,6 @@ #~ msgid "Try again" #~ msgstr "Riprove" -#~ msgid "The server is busy." -#~ msgstr "Il server al è ocupât." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Conession falide par colpe di un erôr no cognossût." diff -Nru polari-3.32.0/po/gl.po polari-3.34.0/po/gl.po --- polari-3.32.0/po/gl.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/gl.po 2019-09-09 18:44:11.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-29 17:10+0000\n" -"PO-Revision-Date: 2018-08-30 10:13+0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-26 00:44+0200\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Proxecto Trasno \n" "Language: gl\n" @@ -15,16 +15,17 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.7.1\n" +"X-Generator: Poedit 2.2.1\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:814 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un cliente de Internet Relay Chat para GNOME" @@ -50,15 +51,10 @@ "importante — para as conversas privadas, incluso lle permitirán contestar " "instantaneamente sen cambiar de aplicativo!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "O Proxecto GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -72,7 +68,7 @@ msgid "List of channels to restore on startup" msgstr "Lista de canles a restaurar ao inicio" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Executar en segundo plano" @@ -163,7 +159,7 @@ msgstr "Nome _real" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:81 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Cancelar" @@ -286,7 +282,7 @@ "Seleccione as salas ás que quere conectarse. Pode engadir máis redes e salas " "máis tarde, premento no botón +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Unirse a unha sala de conversas" @@ -310,50 +306,39 @@ msgid "_Custom Network" msgstr "Rede _personalizada" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Executar Polari en segundo plano?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari continuará executándose cando o peche e iniciarase automáticamente ao " -"iniciar sesión." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Saír" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Executar en segundo plano" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Engadir salas e redes" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Mostrar os usuarios conectados" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Atallos de teclado" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Axuda" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Sobre" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Saír" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Engadir salas e redes" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Mostrar os usuarios conectados" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Desconectado" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Conectarse ao chat e recibir mensaxes." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Cambiar alcume:" @@ -418,24 +403,24 @@ msgid "Print version and exit" msgstr "Imprimir versión e saír" -#: src/application.js:422 src/utils.js:185 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Produciuse un fallo ao abrir a ligazón" -#: src/application.js:709 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s quitado." -#: src/application.js:813 +#: src/application.js:848 msgid "translator-credits" -msgstr "Fran Dieguez , 2013-2018." +msgstr "Fran Dieguez , 2013-2019" -#: src/application.js:819 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Aprender máis sobre Polari" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Desfacer" @@ -443,62 +428,62 @@ msgid "New Messages" msgstr "Novas mensaxe" -#: src/chatView.js:765 +#: src/chatView.js:786 msgid "Open Link" msgstr "Abrir ligazón" -#: src/chatView.js:771 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copiar enderezo da ligazón" -#: src/chatView.js:939 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s é coñecido como %s" -#: src/chatView.js:944 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s desconectouse" -#: src/chatView.js:952 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s foi expulsado por %s" -#: src/chatView.js:954 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s foi expulsado" -#: src/chatView.js:960 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s foi baneado por %s" -#: src/chatView.js:962 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s foi baneado" -#: src/chatView.js:967 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s uniuse" -#: src/chatView.js:972 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s saiu" -#: src/chatView.js:1065 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "uniuse %d usuario" msgstr[1] "uníronse %d usuarios" -#: src/chatView.js:1068 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -507,14 +492,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1135 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1140 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Onte ás %H:%M" @@ -522,7 +507,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A ás %H:%M" @@ -531,7 +516,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d de %B ás %H:%M" @@ -540,21 +525,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1157 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d de %B do %Y ás %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1162 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1167 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Onte ás %H:%M %p" @@ -562,7 +547,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A ás %H:%M %p" @@ -571,7 +556,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d de %B ás %l:%M %p" @@ -580,26 +565,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1184 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d de %B do %Y ás %l:%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Xa engadido" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Sen resultados." -#. Translators: %s is a connection name -#: src/connections.js:486 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” Properties" -#: src/connections.js:530 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -607,60 +591,60 @@ "Polari desconectouse debido a un erro de rede. Comprobe se o campo de " "enderezo é correcto." -#: src/entryArea.js:363 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Pegar %s liña de texto no servizo de pegado publico?" msgstr[1] "Pegar %s liñas de texto no servizo de pegado publico?" -#: src/entryArea.js:367 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Subindo %s liña de texto no servizo de pegado publico…" msgstr[1] "Subindo %s liñas de texto no servizo de pegado public…" -#: src/entryArea.js:374 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Subir a imaxe ao servizo de pegado público?" -#: src/entryArea.js:375 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Subindo a imaxe ao servizo de pegado público…" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Subir «%s» ao servizo de pegado público?" #. Translators: %s is a filename -#: src/entryArea.js:398 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Subindo «%s» ao servizo de pegado público…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:407 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s en #%s" -#: src/entryArea.js:409 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Pegado desde %s" -#: src/initialSetup.js:81 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Atrás" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Feito" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Seguinte" @@ -673,12 +657,12 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "/CLOSE [] [] — pecha a , por omisión a actual" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -686,63 +670,63 @@ "/HELP [] — mostra axuda para , ou unha lista das ordes " "dispoñíbeis" -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — convida a á , ou a actual" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN — únese a " -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK — expulsa a da canle actual" -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME — envía á canle actual" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — envía un mensaxe privado a " -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — mostra os usuarios na canle actual" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK — estabelece o seu alcume a " -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "/PART [] [] — abandona a , por omisión a actual" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY — abre unha conversa privada con " -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — desconéctase do servidor actual" -#: src/ircParser.js:36 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY — envía á sala/contacto actual" -#: src/ircParser.js:37 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC — estabelece o asunto a , ou mostra o actual" -#: src/ircParser.js:40 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Orde descoñecida — probe /HELP para obter unha lista das ordes dispoñíbeis" -#: src/ircParser.js:54 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Uso: %s" @@ -751,198 +735,244 @@ msgid "Known commands:" msgstr "Ordes coñecidas:" -#: src/ircParser.js:189 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Usuarios en %s:" -#: src/ircParser.js:268 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Non hai ningún asunto estabelecido" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Engadir rede" -#: src/mainWindow.js:384 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d usuario" msgstr[1] "%d usuarios" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Deixar sala de conversa" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "End conversation" msgstr "Finalizar conversa" -#: src/roomList.js:291 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "A rede %s ten un erro" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:362 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:386 +#: src/roomList.js:379 +msgid "Connection Problem" +msgstr "Problema na conexión" + +#: src/roomList.js:396 msgid "Connected" msgstr "Conectado" -#: src/roomList.js:388 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Conectando…" -#: src/roomList.js:390 src/userList.js:413 -msgid "Offline" -msgstr "Desconectado" - -#: src/roomList.js:392 +#: src/roomList.js:402 msgid "Unknown" msgstr "Descoñecido" -#: src/roomList.js:412 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Non foi posíbel conectarse a %s de forma segura." -#: src/roomList.js:415 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s require un contrasinal." -#: src/roomList.js:421 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Non foi posíbel conectarse a %s. O servidor está ocupado." -#: src/roomList.js:424 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Non foi posíbel conectarse a %s." -#: src/roomStack.js:115 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "Deberiase gardar o contrasinal?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "" +"A identificación debería producirse automaticamente a seguinte vez que se " +"conecta a %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "_Gardar contrasinal" -#: src/roomStack.js:124 -msgid "Should the password be saved?" -msgstr "Deberiase gardar o contrasinal?" +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Dispoñíbel noutra sala." -#: src/roomStack.js:161 +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "T_entar de novo" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "A sala está chea." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Vostede foi excluído da sala." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Sala de acceso só con convite" + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Foi expulsado da sala." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Non foi posíbel unirse á sala agora mesmo, pero pode tentalo máis tarde." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Únase a unha sala usando o botón +." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Adeus" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Desexa gardar o contrasinal %s para %s?" -#: src/telepathyClient.js:585 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" -"A identificación debería producirse automaticamente a seguinte vez que se " -"conecta a %s" - -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Gardar" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s en %s" -#: src/userList.js:227 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "hai %d segundo" msgstr[1] "hai %d segundos" -#: src/userList.js:232 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "hai %d minuto" msgstr[1] "hai %d minutos" -#: src/userList.js:237 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "hai %d hora" msgstr[1] "hai %d horas" -#: src/userList.js:242 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "hai %d día" msgstr[1] "hai %d días" -#: src/userList.js:247 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "hai %d semana" msgstr[1] "hai %d semanas" -#: src/userList.js:251 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "hai %d mes" msgstr[1] "hai %d meses" -#: src/userList.js:409 +#: src/userList.js:452 msgid "Available in another room." msgstr "Dispoñíbel noutra sala." -#: src/userList.js:411 +#: src/userList.js:454 msgid "Online" msgstr "En liña" -#: src/userTracker.js:306 +#: src/userList.js:617 +msgid "No Results" +msgstr "Sen resultados" + +#: src/userTracker.js:312 msgid "User is online" msgstr "O usuario está en liña" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "O usuario %s agora está en liña." -#: src/utils.js:107 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Contrasinal de Polari para o servidor %s" -#: src/utils.js:112 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Contrasinal de Polari para NickSer para %s" -#~ msgid "Connection Problem" -#~ msgstr "Problema na conexión" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Executar Polari en segundo plano?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari continuará executándose cando o peche e iniciarase automáticamente " +#~ "ao iniciar sesión." -#~ msgid "No results" -#~ msgstr "Sen resultados" +#~ msgid "_Quit" +#~ msgstr "_Saír" + +#~ msgid "_Run in background" +#~ msgstr "_Executar en segundo plano" #~ msgid "All" #~ msgstr "Todos" @@ -1011,9 +1041,6 @@ #~ msgid "Try again" #~ msgstr "Tentar de novo" -#~ msgid "The server is busy." -#~ msgstr "O servidor está ocupado." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Produciuse un fallo ao conectarse por unha razón descoñecida." diff -Nru polari-3.32.0/po/hr.po polari-3.34.0/po/hr.po --- polari-3.32.0/po/hr.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/hr.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,9 +7,9 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-10-03 22:33+0000\n" -"PO-Revision-Date: 2018-10-24 21:12+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-06-21 01:22+0200\n" +"Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" @@ -17,15 +17,16 @@ "Content-Transfer-Encoding: 8bit\n" "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" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.2.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:831 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Internet relej klijent razgovora za GNOME" @@ -51,15 +52,10 @@ "poruku — iz privatnih razgovora, čak vam omogućuju trenutačni odgovor bez " "povratka u aplikaciju!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME projekt" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -73,7 +69,7 @@ msgid "List of channels to restore on startup" msgstr "Popis kanala za vraćenje pri pokretanju" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Pokreni u pozadini" @@ -163,7 +159,7 @@ msgstr "_Stvarno ime" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Odustani" @@ -286,7 +282,7 @@ "Odaberite sobu s kojom se želite povezati. Možete dodati više mreža i soba " "kasnije, klikom na + tipku." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Pridruži se sobi za razgovor" @@ -310,50 +306,39 @@ msgid "_Custom Network" msgstr "_Prilagođena mreža" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Pokreni Polari u pozadini?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari će nastaviti biti pokrenut kada ga zatvorite i automatski će se " -"pokrenuti nakon prijave." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Zatvori" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Pokreni u pozadini" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Dodaj sobe i mreže" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Prikaži povezane korisnike" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Prečaci tipkovnice" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Priručnik" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "O programu" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Zatvori" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Dodaj sobe i mreže" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Prikaži povezane korisnike" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Odsutan" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Idite na mrežu kako bi razgovarali i primali poruke." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Promijeni nadimak:" @@ -402,98 +387,98 @@ msgid "Start Conversation" msgstr "Pokreni razgovor" -#: src/application.js:42 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Pokreni Telepathy klijenta" -#: src/application.js:47 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Pokreni u načinu rada otklanjanja grešaka" -#: src/application.js:50 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Dopusti pokretanje uz drugi primjerak" -#: src/application.js:53 +#: src/application.js:54 msgid "Print version and exit" msgstr "Ispiši inačicu i zatvori" -#: src/application.js:439 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Nemoguće otvaranje poveznice" -#: src/application.js:726 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s je uklonjen." -#: src/application.js:830 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" -#: src/application.js:836 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Saznajte više o Polariju" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Vrati" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nova poruka" -#: src/chatView.js:766 +#: src/chatView.js:786 msgid "Open Link" msgstr "Otvori poveznicu" -#: src/chatView.js:772 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopiraj adresu poveznice" -#: src/chatView.js:940 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s je poznat kao %s" -#: src/chatView.js:945 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s prekinuo povezivanje" -#: src/chatView.js:953 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s je izbačen od strane %s" -#: src/chatView.js:955 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s je izbačen" -#: src/chatView.js:961 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s je zabranjen od strane %s" -#: src/chatView.js:963 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s je zabranjen" -#: src/chatView.js:968 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s se pridružio" -#: src/chatView.js:973 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s je napustio" -#: src/chatView.js:1066 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -501,7 +486,7 @@ msgstr[1] "%d korisnika se pridružilo" msgstr[2] "%d korisnika se pridružilo" -#: src/chatView.js:1069 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -511,14 +496,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1136 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1141 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Jučer, %H∶%M" @@ -526,7 +511,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1146 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -535,7 +520,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1152 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%-d. %B, %H∶%M" @@ -544,21 +529,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1158 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%-d. %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1163 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%H:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1168 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Jučer, %H∶%M" @@ -566,7 +551,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1173 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %H∶%M" @@ -575,7 +560,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1179 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%-d. %B, %H∶%M" @@ -584,26 +569,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1185 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%-d. %B %Y, %H∶%M" -#: src/connections.js:51 +#: src/connections.js:42 msgid "Already added" msgstr "Već je dodano" -#: src/connections.js:106 +#: src/connections.js:104 msgid "No results." msgstr "Nema rezultata." -#. Translators: %s is a connection name -#: src/connections.js:485 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” svojstva" -#: src/connections.js:529 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -611,7 +595,7 @@ "Polari je prekinuo povezivanje uslijed mrežne greške. Provjerite ispravnost " "polja adrese." -#: src/entryArea.js:364 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -619,7 +603,7 @@ msgstr[1] "Zalijepi %s redka teksta na javnu uslugu lijepljenja?" msgstr[2] "Zalijepi %s redaka teksta na javnu uslugu lijepljenja?" -#: src/entryArea.js:368 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -627,46 +611,46 @@ msgstr[1] "Slanje %s redka teksta na javnu uslugu lijepljenja…" msgstr[2] "Slanje %s redaka teksta na javnu uslugu lijepljenja…" -#: src/entryArea.js:375 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Pošalji sliku na javnu uslugu lijepljena?" -#: src/entryArea.js:376 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Slanje slike na javnu uslugu lijepljenja…" #. Translators: %s is a filename -#: src/entryArea.js:397 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Pošalji “%s” na javnu uslugu lijepljenja?" #. Translators: %s is a filename -#: src/entryArea.js:399 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Slanje “%s” na javnu uslugu lijepljenja…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:408 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s u #%s" -#: src/entryArea.js:410 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Zalijepi sa %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Natrag" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Završeno" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Sljedeće" @@ -751,24 +735,24 @@ msgid "Usage: %s" msgstr "Upotreba: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Poznate naredbe:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Korisnici na %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nema postavljene teme" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Dodaj mrežu" -#: src/mainWindow.js:383 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -776,108 +760,132 @@ msgstr[1] "%d korisnika" msgstr[2] "%d korisnika" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Napusti sobu razgovora" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "End conversation" msgstr "Završi razgovor" -#: src/roomList.js:290 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Mreža %s ima grešku" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:361 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:368 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problem pri povezivanju" -#: src/roomList.js:385 +#: src/roomList.js:396 msgid "Connected" msgstr "Povezano" -#: src/roomList.js:387 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Povezivanje…" -#: src/roomList.js:389 src/userList.js:414 -msgid "Offline" -msgstr "Odsutan" - -#: src/roomList.js:391 +#: src/roomList.js:402 msgid "Unknown" msgstr "Nepoznat" -#: src/roomList.js:411 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Nemoguće povezivanje sa %s u sigurnom načinu rada." -#: src/roomList.js:414 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s zahtijeva lozinku." -#: src/roomList.js:420 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nemoguće povezivanje sa %s. Poslužitelj je zauzet." -#: src/roomList.js:423 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nemoguće povezivanje sa %s." -#: src/roomStack.js:114 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "Treba li spremiti lozinku?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "" +"Identifikacija će se automatski dogoditi sljedeći puta kada se povežete sa %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "_Spremi lozinku" -#: src/roomStack.js:123 -msgid "Should the password be saved?" -msgstr "Treba li spremiti lozinku?" +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Neuspjelo pridruživanje u sobu" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Pokušaj ponovno" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Soba je puna." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Dobili ste zabranu pristupa sobi." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "U sobu se pridružuje samo putem pozivnica." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Izbačeni ste iz sobe." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Trenutačno se nije moguće pridružiti sobi, možete pokušati kasnije." -#: src/roomStack.js:160 +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Pridruži se sobi za razgovor koriteći + tipku." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Doviđenja" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Spremi %s lozinku za %s?" -#: src/telepathyClient.js:585 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" -"Identifikacija će se automatski dogoditi sljedeći puta kada se povežete sa %s" - -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Spremi" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s u %s" -#: src/userList.js:228 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -885,7 +893,7 @@ msgstr[1] "Prije %d sekunde" msgstr[2] "Prije %d sekundi" -#: src/userList.js:233 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -893,7 +901,7 @@ msgstr[1] "Prije %d minute" msgstr[2] "Prije %d minuta" -#: src/userList.js:238 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -901,7 +909,7 @@ msgstr[1] "Prije %d sata" msgstr[2] "Prije %d sati" -#: src/userList.js:243 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -909,7 +917,7 @@ msgstr[1] "Prije %d dana" msgstr[2] "Prije %d dana" -#: src/userList.js:248 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -917,7 +925,7 @@ msgstr[1] "Prije %d tjedna" msgstr[2] "Prije %d tjedana" -#: src/userList.js:252 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -925,23 +933,23 @@ msgstr[1] "Prije %d mjeseca" msgstr[2] "Prije %d mjeseci" -#: src/userList.js:410 +#: src/userList.js:452 msgid "Available in another room." msgstr "Dostupan u drugoj sobi." -#: src/userList.js:412 +#: src/userList.js:454 msgid "Online" msgstr "Dostupan" -#: src/userList.js:557 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Nema rezultata" -#: src/userTracker.js:305 +#: src/userTracker.js:312 msgid "User is online" msgstr "Korisnik je na mreži" -#: src/userTracker.js:306 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Korisnik %s je sada na mreži." @@ -956,5 +964,24 @@ msgid "Polari NickServ password for %s" msgstr "Polari lozinka poslužitelja nadimka za %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Pokreni Polari u pozadini?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari će nastaviti biti pokrenut kada ga zatvorite i automatski će se " +#~ "pokrenuti nakon prijave." + +#~ msgid "_Quit" +#~ msgstr "_Zatvori" + +#~ msgid "_Run in background" +#~ msgstr "_Pokreni u pozadini" + #~ msgid "All" #~ msgstr "Svi" diff -Nru polari-3.32.0/po/hu.po polari-3.34.0/po/hu.po --- polari-3.32.0/po/hu.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/hu.po 2019-09-09 18:44:11.000000000 +0000 @@ -3,30 +3,31 @@ # This file is distributed under the same license as the polari package. # # Gabor Kelemen , 2014, 2016, 2017. -# Balázs Meskó , 2014. -# Balázs Úr , 2014, 2015, 2016, 2018, 2019. +# Balázs Meskó , 2014, 2019. +# Balázs Úr , 2014, 2015, 2016, 2018, 2019. msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2019-01-24 16:33+0000\n" -"PO-Revision-Date: 2019-02-03 14:42+0100\n" -"Last-Translator: Balázs Úr \n" +"POT-Creation-Date: 2019-05-21 16:29+0000\n" +"PO-Revision-Date: 2019-06-01 13:29+0200\n" +"Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 18.12.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:13 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:796 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Interneten továbbított csevegés (IRC) kliens a GNOME-hoz" @@ -57,11 +58,6 @@ msgid "The GNOME Project" msgstr "A GNOME projekt" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -75,7 +71,7 @@ msgid "List of channels to restore on startup" msgstr "Indításkor helyreállítandó csatornák listája" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Futtatás a háttérben" @@ -166,7 +162,7 @@ msgstr "Való_di név" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "Mé_gse" @@ -289,7 +285,7 @@ "Válassza ki a szobákat a csatlakozáshoz. A + gombra kattintva később további " "hálózatok és szobák is felvehetők." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Csatlakozás csevegőszobához" @@ -313,30 +309,39 @@ msgid "_Custom Network" msgstr "_Egyéni hálózat" -#: data/resources/main-window.ui:29 data/resources/main-window.ui:43 -msgid "Add rooms and networks" -msgstr "Szobák és hálózatok hozzáadása" - -#: data/resources/main-window.ui:149 -msgid "Show connected users" -msgstr "Kapcsolódott felhasználók megjelenítése" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Gyorsbillentyűk" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Súgó" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Névjegy" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Kilépés" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Szobák és hálózatok hozzáadása" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Kapcsolódott felhasználók megjelenítése" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Nem érhető el" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Kapcsolódjon a csevegéshez és az üzenetek fogadásához." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Becenév módosítása:" @@ -385,105 +390,105 @@ msgid "Start Conversation" msgstr "Beszélgetés kezdése" -#: src/application.js:39 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Telepathy ügyfél indítása" -#: src/application.js:44 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Indítás hibakeresési módban" -#: src/application.js:47 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Másik példány melletti futtatás lehetővé tétele" -#: src/application.js:50 +#: src/application.js:54 msgid "Print version and exit" msgstr "Verzió kiírása és kilépés" -#: src/application.js:434 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "A hivatkozás megnyitása nem sikerült" -#: src/application.js:721 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s eltávolítva." -#: src/application.js:795 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Kelemen Gábor \n" "Meskó Balázs " -#: src/application.js:801 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Tudjon meg többet a Polari-ról" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Visszavonás" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Új üzenetek" -#: src/chatView.js:763 +#: src/chatView.js:786 msgid "Open Link" msgstr "Hivatkozás megnyitása" -#: src/chatView.js:769 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Hivatkozás címének másolása" -#: src/chatView.js:937 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s mostantól %s néven ismert" -#: src/chatView.js:942 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s kilépett" -#: src/chatView.js:950 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s kirúgva %s által" -#: src/chatView.js:952 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s kirúgva" -#: src/chatView.js:958 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s kitiltva %s által" -#: src/chatView.js:960 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s kitiltva" -#: src/chatView.js:965 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s csatlakozott" -#: src/chatView.js:970 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s kilépett" -#: src/chatView.js:1063 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d felhasználó csatlakozott" msgstr[1] "%d felhasználó csatlakozott" -#: src/chatView.js:1066 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -492,14 +497,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1133 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1138 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Tegnap %H:%M" @@ -507,7 +512,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1143 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A %H:%M" @@ -516,7 +521,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1149 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %-d. %H:%M" @@ -525,21 +530,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1155 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Y. %B %-d. %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1160 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%H:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1165 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Tegnap %H:%M" @@ -547,7 +552,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1170 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A %H:%M" @@ -556,7 +561,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1176 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%B %-d. %H:%M" @@ -565,26 +570,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1182 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Y. %B %-d. %H:%M" -#: src/connections.js:51 +#: src/connections.js:42 msgid "Already added" msgstr "Már fel van véve" -#: src/connections.js:106 +#: src/connections.js:104 msgid "No results." msgstr "Nincs találat." -#. Translators: %s is a connection name -#: src/connections.js:485 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "„%s” tulajdonságai" -#: src/connections.js:529 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -592,60 +596,60 @@ "A Polari egy hálózati hiba miatt bontotta a kapcsolatot. Kérem ellenőrizze, " "hogy a cím mező helyes-e." -#: src/entryArea.js:364 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Beilleszt %s szövegsort egy nyilvános beillesztési szolgáltatásba?" msgstr[1] "Beilleszt %s szövegsort egy nyilvános beillesztési szolgáltatásba?" -#: src/entryArea.js:368 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "%s szövegsor feltöltése egy nyilvános beillesztési szolgáltatásba…" msgstr[1] "%s szövegsor feltöltése egy nyilvános beillesztési szolgáltatásba…" -#: src/entryArea.js:375 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Feltölti a képet egy nyilvános beillesztési szolgáltatásba?" -#: src/entryArea.js:376 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Kép feltöltése egy nyilvános beillesztési szolgáltatásba…" #. Translators: %s is a filename -#: src/entryArea.js:397 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Feltölti a(z) „%s” fájlt egy nyilvános beillesztési szolgáltatásba?" #. Translators: %s is a filename -#: src/entryArea.js:399 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "A(z) „%s” fájl feltöltése egy nyilvános beillesztési szolgáltatásba…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:408 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s itt: #%s" -#: src/entryArea.js:410 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Beillesztés innen: %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Vissza" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Kész" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "Kö_vetkező" @@ -742,190 +746,216 @@ msgid "Usage: %s" msgstr "Használat: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Ismert parancsok:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Felhasználók ezen: %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nincs téma beállítva" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Hálózat hozzáadása" -#: src/mainWindow.js:351 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d felhasználó" msgstr[1] "%d felhasználó" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Csevegőszoba elhagyása" -#: src/roomList.js:186 +#: src/roomList.js:190 msgid "End conversation" msgstr "Beszélgetés befejezése" -#: src/roomList.js:290 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "A(z) %s hálózattal probléma van" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:361 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:368 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Kapcsolódási probléma" -#: src/roomList.js:385 +#: src/roomList.js:396 msgid "Connected" msgstr "Kapcsolódva" -#: src/roomList.js:387 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Kapcsolódás…" -#: src/roomList.js:389 src/userList.js:414 -msgid "Offline" -msgstr "Nem érhető el" - -#: src/roomList.js:391 +#: src/roomList.js:402 msgid "Unknown" msgstr "Ismeretlen" -#: src/roomList.js:411 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Nem sikerült biztonságos módon kapcsolódni ide: %s." -#: src/roomList.js:414 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "Ehhez jelszó szükséges: %s." -#: src/roomList.js:420 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nem sikerült kapcsolódni ide: %s. A kiszolgáló elfoglalt." -#: src/roomList.js:423 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nem sikerült kapcsolódni ide: %s." -#: src/roomStack.js:121 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "A jelszó mentendő?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "" +"Az azonosítás automatikusan megtörténik a következő csatlakozáskor ehhez: %s" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "_Jelszó mentése" -#: src/roomStack.js:130 -msgid "Should the password be saved?" -msgstr "A jelszó mentendő?" +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Nem sikerült a szobához csatlakozni" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "Ú_jra" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "A szoba tele van." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Kitiltották a szobából." -#: src/roomStack.js:167 +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "A szobához meghívás szükséges." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Kirúgták a szobából." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Jelenleg nem lehetséges a szobához csatlakozni, de később újra " +"megpróbálhatja." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Csatlakozás egy szobához a + gomb használatával." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Viszlát" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Menti a(z) %s jelszót ehhez: %s?" -#: src/telepathyClient.js:585 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" -"Az azonosítás automatikusan megtörténik a következő csatlakozáskor ehhez: %s" - -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Mentés" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s itt: %s" -#: src/userList.js:228 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d másodperce" msgstr[1] "%d másodperce" -#: src/userList.js:233 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d perce" msgstr[1] "%d perce" -#: src/userList.js:238 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d órája" msgstr[1] "%d órája" -#: src/userList.js:243 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d napja" msgstr[1] "%d napja" -#: src/userList.js:248 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d hete" msgstr[1] "%d hete" -#: src/userList.js:252 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d hónapja" msgstr[1] "%d hónapja" -#: src/userList.js:410 +#: src/userList.js:452 msgid "Available in another room." msgstr "Egy másik szobában elérhető." -#: src/userList.js:412 +#: src/userList.js:454 msgid "Online" msgstr "Elérhető" -#: src/userList.js:557 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Nincs találat" -#: src/userTracker.js:305 +#: src/userTracker.js:312 msgid "User is online" msgstr "A felhasználó elérhető" -#: src/userTracker.js:306 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "A(z) %s felhasználó most elérhető." @@ -939,4 +969,3 @@ #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari NickServ jelszó ehhez: %s" - diff -Nru polari-3.32.0/po/id.po polari-3.34.0/po/id.po --- polari-3.32.0/po/id.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/id.po 2019-09-09 18:44:11.000000000 +0000 @@ -3,30 +3,30 @@ # This file is distributed under the same license as the polari package. # Andika Triwidada , 2014, 2016 # Sendy Aditya Suryana , 2015 -# +# Kukuh Syafaat , 2017, 2018, 2019 msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-07-25 15:56+0700\n" +"POT-Creation-Date: 2019-06-18 09:10+0000\n" +"PO-Revision-Date: 2019-06-21 17:58+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=2; plural= n!=1;\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Suatu Klien Internet Relay Chat untuk GNOME" @@ -53,15 +53,10 @@ "pesan penting — untuk percakapan pribadi, bahkan dimungkinkan untuk menjawab " "seketika tanpa bertukar balik ke aplikasi!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Proyek GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -167,7 +162,7 @@ msgstr "Na_ma Asli" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Batal" @@ -290,7 +285,7 @@ "Pilih ruang yang ingin Anda sambungkan. Anda dapat menambahkan lebih banyak " "jaringan dan ruangan nanti, dengan mengklik tombol +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Bergabung Ke Ruang Obrolan" @@ -327,37 +322,26 @@ msgstr "Tentang" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Keluar" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Jalankan Polari di Latar Belakang?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari akan terus berjalan ketika ditutup dan akan secara otomatis dimulai " -"pada saat masuk." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Keluar" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Jalankan di latar belakang" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Tambah ruang dan jaringan" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Tampilkan pengguna yang tersambung" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Luring" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Pergi daring untuk mengobrol dan menerima pesan." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Ubah nama panggilan:" @@ -406,120 +390,122 @@ msgid "Start Conversation" msgstr "Mulai Percakapan" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Mulai klien Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Mulai dalam mode awakutu" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Izinkan berjalan di samping instance lain" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Cetak versi dan keluar" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Gagal membuka taut" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s dihapus." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Andika Triwidada , 2014, 2016, 2018\n" "Sendy Aditya Suryana , 2015\n" -"Kukuh Syafaat , 2017" +"Kukuh Syafaat , 2017, 2018. 2019" -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Pelajari lebih lanjut tentang Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Tak Jadi" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Pesan Baru" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Buka Tautan" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Salin Alamat Tautan" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s kini dikenal sebagai %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s telah terputus" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s telah ditendang oleh %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s telah ditendang" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s telah dicekal oleh %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s telah dicekal" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s bergabung" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s pergi" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d pengguna bergabung" +msgstr[1] "%d pengguna bergabung" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" msgstr[0] "%d pengguna pergi" +msgstr[1] "%d pengguna pergi" #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Kemarin, %H∶%M" @@ -527,7 +513,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -536,7 +522,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -545,21 +531,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Kemarin, %l∶%M %p" @@ -567,7 +553,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -576,7 +562,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -585,26 +571,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Telah ditambahkan" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Tidak ada hasil." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Properti \"%s\"" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -612,58 +597,60 @@ "Polari terputus karena galat jaringan. Harap periksa kembali alamat yang " "benar." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Tempel %s baris teks ke layanan tempel publik?" +msgstr[1] "Tempel %s baris teks ke layanan tempel publik?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" -msgstr[0] "Sedang mengunggah %s baris teks ke layanan tempel publik..." +msgstr[0] "Sedang mengunggah %s baris teks ke layanan tempel publik…" +msgstr[1] "Sedang mengunggah %s baris teks ke layanan tempel publik…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Unggah citra ke layanan tempel publik?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" -msgstr "Sedang mengunggah citra ke layanan tempel publik..." +msgstr "Sedang mengunggah citra ke layanan tempel publik…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Unggah \"%s\" ke layanan tempel publik?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" -msgstr "Sedang mengunggah \"%s\" ke layanan tempel publik..." +msgstr "Sedang mengunggah \"%s\" ke layanan tempel publik…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s dalam #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Tempel dari %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "Kem_bali" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Selesai" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "Sela_njutnya" @@ -757,16 +744,16 @@ msgid "Usage: %s" msgstr "Cara pakai: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" -msgstr "Perintah yang dikenal: " +msgstr "Perintah yang dikenal:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Pengguna pada %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Topik tak ditata" @@ -774,81 +761,74 @@ msgid "Add Network" msgstr "Tambah Jaringan" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d pengguna" +msgstr[1] "%d pengguna" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Tinggalkan ruangan" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Akhiri percakapan" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Jaringan %s punya kesalahan" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Masalah Koneksi" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Tersambung" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" -msgstr "Menyambung..." - -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Luring" +msgstr "Menyambung…" -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Tak dikenal" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Tidak bisa menyambung ke %s dengan cara aman." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s memerlukan sandi." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Tidak bisa menyambung ke %s. Server sibuk." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Tidak bisa menyambung ke %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Simpan Sandi" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Apakah kata sandi mesti disimpan?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -856,89 +836,125 @@ "Identifikasi akan terjadi secara otomatis saat berikutnya Anda menyambung ke " "%s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Simpan Sandi" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Gagal bergabung dengan ruangan" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Ulangi" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Ruangan penuh." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Anda telah dicegah dari ruangan." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Ruangan ini hanya untuk undangan." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Anda telah ditendang dari ruangan." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Tidak mungkin bergabung dengan ruangan sekarang, tetapi Anda bisa mencoba " +"lagi nanti." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Bergabung ke suatu ruang memakai tombol +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Selamat Tinggal" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Simpan sandi %s untuk %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Simpan" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s dalam %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d detik yang lalu" +msgstr[1] "%d detik yang lalu" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d menit yang lalu" +msgstr[1] "%d menit yang lalu" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d jam yang lalu" +msgstr[1] "%d jam yang lalu" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d hari yang lalu" +msgstr[1] "%d hari yang lalu" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d minggu yang lalu" +msgstr[1] "%d minggu yang lalu" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d bulan yang lalu" +msgstr[1] "%d bulan yang lalu" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Tersedia di ruang lain." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Daring" -#: src/userList.js:562 -msgid "No results" -msgstr "Tidak ada hasil" - -#: src/userList.js:734 -msgid "All" -msgstr "Semua" +#: src/userList.js:617 +msgid "No Results" +msgstr "Tidak Ada Hasil" -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Pengguna daring" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Pengguna %s sekarang daring." @@ -952,3 +968,25 @@ #, javascript-format msgid "Polari NickServ password for %s" msgstr "Sandi NickServ Polari untuk %s" + +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Jalankan Polari di Latar Belakang?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari akan terus berjalan ketika ditutup dan akan secara otomatis " +#~ "dimulai pada saat masuk." + +#~ msgid "_Quit" +#~ msgstr "_Keluar" + +#~ msgid "_Run in background" +#~ msgstr "_Jalankan di latar belakang" + +#~ msgid "All" +#~ msgstr "Semua" diff -Nru polari-3.32.0/po/it.po polari-3.34.0/po/it.po --- polari-3.32.0/po/it.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/it.po 2019-09-09 18:44:11.000000000 +0000 @@ -1,15 +1,15 @@ # Italian translation of polari -# Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc. +# Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the polari package. -# Milo Casagrande , 2013, 2014, 2015, 2016, 2017, 2018. +# Milo Casagrande , 2013, 2014, 2015, 2016, 2017, 2018, 2019. # Gianvito Cavasoli , 2017. # msgid "" msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-07-27 10:45+0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-20 10:35+0200\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italiano \n" "Language: it\n" @@ -18,16 +18,16 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Launchpad-Export-Date: 2011-04-18 19:13+0000\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un programma IRC per GNOME" @@ -54,15 +54,10 @@ "rispondere immediatamente dalla notifica senza dover usare direttamente " "l'applicazione." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Il progetto GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -168,7 +163,7 @@ msgstr "Nome _reale:" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "A_nnulla" @@ -291,7 +286,7 @@ "Selezionare le stanze a cui collegarsi. Facendo clic sul pulsante + è " "possibile aggiungere nuove reti e stanze." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Entra in stanza di conversazione" @@ -328,37 +323,26 @@ msgstr "Informazioni" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Esci" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Eseguire l'applicazione in background?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"L'applicazione continua a funzionare quando chiusa e viene lanciata " -"automaticamente all'avvio." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Esci" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Esegui in background" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Aggiunge stanze e reti" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Mostra utenti connessi" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Offline" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Andare online per chiacchierare e ricevere messaggi." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Cambia soprannome:" @@ -407,103 +391,103 @@ msgid "Start Conversation" msgstr "Inizia conversazione" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Avvia client Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Avvia in modalità debug" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Consente l'esecuzione insieme a un'altra istanza" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Stampa la versione ed esce" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Apertura del collegamento non riuscita" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s rimosso." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" -msgstr "Milo Casagrande , 2013-2016" +msgstr "Milo Casagrande " -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Maggiori informazioni su Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Annulla" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nuovi messaggi" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Apri collegamento" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copia indirizzo collegamento" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "L'utente %s è ora conosciuto come %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "L'utente %s si è disconnesso" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "L'utente %s è stato cacciato (kick) da %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "L'utente %s è stato cacciato (kick)" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "L'utente %s è stato bandito da %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "L'utente %s è stato bandito" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "L'utente %s è entrato" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "L'utente %s se n'è andato" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d utente è entrato" msgstr[1] "%d utenti sono entrati" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -512,14 +496,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Ieri, %H:%M" @@ -527,7 +511,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -536,7 +520,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -545,21 +529,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%I∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Ieri, %I∶%M %p" @@ -567,7 +551,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %I∶%M %p" @@ -576,7 +560,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %I∶%M %p" @@ -585,26 +569,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %I∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Già aggiunto" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Nessun risultato." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Proprietà di «%s»" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -612,60 +595,60 @@ "Polari si è scollegato a causa di un errore di rete. Verificare che " "l'indirizzo sia corretto." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Incollare %s riga di testo nel servizio di «paste» pubblico?" msgstr[1] "Incollare %s righe di testo nel servizio di «paste» pubblico?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Caricamento di %s riga di testo al servizio di «paste» pubblico…" msgstr[1] "Caricamento di %s righe di testo al servizio di «paste» pubblico…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Caricare l'immagine nel servizio di «paste» pubblico?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Caricamento dell'immagine nel servizio di «paste» pubblico…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Caricare «%s» nel servizio di «paste» pubblico?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Caricamento di «%s» nel servizio di «paste» pubblico…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s in #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Incolla da %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Indietro" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "Fa_tto" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Successivo" @@ -760,16 +743,16 @@ msgid "Usage: %s" msgstr "Uso: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Comandi noti:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Utenti in %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nessun argomento impostato" @@ -777,177 +760,199 @@ msgid "Add Network" msgstr "Aggiungi rete" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d utente" msgstr[1] "%d utenti" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Esci dalla stanza" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Termina conversazione" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "La rete %s presenta un errore" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Errore di connessione" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Connessi" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Connessione…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Offline" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Sconosiuto" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Impossibile stabilire una connessione con %s in modo sicuro." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s richiede una password." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Impossibile stabilire una connessione con %s: il server è occupato." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Impossibile stabilire una connessione con %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "Salva pass_word" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Salvare la password?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "L'identificazione avverrà automaticamente alla successiva connessione a %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "Salva pass_word" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Impossibile entrare nella stanza" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Riprova" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "La stanza è piena." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Si è stati banditi dalla stanza." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "La stanza è accessibile solo su invito." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Si è stati cacciati dalla stanza." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Non è possibile entrare nella stanza in questo momento, ma è possibile " +"riprovare più tardi." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Entrare in una stanza utilizzando il pulsante +" -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Ciao!" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Salvare la password di %s per %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Salva" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s in %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d secondo fa" msgstr[1] "%d secondi fa" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minuto fa" msgstr[1] "%d minuti fa" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d ora fa" msgstr[1] "%d ore fa" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d giorno fa" msgstr[1] "%d giorni fa" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d settimana fa" msgstr[1] "%d settimane fa" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d mese fa" msgstr[1] "%d mesi fa" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponibile in un'altra stanza." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Online" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Nessun risultato" -#: src/userList.js:734 -msgid "All" -msgstr "Tutto" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "L'utente è online" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "L'utente %s è ora online." @@ -961,6 +966,3 @@ #, javascript-format msgid "Polari NickServ password for %s" msgstr "Password del NickServ per %s" - -#~ msgid "Message" -#~ msgstr "Messaggio" diff -Nru polari-3.32.0/po/ja.po polari-3.34.0/po/ja.po --- polari-3.32.0/po/ja.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/ja.po 2019-09-09 18:44:11.000000000 +0000 @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2019-03-02 10:57+0000\n" -"PO-Revision-Date: 2019-03-07 19:52+0900\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-25 19:15+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -22,11 +22,12 @@ #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:829 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "GNOME 用インターネットリレーチャットクライアント" @@ -54,12 +55,7 @@ #: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" -msgstr "" - -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" +msgstr "The GNOME Project" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 @@ -166,7 +162,7 @@ msgstr "本名(_R)" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:84 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "キャンセル(_C)" @@ -289,7 +285,7 @@ "接続したいルームを選択してください。ネットワークやルームは後から + ボタンをク" "リックして追加できます。" -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:234 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "チャットルームに参加" @@ -326,6 +322,7 @@ msgstr "このアプリケーションについて" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "終了" @@ -337,6 +334,14 @@ msgid "Show connected users" msgstr "接続しているユーザーを表示する" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "オフライン" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "" + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "ニックネームの変更:" @@ -401,16 +406,16 @@ msgid "Print version and exit" msgstr "バージョンを表示して終了する" -#: src/application.js:462 src/utils.js:186 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "リンクを開けませんでした" -#: src/application.js:753 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s を削除。" -#: src/application.js:828 +#: src/application.js:848 msgid "translator-credits" msgstr "" "日本 GNOME ユーザー会 \n" @@ -419,7 +424,7 @@ "sicklylife \n" "sujiniku " -#: src/application.js:834 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Polari の詳細について" @@ -431,61 +436,61 @@ msgid "New Messages" msgstr "新しいメッセージ" -#: src/chatView.js:792 +#: src/chatView.js:786 msgid "Open Link" msgstr "リンクを開く" -#: src/chatView.js:798 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "リンクアドレスをコピー" -#: src/chatView.js:971 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s は %s となりました" -#: src/chatView.js:976 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s は切断しました" -#: src/chatView.js:985 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s は %s にキックされました" -#: src/chatView.js:986 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s はキックされました" -#: src/chatView.js:993 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s は %s に BAN されました" -#: src/chatView.js:994 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s は BAN されました" -#: src/chatView.js:999 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s が参加しました" -#: src/chatView.js:1004 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s は離れました" -#: src/chatView.js:1097 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d ユーザーが新規参加" -#: src/chatView.js:1100 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -493,14 +498,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1167 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1172 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "昨日, %H:%M" @@ -508,7 +513,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1177 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H:%M" @@ -517,7 +522,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1183 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%m月%d日, %H:%M" @@ -526,21 +531,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1189 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Y年%m月%d日, %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1194 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%p %I:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1199 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "昨日, %p %I:%M" @@ -548,7 +553,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1204 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %p %I:%M" @@ -557,7 +562,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1210 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%m月%d日, %p %I:%M" @@ -566,25 +571,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1216 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Y年%m月%d日, %p %I:%M" -#: src/connections.js:54 +#: src/connections.js:42 msgid "Already added" msgstr "追加済み" -#: src/connections.js:117 +#: src/connections.js:104 msgid "No results." msgstr "結果はありません。" -#: src/connections.js:519 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s”のプロパティ" -#: src/connections.js:563 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -592,59 +597,59 @@ "ネットワークエラーにより切断しました。アドレスが正しいことを確認してくださ" "い。" -#: src/entryArea.js:372 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "%s 行のテキストをペーストサービスに貼り付けますか?" -#: src/entryArea.js:376 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "%s 行のテキストをペーストサービスにアップロードしています…" -#: src/entryArea.js:383 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "画像をペーストサービスにアップロードしますか?" -#: src/entryArea.js:384 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "画像をペーストサービスにアップロードしています…" #. Translators: %s is a filename -#: src/entryArea.js:405 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "“%s”をペーストサービスにアップロードしますか?" #. Translators: %s is a filename -#: src/entryArea.js:407 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "“%s”をペーストサービスにアップロードしています…" # なぜかjavascript-formatだと"#%2$s の %1$s" だとmsgfmt -vcでエラーになる (非対応?) #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:416 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s (#%s)" -#: src/entryArea.js:418 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "%s から貼り付け" -#: src/initialSetup.js:84 +#: src/initialSetup.js:85 msgid "_Back" msgstr "前へ(_B)" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Done" msgstr "完了(_D)" -#: src/initialSetup.js:85 +#: src/initialSetup.js:86 msgid "_Next" msgstr "次へ(_N)" @@ -737,183 +742,207 @@ msgid "Usage: %s" msgstr "使用方法: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "使用可能なコマンド:" -#: src/ircParser.js:190 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "%s 上のユーザー:" -#: src/ircParser.js:270 +#: src/ircParser.js:271 msgid "No topic set" msgstr "トピックが設定されていません" -#: src/joinDialog.js:234 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "ネットワークの追加" -#: src/mainWindow.js:361 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d ユーザー" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "チャットルームを離れる" -#: src/roomList.js:193 +#: src/roomList.js:190 msgid "End conversation" msgstr "会話の終了" -#: src/roomList.js:299 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "ネットワーク %s でエラーが発生しました" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:370 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:377 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "接続の問題" -#: src/roomList.js:394 +#: src/roomList.js:396 msgid "Connected" msgstr "接続済み" -#: src/roomList.js:396 +#: src/roomList.js:398 msgid "Connecting…" msgstr "接続処理中…" -#: src/roomList.js:398 src/userList.js:426 -msgid "Offline" -msgstr "オフライン" - -#: src/roomList.js:400 +#: src/roomList.js:402 msgid "Unknown" msgstr "状態不明" -#: src/roomList.js:420 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "%s への安全な接続を確立できませんでした。" -#: src/roomList.js:423 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s に接続するにはパスワードが必要です。" -#: src/roomList.js:429 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "%s へ接続できませんでした。サーバーがビジー状態です。" -#: src/roomList.js:432 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "%s へ接続できませんでした。" -#: src/roomStack.js:123 -msgid "_Save Password" -msgstr "パスワードの保存(_S)" - -#: src/roomStack.js:133 +#: src/roomStack.js:98 msgid "Should the password be saved?" +msgstr "パスワードを保存しますか?" + +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" msgstr "" -#: src/roomStack.js:180 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "パスワードを保存(_S)" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "ルームに参加できませんでした" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "再試行(_R)" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "ルームが満杯です。" + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "ルームから BAN されました。" + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "ルームは招待者限定です。" + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "ルームからキックされました。" + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "現時点ではルームに参加できないため、後ほど再試行してください。" + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "+ ボタンを押してチャットルームに参加してください。" -#: src/telepathyClient.js:418 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Good Bye" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:598 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "%s のパスワード (%s 用) を保存しますか?" -#: src/telepathyClient.js:599 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "" - -#: src/telepathyClient.js:602 +#: src/telepathyClient.js:651 msgid "Save" msgstr "保存" # なぜかjavascript-formatだと"#%2$s の %1$s" だとmsgfmt -vcでエラーになる (非対応?) #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:625 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s (%s)" -#: src/userList.js:237 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d 秒前" -#: src/userList.js:242 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d 分前" -#: src/userList.js:247 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d 時間前" -#: src/userList.js:252 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d 日前" -#: src/userList.js:257 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d 週前" -#: src/userList.js:261 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d ヶ月前" -#: src/userList.js:422 +#: src/userList.js:452 msgid "Available in another room." msgstr "" -#: src/userList.js:424 +#: src/userList.js:454 msgid "Online" msgstr "オンライン" -#: src/userList.js:582 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "結果なし" -#: src/userTracker.js:315 +#: src/userTracker.js:312 msgid "User is online" msgstr "" -#: src/userTracker.js:316 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "ユーザー %s は現在オンラインです。" @@ -928,6 +957,9 @@ msgid "Polari NickServ password for %s" msgstr "" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + #~ msgid "Room _Name" #~ msgstr "ルーム名(_N)" diff -Nru polari-3.32.0/po/ko.po polari-3.34.0/po/ko.po --- polari-3.32.0/po/ko.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/ko.po 2019-09-09 18:44:11.000000000 +0000 @@ -2,7 +2,7 @@ # Copyright (C) 2014 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. # Changwoo Ryu , 2014-2017. -# DaeHyun Sung , 2017-2018. +# DaeHyun Sung , 2017-2019. # # - 이 프로그램의 이름인 Polari는 '폴라리'로 번역 # @@ -13,8 +13,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-29 17:10+0000\n" -"PO-Revision-Date: 2018-09-02 12:22+0900\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-09-04 00:19+0900\n" "Last-Translator: DaeHyun Sung \n" "Language-Team: Korean \n" "Language: ko\n" @@ -26,11 +26,12 @@ #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "폴라리" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:814 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "그놈 데스크톱 IRC 클라이언트" @@ -56,15 +57,10 @@ "다. 개인 대화의 경우에는 폴라리 프로그램으로 전환하지 않고 알림 창에서 즉시 " "대답을 할 수 있습니다!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "그놈 프로젝트" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -78,7 +74,7 @@ msgid "List of channels to restore on startup" msgstr "시작할 때 복구할 채널 목록" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "백그라운드에서 실행" @@ -175,7 +171,7 @@ msgstr "실명(_R)" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:81 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "취소(_C)" @@ -298,7 +294,7 @@ "연결할 대화방을 선택하기. + 단추를 선택하여 여러 네트워크 및 대화방을 추가할 " "수 있습니다." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:229 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "대화방 입장" @@ -322,48 +318,39 @@ msgid "_Custom Network" msgstr "사용자 설정 네트워크(_C)" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "폴라리를 백그라운드에서 실행하시곘습니까?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "창을 닫아도 폴라리를 계속 실행하고 로그인할 때 자동으로 시작합니다." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "끝내기(_Q)" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "백그라운드에서 실행(_R)" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "대화방 및 네트워크 추가" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "접속 사용자 보기" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "키보드 바로 가기" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "도움말" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "정보" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "끝내기" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "대화방 및 네트워크 추가" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "접속 사용자 보기" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "오프라인" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "대화 및 메시지를 받으려면 온라인 활성화하기." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "대화명 바꾸기:" @@ -428,26 +415,26 @@ msgid "Print version and exit" msgstr "버전을 출력하고 나가기" -#: src/application.js:422 src/utils.js:185 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "연결을 여는데 실패했습니다" -#: src/application.js:709 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s 제거함." -#: src/application.js:813 +#: src/application.js:848 msgid "translator-credits" msgstr "" "류창우 \n" "성대현 " -#: src/application.js:819 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "폴라리에 대해 더 알아보기" -#: src/appNotifications.js:80 +#: src/appNotifications.js:87 msgid "Undo" msgstr "실행 취소" @@ -455,61 +442,61 @@ msgid "New Messages" msgstr "새 메시지" -#: src/chatView.js:765 +#: src/chatView.js:786 msgid "Open Link" msgstr "링크 열기" -#: src/chatView.js:771 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "링크 주소 복사" -#: src/chatView.js:939 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s님은 이제 %s입니다" -#: src/chatView.js:944 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s님이 연결을 끊었습니다" -#: src/chatView.js:952 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s님을 %s님이 강제 퇴장시켰습니다" -#: src/chatView.js:954 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s님이 강제 퇴장되었습니다" -#: src/chatView.js:960 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s님을 %s님이 입장 금지했습니다" -#: src/chatView.js:962 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s님이 입장 금지되었습니다" -#: src/chatView.js:967 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s님이 입장했습니다" -#: src/chatView.js:972 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s 남음" -#: src/chatView.js:1065 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "사용자 %d명 입장했습니다" -#: src/chatView.js:1068 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -517,14 +504,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1135 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1140 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "어제, %H∶%M" @@ -532,7 +519,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -541,7 +528,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %d일, %H∶%M" @@ -550,21 +537,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1157 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Y년 %B %d일, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1162 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%p %l∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1167 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "어제, %p %l∶%M" @@ -572,7 +559,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %p %l∶%M" @@ -581,7 +568,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%B %d일, %p %l∶%M" @@ -590,26 +577,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1184 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Y년 %B %d일, %p %l∶%M" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "이미 추가함" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "결과 없음." -#. Translators: %s is a connection name -#: src/connections.js:486 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” 속성" -#: src/connections.js:530 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -617,58 +603,58 @@ "폴라리의 연결이 네트워크 오류 때문에 끊겼습니다. 주소 입력이 올바른지 확인해 " "보십시오." -#: src/entryArea.js:363 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "공개 페이스트 서비스에 텍스트 %s줄을 붙여넣으시겠습니까?" -#: src/entryArea.js:367 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "공개 페이스트 서비스에 텍스트 %s줄을 업로드하는 중…" -#: src/entryArea.js:374 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "이미지를 공개 페이스트 서비스에 업로드하시겠습니까?" -#: src/entryArea.js:375 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "이미지를 공개 페이스트 서비스에 업로드하는 중…" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "“%s” 파일을 공개 페이스트 서비스에 업로드하시겠습니까?" #. Translators: %s is a filename -#: src/entryArea.js:398 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "“%s” 파일을 공개 페이스트 서비스에 업로드하는 중…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:407 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s (#%s 대화방)" -#: src/entryArea.js:409 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "%s에서 붙여 넣음" -#: src/initialSetup.js:81 +#: src/initialSetup.js:85 msgid "_Back" msgstr "뒤로(_B)" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Done" msgstr "완료(_D)" -#: src/initialSetup.js:82 +#: src/initialSetup.js:86 msgid "_Next" msgstr "다음(_N)" @@ -681,14 +667,14 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/CLOSE [<채널>] [<이유>] — <채널>을 닫습니다, 채널을 쓰지 않으면 현재 채널이 " "기본값입니다" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -696,67 +682,67 @@ "/HELP [<명령>] — <명령>의 도움말을 표시하고, 명령을 안 쓰면 명령어 목록을 표" "시합니다" -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE <별명> [<채널>] — <별명>을 <채널>에 초대하고, 채널을 안 쓰면 현재 채" "널에 초대합니다" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN <채널> — 에 참여합니다" -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK <별명> — <별명>을 현재 채널에서 강제 퇴장시킵니다" -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME <동작> — 현재 채널에 <동작>을 보냅니다" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "/MSG <별명> [<메시지>] — <별명>에 개인 대화를 보냅니다" -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — 현재 채널의 사용자 목록을 표시합니다" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK <별명> — 자기 별명을 <별명>으로 설정합니다" -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [<채널>] [<이유>] — <채널>을 나갑니다, 채널을 쓰지 않으면 현재 채널이 " "기본값입니다" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY <별명> — <별명>과 개인 대화를 엽니다" -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [<이유>] — 현재 서버에서 연결을 끊습니다" -#: src/ircParser.js:36 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY <글> — 현재 대화방 또는 상대에게 <글>을 보냅니다" -#: src/ircParser.js:37 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC <방제목> — 방 제목을 <방제목>으로 설정하고, 제목을 쓰지 않으면 현재 제" "목을 표시합니다" -#: src/ircParser.js:40 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "알 수 없는 명령 — 명령어 목록을 보려면 /HELP 명령을 사용하십시오" -#: src/ircParser.js:54 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "사용법: %s" @@ -765,190 +751,233 @@ msgid "Known commands:" msgstr "알려진 명령어:" -#: src/ircParser.js:189 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "%s에 있는 사용자:" -#: src/ircParser.js:268 +#: src/ircParser.js:271 msgid "No topic set" msgstr "방 제목을 설정하지 않았습니다" -#: src/joinDialog.js:230 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "네트워크 추가" -#: src/mainWindow.js:384 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "사용자 %d명" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "대화방 나가기" -#: src/roomList.js:187 +#: src/roomList.js:190 msgid "End conversation" msgstr "대화 끝내기" -#: src/roomList.js:291 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "%s 네트워크에 오류가 있습니다" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:362 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:386 +#: src/roomList.js:379 +msgid "Connection Problem" +msgstr "연결 문제" + +#: src/roomList.js:396 msgid "Connected" msgstr "연결됨" -#: src/roomList.js:388 +#: src/roomList.js:398 msgid "Connecting…" msgstr "연결 중…" -#: src/roomList.js:390 src/userList.js:413 -msgid "Offline" -msgstr "오프라인" - -#: src/roomList.js:392 +#: src/roomList.js:402 msgid "Unknown" msgstr "알 수 없음" -#: src/roomList.js:412 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "안전한 방법으로 %s에 연결할 수 없습니다." -#: src/roomList.js:415 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s에 암호가 필요합니다." -#: src/roomList.js:421 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "%s에 연결할 수 없습니다. 서버가 사용 중입니다." -#: src/roomList.js:424 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "%s에 연결할 수 없습니다." -#: src/roomStack.js:115 +#: src/roomStack.js:98 +msgid "Should the password be saved?" +msgstr "암호를 저장합니까?" + +# NOTE: nickserv의 identify 명령을 뜻한다 +#: src/roomStack.js:100 src/telepathyClient.js:648 +#, javascript-format +msgid "" +"Identification will happen automatically the next time you connect to %s" +msgstr "신원 확인(identify)은 다음에 %s에 연결할 때 자동으로 수행합니다" + +#: src/roomStack.js:106 msgid "_Save Password" msgstr "암호 저장(_S)" -#: src/roomStack.js:124 -msgid "Should the password be saved?" -msgstr "암호를 저장합니까?" +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "대화방 입장이 실패하였습니다" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "다시 시도(_R)" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "대화방이 꽉 찼습니다." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "대화방 입장이 금지되었습니다." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "대화방은 초대 전용입니다." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "대화방에서 쫒겨났습니다." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "현재, 대화방 입장이 가능하지 않지만, 다음에 시도할 수 있습니다." -#: src/roomStack.js:161 +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "+ 단추를 이용해 대화방에 입장하십시오." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "안녕히 가세요" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "%s 암호를 (%s에 대해) 저장합니까?" -# NOTE: nickserv의 identify 명령을 뜻한다 -#: src/telepathyClient.js:585 -#, javascript-format -msgid "" -"Identification will happen automatically the next time you connect to %s" -msgstr "신원 확인(identify)은 다음에 %s에 연결할 때 자동으로 수행합니다" - -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "저장" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s (%s 대화방)" -#: src/userList.js:227 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d초 전" -#: src/userList.js:232 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d분 전" -#: src/userList.js:237 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d시간 전" -#: src/userList.js:242 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d일 전" -#: src/userList.js:247 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d주 전" -#: src/userList.js:251 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d달 전" -#: src/userList.js:409 +#: src/userList.js:452 msgid "Available in another room." msgstr "다른 대화방에 있음." -#: src/userList.js:411 +#: src/userList.js:454 msgid "Online" msgstr "온라인" -#: src/userTracker.js:306 +#: src/userList.js:617 +msgid "No Results" +msgstr "결과 없음" + +#: src/userTracker.js:312 msgid "User is online" msgstr "사용자 온라인" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "%s 사용자는 이제 온라인 상태입니다." -#: src/utils.js:107 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "%s에 대한 폴라리 서버 암호" -#: src/utils.js:112 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "%s에 대한 폴라리 NickServ 암호" -#~ msgid "Connection Problem" -#~ msgstr "연결 문제" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "폴라리를 백그라운드에서 실행하시곘습니까?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "창을 닫아도 폴라리를 계속 실행하고 로그인할 때 자동으로 시작합니다." + +#~ msgid "_Quit" +#~ msgstr "끝내기(_Q)" -#~ msgid "No results" -#~ msgstr "결과 없음" +#~ msgid "_Run in background" +#~ msgstr "백그라운드에서 실행(_R)" #~ msgid "All" #~ msgstr "모두" diff -Nru polari-3.32.0/po/lt.po polari-3.34.0/po/lt.po --- polari-3.32.0/po/lt.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/lt.po 2019-09-09 18:44:11.000000000 +0000 @@ -2,14 +2,14 @@ # Copyright (C) 2014 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. # FULL NAME , 2014. -# Aurimas Černius , 2014, 2015, 2016, 2017, 2018. +# Aurimas Černius , 2014-2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-05 15:46+0300\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-09 13:33+0300\n" "Last-Translator: Aurimas Černius \n" "Language-Team: Lietuvių \n" "Language: lt\n" @@ -17,17 +17,17 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" -"%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Gtranslator 2.91.7\n" +"%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Generator: Gtranslator 3.32.1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "GNOME internetinio perdavimo pokalbių klientas" @@ -53,15 +53,10 @@ "pranešimo – privatiems pokalbiams jie netgi leidžia tiesiogiai atsakyti " "nepersijungiant atgal į programą!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME projektas" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -165,7 +160,7 @@ msgstr "_Tikras vardas" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Atsisakyti" @@ -287,7 +282,7 @@ "Pasirinkite kambarius, prie kurių norite prisijungti. Vėliau galėsite " "pridėti daugiau tinklų bei kambarių paspaudę + mygtuką." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Prisijungti prie pokalbių kambario" @@ -324,35 +319,26 @@ msgstr "Apie" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Išeiti" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Vykdyti Polari fone?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "Polari užvėrus toliau veiks ir bus automatiškai paleista prisijungus." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Išeiti" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Vykdyti fone" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Pridėti kambarius bei tinklus" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Rodyti susietus naudotojus" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Atsijungęs" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Prisijunkite prie interneto ir bendraukite bei gaukite pranešimus." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Keisti slapyvardį:" @@ -401,98 +387,98 @@ msgid "Start Conversation" msgstr "Pradėti pokalbį" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Paleisti Telepathy klientą" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Paleisti derinimo veiksena" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Leisti vykdyti kelis programos vienetus" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Atspausdinti versiją ir išeiti" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Nepavyko atverti saito" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s pašalinta." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Išvertė:\n" "Aurimas Černius " -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Sužinokite daugiau apie Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Atšaukti" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nauji pranešimai" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Atverti saitą" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopijuoti saito adresą" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s dabar žinomas kaip %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s atsijungė" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s buvo išspirtas %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s buvo išspirtas" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s buvo užblokuotas %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s buvo užblokuotas" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s prisijungė" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s išėjo" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -500,7 +486,7 @@ msgstr[1] "Prisijungė %d naudotojai" msgstr[2] "Prisijungė %d naudotojų" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -510,14 +496,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Vakar, %H:%M" @@ -525,7 +511,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -534,7 +520,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %d, %H∶%M" @@ -543,21 +529,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Y %B %d, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Vakar, %l∶%M %p" @@ -565,7 +551,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -574,7 +560,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%B %d, %l∶%M %p" @@ -583,26 +569,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Y %B %d, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Jau pridėtas" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Nėra rezultatų." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "„%s“ savybės" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -610,7 +595,7 @@ "Polari atsijungė dėl tinklo klaidos. Patikrinkite, ar adreso laukas yra " "teisingas." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -618,7 +603,7 @@ msgstr[1] "Įdėti %s teksto eilutes į viešąją įklijavimo paslaugą?" msgstr[2] "Įdėti %s teksto eilučių į viešąją įklijavimo paslaugą?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -626,46 +611,46 @@ msgstr[1] "Įdedamos %s teksto eilutės į viešąją įklijavimo paslaugą…" msgstr[2] "Įdedama %s teksto eilučių į viešąją įklijavimo paslaugą…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Nusiųsti paveikslėlį į viešąją įklijavimo paslaugą?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Siunčiamas paveikslėlis į viešąją įklijavimo paslaugą?" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Nusiųsti paveikslėlį „%s“ į viešąją įklijavimo paslaugą?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Siunčiamas paveikslėlis „%s“ į viešąją įklijavimo paslaugą…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Įdėti iš %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "At_gal" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "Atlikta" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Kitas" @@ -755,16 +740,16 @@ msgid "Usage: %s" msgstr "Naudojimas: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Žinomos komandos:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "%s naudotojai:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Tema nenustatyta" @@ -772,7 +757,7 @@ msgid "Add Network" msgstr "Pridėti tinklą" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -780,107 +765,133 @@ msgstr[1] "%d naudotojai" msgstr[2] "%d naudotojų" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Palikti pokalbių kambarį" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Baigti pokalbį" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Tinkle %s įvyko klaida" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Ryšio klaida" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Prisijungta" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Jungiamasi…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Atsijungęs" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Nežinoma" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Nepavyko saugiai prisijungti prie %s." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s reikia slaptažodžio." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nepavyko prisijungti prie %s. Serveris užimtas." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nepavyko prisijungti prie %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "Į_rašyti slaptažodis" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Ar įrašyti slaptažodį?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "Identifikavimas įvyks automatiškai kitą kartą prisijungiant prie %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "Į_rašyti slaptažodis" + +#: src/roomStack.js:139 +#| msgid "Available in another room." +msgid "Failed to join the room" +msgstr "Nepavyko prisijungti prie kambario." + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Bandyti dar kartą" + +#: src/roomStack.js:165 +#| msgid "The server is busy." +msgid "The room is full." +msgstr "Kambarys yra pilnas." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Jums draudžiama prisijungti prie kambario." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Kambarys reikalauja pakvietimų." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Jūs buvote išspirtas iš kambario." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Dabar negalima prisijungti prie kambario, bet galite bandyti vėliau." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Prisijunkite prie kambario paspausdami mygtuką +." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Viso gero" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Įrašyti %s %s slaptažodį?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Įrašyti" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s kambaryje %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -888,7 +899,7 @@ msgstr[1] "Prieš %d sekundes" msgstr[2] "Prieš %d sekundžių" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -896,7 +907,7 @@ msgstr[1] "Prieš %d minutes" msgstr[2] "Prieš %d minučių" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -904,7 +915,7 @@ msgstr[1] "Prieš %d valandas" msgstr[2] "Prieš %d valandų" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -912,7 +923,7 @@ msgstr[1] "Prieš %d dienas" msgstr[2] "Prieš %d dienų" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -920,7 +931,7 @@ msgstr[1] "Prieš %d savaites" msgstr[2] "Prieš %d savaičių" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -928,27 +939,24 @@ msgstr[1] "Prieš %d mėnesius" msgstr[2] "Prieš %d mėnesių" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Pasiekiamas kitame kambaryje." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Prisijungęs" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +#| msgid "No results" +msgid "No Results" msgstr "Nėra rezultatų" -#: src/userList.js:734 -msgid "All" -msgstr "Viskas" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Naudotojas yra prisijungęs" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Naudotojas %s prisijungė." @@ -963,6 +971,27 @@ msgid "Polari NickServ password for %s" msgstr "Polari %s NickServ slaptažodis" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Vykdyti Polari fone?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari užvėrus toliau veiks ir bus automatiškai paleista prisijungus." + +#~ msgid "_Quit" +#~ msgstr "_Išeiti" + +#~ msgid "_Run in background" +#~ msgstr "_Vykdyti fone" + +#~ msgid "All" +#~ msgstr "Viskas" + #~ msgid "Message" #~ msgstr "Pranešimas" @@ -1034,9 +1063,6 @@ #~ msgid "Try again" #~ msgstr "Bandyti dar kartą" -#~ msgid "The server is busy." -#~ msgstr "Serveris užimtas." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Nepavyko prisijungti dėl nežinomos priežasties." diff -Nru polari-3.32.0/po/nl.po polari-3.34.0/po/nl.po --- polari-3.32.0/po/nl.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/nl.po 2019-09-09 18:44:11.000000000 +0000 @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-17 16:15+0000\n" -"PO-Revision-Date: 2018-08-20 13:08+0100\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-06-18 11:09+0200\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -19,17 +19,17 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Poedit 2.2.3\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:156 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:810 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Een Internet Relay Chat-cliënt voor Gnome" @@ -56,15 +56,10 @@ "zelfs mogelijk om onmiddellijk te antwoorden zonder terug te keren naar de " "toepassing!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Het Gnome-project" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -79,7 +74,7 @@ msgstr "" "Lijst van kanalen waarmee opnieuw verbonden dient te worden bij opstarten" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Op de achtergrond uitvoeren" @@ -171,7 +166,7 @@ msgstr "_Echte naam" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:79 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "Annu_leren" @@ -296,7 +291,7 @@ "Kies ruimtes waarmee u verbinding wilt maken. U kunt later meer netwerken en " "ruimtes toevoegen door op de + knop te drukken." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:227 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Gespreksruimte binnengaan" @@ -320,50 +315,39 @@ msgid "_Custom Network" msgstr "_Aangepast netwerk" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Polari in de achtergrond uitvoeren?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari zal in de achtergrond blijven draaien als het gesloten is, en zal " -"automatisch worden gestart bij aanmelden." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "A_fsluiten" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "Op de achtergrond uitvoe_ren" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Ruimtes en netwerken toevoegen" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Verbonden gebruikers tonen" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Sneltoetsen" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Hulp" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Info" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Sluiten" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Ruimtes en netwerken toevoegen" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Verbonden gebruikers tonen" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Offline" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Ga online om te chatten en berichten te ontvangen." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Bijnaam wijzigen:" @@ -412,32 +396,32 @@ msgid "Start Conversation" msgstr "Gesprek beginnen" -#: src/application.js:41 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Telepathy-cliënt starten" -#: src/application.js:46 +#: src/application.js:48 msgid "Start in debug mode" msgstr "In debugmodus opstarten" -#: src/application.js:49 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Toestaan dat meerdere instanties worden uitgevoerd" -#: src/application.js:52 +#: src/application.js:54 msgid "Print version and exit" msgstr "Versie tonen en afsluiten" -#: src/application.js:418 src/utils.js:179 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Koppeling openen mislukt" -#: src/application.js:705 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s verwijderd." -#: src/application.js:809 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Nathan Follens\n" @@ -447,74 +431,74 @@ "\n" "Meer info over Gnome-NL http://nl.gnome.org" -#: src/application.js:815 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Kom meer te weten over Polari" -#: src/appNotifications.js:77 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Ongedaan maken" -#: src/chatView.js:135 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nieuwe berichten" -#: src/chatView.js:759 +#: src/chatView.js:786 msgid "Open Link" msgstr "Koppeling openen" -#: src/chatView.js:765 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Koppelingsadres kopiëren" -#: src/chatView.js:933 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s staat nu bekend als %s" -#: src/chatView.js:938 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s heeft de verbinding verbroken" -#: src/chatView.js:946 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s is uit de ruimte geschopt door %s" -#: src/chatView.js:948 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s is uit de ruimte geschopt" -#: src/chatView.js:954 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s is verbannen door %s" -#: src/chatView.js:956 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s is verbannen" -#: src/chatView.js:961 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s is toegetreden tot de ruimte" -#: src/chatView.js:966 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s heeft de ruimte verlaten" -#: src/chatView.js:1059 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d gebruiker is toegetreden tot de ruimte" msgstr[1] "%d gebruikers zijn toegetreden tot de ruimte" -#: src/chatView.js:1062 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -523,14 +507,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1129 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%Hu%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1134 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Gisteren, %Hu%M" @@ -538,7 +522,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1139 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %Hu%M" @@ -547,7 +531,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %Hu%M" @@ -556,21 +540,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %Hu%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1156 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%lu%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1161 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Gisteren, %lu%M %p" @@ -578,7 +562,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1166 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %lu%M %p" @@ -587,7 +571,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %lu%M %p" @@ -596,26 +580,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %lu%M %p" -#: src/connections.js:50 +#: src/connections.js:42 msgid "Already added" msgstr "Reeds toegevoegd" -#: src/connections.js:105 +#: src/connections.js:104 msgid "No results." msgstr "Geen resultaten." -#. Translators: %s is a connection name -#: src/connections.js:484 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "‘%s’-eigenschappen" -#: src/connections.js:528 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -623,60 +606,60 @@ "Polari heeft de verbinding verbroken vanwege een netwerkfout. Gelieve te " "controleren of het adresveld correct is." -#: src/entryArea.js:361 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "%s regel tekst plakken in publieke paste-service?" msgstr[1] "%s regels tekst plakken in publieke paste-service?" -#: src/entryArea.js:365 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "%s regel tekst uploaden naar publieke paste-service…" msgstr[1] "%s regels tekst uploaden naar publieke paste-service…" -#: src/entryArea.js:372 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Afbeelding uploaden naar publieke paste-service?" -#: src/entryArea.js:373 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Afbeelding uploaden naar publieke paste-service…" #. Translators: %s is a filename -#: src/entryArea.js:394 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "‘%s’ uploaden naar publieke paste-service?" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "‘%s’ uploaden naar publieke paste-service…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:405 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s in #%s" -#: src/entryArea.js:407 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Plakken van %s" -#: src/initialSetup.js:79 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Terug" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Klaar" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Next" msgstr "Volge_nde" @@ -689,13 +672,13 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:22 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/CLOSE [] [] — sluit , standaard het huidige kanaal" -#: src/ircParser.js:23 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -704,269 +687,314 @@ "beschikbare opdrachten" # Ik denk niet dat wat tussen <> staat vertaald moet worden, maar ik weet het niet zeker. -#: src/ircParser.js:24 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — nodigt uit in , of het " "huidige kanaal" -#: src/ircParser.js:25 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN — treedt toe tot " -#: src/ircParser.js:26 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK — schopt uit het huidige kanaal" -#: src/ircParser.js:27 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME — stuurt naar het huidige kanaal" -#: src/ircParser.js:28 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — stuurt een privébericht naar " -#: src/ircParser.js:29 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — toont een lijst van gebruikers op het huidige kanaal" -#: src/ircParser.js:30 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK — stelt uw bijnaam in als " -#: src/ircParser.js:31 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [] [] — verlaat , standaard het huidige kanaal" -#: src/ircParser.js:32 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY — opent een privégesprek met " -#: src/ircParser.js:33 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — verbreekt verbinding met huidige server" -#: src/ircParser.js:34 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "" "/SAY — stuurt naar de huidige ruimte/het huidige contact" -#: src/ircParser.js:35 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC — stelt het onderwerp in als , of toont het " "huidige onderwerp" -#: src/ircParser.js:38 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Onbekende opdracht — probeer /HELP voor een lijst van beschikbare opdrachten" -#: src/ircParser.js:52 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Gebruik: %s" -#: src/ircParser.js:88 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Bekende opdrachten:" -#: src/ircParser.js:187 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Gebruikers op %s:" -#: src/ircParser.js:266 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Geen onderwerp ingesteld" -#: src/joinDialog.js:228 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Netwerk toevoegen" -#: src/mainWindow.js:381 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d gebruiker" msgstr[1] "%d gebruikers" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Gespreksruimte verlaten" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "End conversation" msgstr "Gesprek beëindigen" -#: src/roomList.js:289 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Netwerk %s heeft een fout" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:360 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:367 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Verbindingsfout" -#: src/roomList.js:384 +#: src/roomList.js:396 msgid "Connected" msgstr "Verbonden" -#: src/roomList.js:386 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Verbinden…" -#: src/roomList.js:388 src/userList.js:410 -msgid "Offline" -msgstr "Offline" - -#: src/roomList.js:390 +#: src/roomList.js:402 msgid "Unknown" msgstr "Onbekend" -#: src/roomList.js:410 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Op een veilige manier verbinden met %s is mislukt." -#: src/roomList.js:413 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s vereist een wachtwoord." -#: src/roomList.js:419 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Verbinding maken met %s is mislukt. De server is bezet." -#: src/roomList.js:422 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Verbinden met %s is mislukt." -#: src/roomStack.js:113 -msgid "_Save Password" -msgstr "Wachtwoord op_slaan" - -#: src/roomStack.js:122 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Moet het wachtwoord worden opgeslagen?" -#: src/roomStack.js:130 src/telepathyClient.js:585 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "Identificatie zal plaatsvinden als u de volgende keer verbindt met %s" -#: src/roomStack.js:159 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "Wachtwoord op_slaan" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Betreden van ruimte mislukt" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "Opnieu_w" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "De ruimte is volzet." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "U bent uit de ruimte verbannen." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "De ruimte is enkel toegankelijk op uitnodiging." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "U bent uit de ruimte geschopt." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Het is op dit moment niet mogelijk om de ruimte te betreden, maar u kunt het " +"later nog eens proberen." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Ga een ruimte binnen met de +-knop." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Tot ziens" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "%s-wachtwoord opslaan voor %s?" -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Opslaan" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s in %s" -#: src/userList.js:225 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d seconde geleden" msgstr[1] "%d seconden geleden" -#: src/userList.js:230 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minuut geleden" msgstr[1] "%d minuten geleden" -#: src/userList.js:235 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d uur geleden" msgstr[1] "%d uur geleden" -#: src/userList.js:240 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d dag geleden" msgstr[1] "%d dagen geleden" -#: src/userList.js:245 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d week geleden" msgstr[1] "%d weken geleden" -#: src/userList.js:249 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d maand geleden" msgstr[1] "%d maanden geleden" -#: src/userList.js:406 +#: src/userList.js:452 msgid "Available in another room." msgstr "Beschikbaar in een andere ruimte." -#: src/userList.js:408 +#: src/userList.js:454 msgid "Online" msgstr "Online" -#: src/userList.js:553 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Geen resultaten" -#: src/userTracker.js:304 +#: src/userTracker.js:312 msgid "User is online" msgstr "Gebruiker is online" -#: src/userTracker.js:305 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Gebruiker %s is nu online." -#: src/utils.js:101 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Polari-serverwachtwoord voor %s" -#: src/utils.js:106 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Polari-NickServ-wachtwoord voor %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Polari in de achtergrond uitvoeren?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari zal in de achtergrond blijven draaien als het gesloten is, en zal " +#~ "automatisch worden gestart bij aanmelden." + +#~ msgid "_Quit" +#~ msgstr "A_fsluiten" + +#~ msgid "_Run in background" +#~ msgstr "Op de achtergrond uitvoe_ren" + #~ msgid "All" #~ msgstr "Alles" diff -Nru polari-3.32.0/po/pl.po polari-3.34.0/po/pl.po --- polari-3.32.0/po/pl.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/pl.po 2019-09-09 18:44:11.000000000 +0000 @@ -1,15 +1,15 @@ # Polish translation for polari. -# Copyright © 2013-2018 the polari authors. +# Copyright © 2013-2019 the polari authors. # This file is distributed under the same license as the polari package. -# Piotr Drąg , 2013-2018. -# Aviary.pl , 2013-2018. +# Piotr Drąg , 2013-2019. +# Aviary.pl , 2013-2019. # msgid "" msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-04 19:47+0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-20 17:29+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -20,13 +20,13 @@ "|| n%100>=20) ? 1 : 2);\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Klient IRC dla środowiska GNOME" @@ -52,15 +52,10 @@ "ważna wiadomość nie zostanie pominięta. Na prywatne wiadomości można " "odpowiadać od razu, bez przełączania się do programu." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Projekt GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -164,7 +159,7 @@ msgstr "_Imię i nazwisko" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Anuluj" @@ -287,7 +282,7 @@ "Proszę wybrać pokoje do połączenia się. Później można dodać więcej sieci " "i pokojów klikając przycisk „+”." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Dołączenie do pokoju rozmów" @@ -324,37 +319,27 @@ msgstr "O programie" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Zakończ" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Czy program Polari ma działać w tle?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Program Polari będzie nadal działał po zamknięciu i będzie automatycznie " -"uruchamiany podczas logowania." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "Za_kończ" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Działaj w tle" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Dodaje pokoje i sieci" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Wyświetla połączonych użytkowników" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Offline" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "" +"Przejście do trybu online umożliwi rozmawianie i odbieranie wiadomości." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Zmiana pseudonimu:" @@ -405,98 +390,98 @@ msgid "Start Conversation" msgstr "Wyślij wiadomość" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Uruchamia klienta Telepathy" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Uruchamia w trybie debugowania" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Umożliwia działanie obok innego wystąpienia" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Wyświetla wersję i kończy działanie" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Otwarcie odnośnika się nie powiodło" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "Usunięto „%s”." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" -"Piotr Drąg , 2013-2018\n" -"Aviary.pl , 2013-2018" +"Piotr Drąg , 2013-2019\n" +"Aviary.pl , 2013-2019" -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Więcej informacji o programie Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Cofnij" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nowe wiadomości" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Otwórz odnośnik" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Skopiuj adres odnośnika" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "Użytkownik %s jest teraz znany jako %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "Użytkownik %s się rozłączył" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "Użytkownik %s został wyrzucony przez użytkownika %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "Użytkownik %s został wyrzucony" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "Użytkownik %s został zablokowany przez użytkownika %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "Użytkownik %s został zablokowany" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "Użytkownik %s dołączył do pokoju" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "Użytkownik %s opuścił pokój" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -504,7 +489,7 @@ msgstr[1] "%d użytkowników dołączyło do pokoju" msgstr[2] "%d użytkowników dołączyło do pokoju" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -514,14 +499,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Wczoraj o %H∶%M" @@ -529,7 +514,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -538,7 +523,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%-d %B, %H∶%M" @@ -547,21 +532,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%-d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%-l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Wczoraj o %-l∶%M %p" @@ -569,7 +554,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %-l∶%M %p" @@ -578,7 +563,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%-d %B, %-l∶%M %p" @@ -587,26 +572,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%-d %B %Y, %-l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Już dodano" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Brak wyników." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Właściwości połączenia „%s”" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -614,7 +598,7 @@ "Program Polari został rozłączony z powodu błędu sieci. Proszę sprawdzić, czy " "pole adresu jest poprawne." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -622,7 +606,7 @@ msgstr[1] "Wkleić %s wiersze tekstu do publicznego serwisu?" msgstr[2] "Wkleić %s wierszy tekstu do publicznego serwisu?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -630,46 +614,46 @@ msgstr[1] "Wysyłanie %s wierszy tekstu do publicznego serwisu…" msgstr[2] "Wysyłanie %s wierszy tekstu do publicznego serwisu…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Wysłać obraz do publicznego serwisu?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Wysyłanie obrazu do publicznego serwisu…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Wysłać „%s” do publicznego serwisu?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Wysyłanie „%s” do publicznego serwisu…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s w pokoju #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Tekst od użytkownika %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Wstecz" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Gotowe" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Dalej" @@ -762,16 +746,16 @@ msgid "Usage: %s" msgstr "Użycie: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Znane polecenia:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Użytkownicy w kanale %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nie ustawiono tematu" @@ -779,7 +763,7 @@ msgid "Add Network" msgstr "Dodanie sieci" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -787,107 +771,132 @@ msgstr[1] "%d użytkowników" msgstr[2] "%d użytkowników" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Opuść pokój" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Zakończ rozmowę" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Błąd sieci %s" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problem z połączeniem" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Połączono" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Łączenie…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Offline" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Nieznane" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Nie można wykonać bezpiecznego połączenia z „%s”." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "„%s” wymaga hasła." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nie można połączyć z „%s”. Serwer jest zajęty." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nie można połączyć z „%s”." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Zapisz hasło" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Zapisać hasło?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "Identyfikacja nastąpi automatycznie podczas następnego łączenia z „%s”" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Zapisz hasło" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Dołączenie do pokoju się nie powiodło" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Ponów" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Pokój jest pełny." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Użytkownik został zablokowany w tym pokoju." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Dołączenie do pokoju wymaga zaproszenia." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Użytkownik został wyrzucony z tego pokoju." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Nie można teraz dołączyć do pokoju, ale można spróbować ponownie później." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Przycisk „+” umożliwia dołączenie do pokoju." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Do widzenia" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Zapisać hasło %s dla konta %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Zapisz" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s w pokoju %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -895,7 +904,7 @@ msgstr[1] "%d sekundy temu" msgstr[2] "%d sekund temu" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -903,7 +912,7 @@ msgstr[1] "%d minuty temu" msgstr[2] "%d minut temu" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -911,7 +920,7 @@ msgstr[1] "%d godziny temu" msgstr[2] "%d godzin temu" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -919,7 +928,7 @@ msgstr[1] "%d dni temu" msgstr[2] "%d dni temu" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -927,7 +936,7 @@ msgstr[1] "%d tygodnie temu" msgstr[2] "%d tygodni temu" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -935,27 +944,23 @@ msgstr[1] "%d miesiące temu" msgstr[2] "%d miesięcy temu" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Dostępny w innym pokoju." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Online" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Brak wyników" -#: src/userList.js:734 -msgid "All" -msgstr "Wszyscy" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Użytkownik jest w trybie online" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Użytkownik %s jest teraz w trybie online." diff -Nru polari-3.32.0/po/pt_BR.po polari-3.34.0/po/pt_BR.po --- polari-3.32.0/po/pt_BR.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/pt_BR.po 2019-09-09 18:44:11.000000000 +0000 @@ -6,31 +6,32 @@ # Artur de Aquino Morais , 2016. # Fábio Nogueira , 2016. # Enrico Nicoletto , 2013-2016, 2018. -# Rafael Fontenelle , 2013-2018. +# Rafael Fontenelle , 2013-2019. +# msgid "" msgstr "" "Project-Id-Version: polari\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-17 16:15+0000\n" -"PO-Revision-Date: 2018-08-22 08:53-0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-07-22 02:00-0300\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Virtaal 1.0.0-beta1\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.32.0\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:156 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:810 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Um cliente de bate-papo através da Internet (IRC) para o GNOME" @@ -57,15 +58,10 @@ "particulares, elas ainda permitem que você responda instantaneamente sem " "retornar ao aplicativo!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "O Projeto GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -79,7 +75,7 @@ msgid "List of channels to restore on startup" msgstr "Lista de canais a serem restaurados na inicialização" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Executar em segundo plano" @@ -171,7 +167,7 @@ msgstr "Nome _real" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:79 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Cancelar" @@ -294,7 +290,7 @@ "Selecione salas às quais você se conectar. Você pode adicionar mais redes e " "salas posteriormente, clicando no botão +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:227 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Entrar na sala de bate-papo" @@ -318,50 +314,39 @@ msgid "_Custom Network" msgstr "_Rede personalizada" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Executar Polari em segundo plano?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari continuará a executar quando fechado e será iniciado automaticamente " -"no início da sessão." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "Sa_ir" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "E_xecutar em segundo plano" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Adicionar salas e redes" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Mostra usuários conectados" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Atalhos do teclado" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Ajuda" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Sobre" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Sair" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Adicionar salas e redes" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Mostra usuários conectados" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Desconectado" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Fique online para conversar e receber mensagens." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Mudar apelido:" @@ -410,32 +395,32 @@ msgid "Start Conversation" msgstr "Iniciar conversa" -#: src/application.js:41 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Inicia o cliente Telephathy" -#: src/application.js:46 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Inicia em modo de depuração" -#: src/application.js:49 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Permitir a execução junto com outra instância" -#: src/application.js:52 +#: src/application.js:54 msgid "Print version and exit" msgstr "Exibe a versão e sai" -#: src/application.js:418 src/utils.js:179 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Falha ao abrir o link" -#: src/application.js:705 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s removido." -#: src/application.js:809 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Enrico Nicoletto , 2013-2016, 2018\n" @@ -443,74 +428,74 @@ "Fábio Nogueira , 2016.\n" "Rafael Fontenelle , 2013-2018." -#: src/application.js:815 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Aprenda mais sobre o Polari" -#: src/appNotifications.js:77 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Desfazer" -#: src/chatView.js:135 +#: src/chatView.js:137 msgid "New Messages" msgstr "Novas mensagens" -#: src/chatView.js:759 +#: src/chatView.js:786 msgid "Open Link" msgstr "Abrir link" -#: src/chatView.js:765 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copiar endereço do link" -#: src/chatView.js:933 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s é conhecido agora como %s" -#: src/chatView.js:938 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s desconectou-se" -#: src/chatView.js:946 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s foi retirado do canal por %s" -#: src/chatView.js:948 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s foi retirado do canal" -#: src/chatView.js:954 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s foi banido por %s" -#: src/chatView.js:956 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s foi banido" -#: src/chatView.js:961 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s entrou" -#: src/chatView.js:966 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s saiu" -#: src/chatView.js:1059 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d usuário entrou" msgstr[1] "%d usuários entraram" -#: src/chatView.js:1062 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -519,14 +504,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1129 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1134 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Ontem, %H∶%M" @@ -534,7 +519,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1139 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -543,7 +528,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d de %B, %H∶%M" @@ -552,21 +537,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d de %B de %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1156 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1161 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Ontem, %l∶%M %p" @@ -574,7 +559,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1166 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -583,7 +568,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d de %B, %l∶%M %p" @@ -592,26 +577,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d de %B de %Y, %l∶%M %p" -#: src/connections.js:50 +#: src/connections.js:42 msgid "Already added" msgstr "Já adicionado" -#: src/connections.js:105 +#: src/connections.js:104 msgid "No results." msgstr "Nenhum resultado." -#. Translators: %s is a connection name -#: src/connections.js:484 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Propriedades de “%s”" -#: src/connections.js:528 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -619,60 +603,60 @@ "Polari foi desconectado devido a um erro de rede. Por favor, verifique se o " "campo de endereço está correto." -#: src/entryArea.js:361 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Colar %s linha do texto para o serviço público de colagem?" msgstr[1] "Colar %s linhas do texto para o serviço público de colagem?" -#: src/entryArea.js:365 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Enviando %s linha de texto para o serviço público de colagem…" msgstr[1] "Enviando %s linhas de texto para o serviço público de colagem…" -#: src/entryArea.js:372 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Enviar imagem para o serviço público de colagem?" -#: src/entryArea.js:373 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Enviando imagem para o serviço público de colagem…" #. Translators: %s is a filename -#: src/entryArea.js:394 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Enviar “%s” para o serviço público de colagem?" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Enviando “%s” para o serviço público de colagem…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:405 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s em #%s" -#: src/entryArea.js:407 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Colar de %s" -#: src/initialSetup.js:79 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Voltar" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Concluído" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Próximo" @@ -685,13 +669,13 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:22 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/CLOSE [] [] — fecha o , por padrão o canal atual" -#: src/ircParser.js:23 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -699,164 +683,156 @@ "/HELP [] — exibe a ajuda para , ou uma lista de comandos " "disponíveis" -#: src/ircParser.js:24 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — convida para , ou ao canal " "atual" -#: src/ircParser.js:25 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN — entra no " -#: src/ircParser.js:26 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK — retira do canal atual" -#: src/ircParser.js:27 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME — envia a ao canal atual" -#: src/ircParser.js:28 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "" "/MSG [] — envia uma mensagem privada para " -#: src/ircParser.js:29 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — lista usuários no canal atual" -#: src/ircParser.js:30 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK — define seu apelido como " -#: src/ircParser.js:31 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "/PART [] [] — deixa o , por padrão o canal atual" -#: src/ircParser.js:32 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY — abre uma conversa particular com " -#: src/ircParser.js:33 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — desconecta-se do servidor atual" -#: src/ircParser.js:34 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY — envia para a sala ou contato atual" -#: src/ircParser.js:35 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC — define o tópico para , ou mostra o tópico atual" -#: src/ircParser.js:38 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Comando desconhecido — tente usar o /HELP para uma lista de comandos " "disponíveis" -#: src/ircParser.js:52 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Uso: %s" -#: src/ircParser.js:88 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Comandos conhecidos:" -#: src/ircParser.js:187 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Usuários em %s:" -#: src/ircParser.js:266 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Nenhum tópico definido" -#: src/joinDialog.js:228 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Adicionar rede" -#: src/mainWindow.js:381 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d usuário" msgstr[1] "%d usuários" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Sair da sala de bate-papo" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "End conversation" msgstr "Finalizar conversa" -#: src/roomList.js:289 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "A rede %s possui um erro" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:360 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:367 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problema de conexão" -#: src/roomList.js:384 +#: src/roomList.js:396 msgid "Connected" msgstr "Conectado" -#: src/roomList.js:386 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Conectando…" -#: src/roomList.js:388 src/userList.js:410 -msgid "Offline" -msgstr "Desconectado" - -#: src/roomList.js:390 +#: src/roomList.js:402 msgid "Unknown" msgstr "Desconhecido" -#: src/roomList.js:410 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Não foi possível conectar a %s de uma forma segura." -#: src/roomList.js:413 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s requer uma senha." -#: src/roomList.js:419 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Não foi possível conectar a %s. O servidor está ocupado." -#: src/roomList.js:422 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Não foi possível conectar a %s." -#: src/roomStack.js:113 -msgid "_Save Password" -msgstr "_Salvar senha" - -#: src/roomStack.js:122 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "A senha deveria ser salva?" -#: src/roomStack.js:130 src/telepathyClient.js:585 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" @@ -864,105 +840,161 @@ "A identificação vai acontecer automaticamente na próxima vez que você se " "conectar a %s" -#: src/roomStack.js:159 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Salvar senha" + +#: src/roomStack.js:139 +#| msgid "Available in another room." +msgid "Failed to join the room" +msgstr "Falha ao entrar na sala" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Tentar novamente" + +#: src/roomStack.js:165 +#| msgid "The server is busy." +msgid "The room is full." +msgstr "A sala está cheia." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Você foi banido da sala." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "A sala está disponível mediante convite." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Você foi retirado da sala." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Não é possível entrar na sala agora, mas você pode tentar novamente mais " +"tarde." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Entre em uma sala usando o botão +." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Até logo" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Salvar a senha de %s para %s?" -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Salvar" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s em %s" -#: src/userList.js:225 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d segundo atrás" msgstr[1] "%d segundos atrás" -#: src/userList.js:230 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minuto atrás" msgstr[1] "%d minutos atrás" -#: src/userList.js:235 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d hora atrás" msgstr[1] "%d horas atrás" -#: src/userList.js:240 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d dia atrás" msgstr[1] "%d dias atrás" -#: src/userList.js:245 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d semana atrás" msgstr[1] "%d semanas atrás" -#: src/userList.js:249 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d mês atrás" msgstr[1] "%d meses atrás" -#: src/userList.js:406 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponível em outra sala." -#: src/userList.js:408 +#: src/userList.js:454 msgid "Online" msgstr "Conectado" -#: src/userList.js:553 -msgid "No results" -msgstr "Sem resultado(s)" +#: src/userList.js:617 +#| msgid "No results" +msgid "No Results" +msgstr "Nenhum resultado" -#: src/userTracker.js:304 +#: src/userTracker.js:312 msgid "User is online" msgstr "O usuário está conectado" -#: src/userTracker.js:305 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "O usuário %s está conectado agora." -#: src/utils.js:101 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Senha do servidor Polari para %s" -#: src/utils.js:106 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Senha de NickServ do Polari para %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Executar Polari em segundo plano?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari continuará a executar quando fechado e será iniciado " +#~ "automaticamente no início da sessão." + +#~ msgid "_Quit" +#~ msgstr "Sa_ir" + +#~ msgid "_Run in background" +#~ msgstr "E_xecutar em segundo plano" + #~ msgid "All" #~ msgstr "Todos" @@ -1039,9 +1071,6 @@ #~ msgid "Try again" #~ msgstr "Tentar novamente" -#~ msgid "The server is busy." -#~ msgstr "O servidor está ocupado." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Ocorreu falha ao conectar devido a um motivo desconhecido." diff -Nru polari-3.32.0/po/ro.po polari-3.34.0/po/ro.po --- polari-3.32.0/po/ro.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/ro.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-17 16:15+0000\n" -"PO-Revision-Date: 2018-08-20 13:59+0200\n" +"POT-Creation-Date: 2019-07-31 22:19+0000\n" +"PO-Revision-Date: 2019-08-05 15:33+0200\n" "Last-Translator: Daniel Șerbănescu \n" "Language-Team: Gnome Romanian Translation Team\n" "Language: ro\n" @@ -17,17 +17,17 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.2.3\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:156 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:810 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Un client IRC pentru GNOME" @@ -54,15 +54,10 @@ "private, iar notificările vă permit chiar să răspundeți instant, fără a fi " "nevoie să aduceți în prim plan fereastra aplicației!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Proiectul GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -76,7 +71,7 @@ msgid "List of channels to restore on startup" msgstr "Lista canalelor ce vor fi restaurate la pornire" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Rulează în fundal" @@ -166,7 +161,7 @@ msgstr "Numele _real" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:79 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Anulează" @@ -289,7 +284,7 @@ "Alegeți camerele la care doriți să vă conectați. Puteți adăuga mai multe " "rețele și camere mai târziu, apăsând pe butonul +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:227 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Alătură-te camerei de discuții" @@ -313,50 +308,39 @@ msgid "_Custom Network" msgstr "Rețea _personalizată" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Rulați Polari în fundal?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari va continua să ruleze când este închis și va porni automat la " -"autentificare." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Ieșire" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Rulează în fundal" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Adăugare canale și rețele" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Arată utilizatorii conectați" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Scurtături de tastatură" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Ajutor" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "Despre" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Ieșire" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Adăugare canale și rețele" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Arată utilizatorii conectați" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Deconectat" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Conectați-vă online pentru a discuta și primi mesaje." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Schimbă pseudonimul:" @@ -405,98 +389,99 @@ msgid "Start Conversation" msgstr "Începe conversația" -#: src/application.js:41 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Pornește clientul Telepathy" -#: src/application.js:46 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Pornește în modul de depanare" -#: src/application.js:49 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Permite rularea alături de altă instanță" -#: src/application.js:52 +#: src/application.js:54 msgid "Print version and exit" msgstr "Afișează versiunea și ieși" -#: src/application.js:418 src/utils.js:179 +#: src/application.js:479 src/utils.js:185 msgid "Failed to open link" msgstr "Nu s-a putut deschide legătura" -#: src/application.js:705 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "S-a eliminat %s." -#: src/application.js:809 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Bogdan Mințoi , 2014\n" -"Daniel Șerbănescu , 2017-2018" +"Daniel Șerbănescu , 2017-2019\n" +"Florentina Mușat , 2019" -#: src/application.js:815 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Învață mai multe despre Polari" -#: src/appNotifications.js:77 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Anulează" -#: src/chatView.js:135 +#: src/chatView.js:137 msgid "New Messages" msgstr "Mesaj nou" -#: src/chatView.js:759 +#: src/chatView.js:786 msgid "Open Link" msgstr "Deschide o legătură" -#: src/chatView.js:765 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Copiază adresa legăturii" -#: src/chatView.js:933 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s și-a schimbat pseudonimul în %s" -#: src/chatView.js:938 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s s-a deconectat" -#: src/chatView.js:946 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s a fost dat afară de %s" -#: src/chatView.js:948 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s a fost dat afară" -#: src/chatView.js:954 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s a primit interdicție din partea lui %s" -#: src/chatView.js:956 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s a primit interdicție" -#: src/chatView.js:961 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s a intrat" -#: src/chatView.js:966 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s a ieșit" -#: src/chatView.js:1059 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -504,7 +489,7 @@ msgstr[1] "%d utilizatori au intrat" msgstr[2] "%d de utilizatori au intrat" -#: src/chatView.js:1062 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -514,14 +499,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1129 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1134 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Ieri, %H∶%M" @@ -529,7 +514,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1139 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -538,7 +523,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %d, %H∶%M" @@ -547,21 +532,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1156 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1161 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Ieri, %l∶%M %p" @@ -569,7 +554,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1166 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -578,7 +563,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -587,26 +572,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:50 +#: src/connections.js:42 msgid "Already added" msgstr "Adăugat deja" -#: src/connections.js:105 +#: src/connections.js:104 msgid "No results." msgstr "Nu sunt rezultate." -#. Translators: %s is a connection name -#: src/connections.js:484 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Proprietăți pentru „%s”" -#: src/connections.js:528 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -614,7 +598,7 @@ "Polari s-a deconectat datorită unei probleme de rețea. Verificați dacă " "câmpul adresei este corect." -#: src/entryArea.js:361 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -622,7 +606,7 @@ msgstr[1] "Lipesc %s linii de text pe serviciul public de note?" msgstr[2] "Lipesc %s de linii de text pe serviciul public de note?" -#: src/entryArea.js:365 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -630,46 +614,46 @@ msgstr[1] "Se încarcă %s linii de text la serviciul public de note…" msgstr[2] "Se încarcă %s de linii de text la serviciul public de note…" -#: src/entryArea.js:372 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Doriți încărcarea imaginii pe serviciul public de note?" -#: src/entryArea.js:373 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Se încarcă imaginea pe serviciul public de note…" #. Translators: %s is a filename -#: src/entryArea.js:394 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Încarc „%s” pe serviciul public de note?" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Se încarcă „%s” la serviciul public de note…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:405 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s în #%s" -#: src/entryArea.js:407 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Lipește de la %s" -#: src/initialSetup.js:79 +#: src/initialSetup.js:85 msgid "_Back" msgstr "Îna_poi" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Gata" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Următorul" @@ -682,12 +666,12 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:22 +#: src/ircParser.js:21 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "/CLOSE [] [] — părăsește , implicit cel curent" -#: src/ircParser.js:23 +#: src/ircParser.js:22 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -695,67 +679,67 @@ "/HELP [] — afișează ajutorul pentru , sau o listă de " "comenzi disponibile" -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — invită pe pe , sau pe cel " "actual" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "/JOIN — joins " msgstr "/JOIN — se alătură " -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "/KICK — kicks from current channel" msgstr "/KICK — îl dă afară pe din canal" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/ME — sends to the current channel" msgstr "/ME — trimite pe canalul curent" -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — trimite un mesaj privat către " -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — listează utilizatorii aflați pe canalul curent" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/NICK — sets your nick to " msgstr "/NICK — modifică pseudonimul în " -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "/PART [] [] — părăsește , implicit cel curent" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/QUERY — opens a private conversation with " msgstr "" "/QUERY — deschide o fereastră de discuție privată cu " -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — se deconectează de la serverul curent" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/SAY — sends to the current room/contact" msgstr "/SAY — trimite către camera/contactul curent" -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC — modifică tema de discuții în , sau afișează tema " "de discuții existentă" -#: src/ircParser.js:38 +#: src/ircParser.js:37 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Comandă necunoscută — încercați /HELP pentru lista de comenzi disponibile" -#: src/ircParser.js:52 +#: src/ircParser.js:51 #, javascript-format msgid "Usage: %s" msgstr "Sintaxă: %s" @@ -764,20 +748,20 @@ msgid "Known commands:" msgstr "Comenzi cunoscute:" -#: src/ircParser.js:187 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "Utilizatori în %s:" -#: src/ircParser.js:266 +#: src/ircParser.js:269 msgid "No topic set" msgstr "Nicio temă de discuție aleasă" -#: src/joinDialog.js:228 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Adaugă o rețea" -#: src/mainWindow.js:381 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -785,107 +769,133 @@ msgstr[1] "%d utilizatori" msgstr[2] "%d de utilizatori" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Părăsește camera de discuții" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "End conversation" msgstr "Încheie conversația" -#: src/roomList.js:289 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Rețeaua %s are o eroare" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:360 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:367 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Problemă de conexiune" -#: src/roomList.js:384 +#: src/roomList.js:396 msgid "Connected" msgstr "Conectat" -#: src/roomList.js:386 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Se conectează…" -#: src/roomList.js:388 src/userList.js:410 -msgid "Offline" -msgstr "Deconectat" - -#: src/roomList.js:390 +#: src/roomList.js:402 msgid "Unknown" msgstr "Necunoscut" -#: src/roomList.js:410 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Nu s-a putut realiza o conexiune sigură cu %s." -#: src/roomList.js:413 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s necesită o parolă." -#: src/roomList.js:419 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Nu s-a putut realiza conexiunea cu %s. Serverul este ocupat." -#: src/roomList.js:422 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Nu s-a putut realiza conexiunea cu %s." -#: src/roomStack.js:113 -msgid "_Save Password" -msgstr "_Salvează parola" - -#: src/roomStack.js:122 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Doriți salvarea parolei?" -#: src/roomStack.js:130 src/telepathyClient.js:585 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "Identificarea se va realiza automat la următoarea conectare la %s" -#: src/roomStack.js:159 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Salvează parola" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Nu s-a putut alătura camerei" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Reîncearcă" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Camera este plină." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Ați primit interdicție pentru cameră." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Camera este doar cu invitație." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Ați fost dat afară din cameră." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Nu este posibil să vă alăturați camerei acum, dar puteți reîncerca mai " +"târziu." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Alăturați-vă unei camere de discuții utilizând butonul +." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "La revedere" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Doriți salvarea parolei %s pentru %s?" -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Salvează" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s în %s" -#: src/userList.js:225 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -893,7 +903,7 @@ msgstr[1] "acum %d secunde" msgstr[2] "acum %d de secunde" -#: src/userList.js:230 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -901,7 +911,7 @@ msgstr[1] "acum %d minute" msgstr[2] "acum %d de minute" -#: src/userList.js:235 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -909,7 +919,7 @@ msgstr[1] "acum %d ore" msgstr[2] "acum %d de ore" -#: src/userList.js:240 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -917,7 +927,7 @@ msgstr[1] "acum %d zile" msgstr[2] "acum %d de zile" -#: src/userList.js:245 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -925,7 +935,7 @@ msgstr[1] "acum %d săptămâni" msgstr[2] "acum %d de săptămâni" -#: src/userList.js:249 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -933,37 +943,56 @@ msgstr[1] "acum %d luni" msgstr[2] "acum %d de luni" -#: src/userList.js:406 +#: src/userList.js:452 msgid "Available in another room." msgstr "Disponibil în altă cameră." -#: src/userList.js:408 +#: src/userList.js:454 msgid "Online" msgstr "Conectat" -#: src/userList.js:553 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Niciun rezultat" -#: src/userTracker.js:304 +#: src/userTracker.js:312 msgid "User is online" msgstr "Utilizatorul s-a conectat" -#: src/userTracker.js:305 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Utilizatorul %s s-a conectat." -#: src/utils.js:101 +#: src/utils.js:104 #, javascript-format msgid "Polari server password for %s" msgstr "Parola de server Polari pentru %s" -#: src/utils.js:106 +#: src/utils.js:109 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Parola NickServ pentru %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Rulați Polari în fundal?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari va continua să ruleze când este închis și va porni automat la " +#~ "autentificare." + +#~ msgid "_Quit" +#~ msgstr "_Ieșire" + +#~ msgid "_Run in background" +#~ msgstr "_Rulează în fundal" + #~ msgid "All" #~ msgstr "Toți" diff -Nru polari-3.32.0/po/sl.po polari-3.34.0/po/sl.po --- polari-3.32.0/po/sl.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/sl.po 2019-09-09 18:44:11.000000000 +0000 @@ -2,14 +2,14 @@ # Copyright (C) 2013 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. # -# Matej Urbančič , 2013–2018. +# Matej Urbančič , 2013–2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-30 04:19+0000\n" -"PO-Revision-Date: 2018-07-30 22:09+0200\n" +"POT-Creation-Date: 2019-08-21 19:28+0000\n" +"PO-Revision-Date: 2019-08-24 18:51+0200\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: sl_SI\n" @@ -19,19 +19,19 @@ "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.1\n" "X-Poedit-Bookmarks: 77,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:156 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:812 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:847 msgid "An Internet Relay Chat Client for GNOME" -msgstr "Odjemalec za IRC za GNOME" +msgstr "Odjemalec IRC za okolje GNOME" #: data/appdata/org.gnome.Polari.appdata.xml.in:10 msgid "" @@ -39,8 +39,8 @@ "seamlessly with GNOME; it features a simple and beautiful interface which " "allows you to focus on your conversations." msgstr "" -"Enostaven odjemalec IRC, zasnovan za okolje GNOME. Program ima enostaven in " -"pregleden vmesnikč" +"Enostaven odjemalec IRC, zasnovan za okolje GNOME. Program ima prijeten in " +"pregleden vmesnik, zato je klepetanje prijetno." #: data/appdata/org.gnome.Polari.appdata.xml.in:15 msgid "" @@ -49,24 +49,19 @@ "miss an important message — for private conversations, they even allow you " "to reply instantly without switching back to the application!" msgstr "" -"Program Polari je namenjen javnemu klepetu z drugimi uporabniki na javnem " -"kanalu oziroma zasebnem pogovoru s posameznim uporabnikom. Obvestila " -"omogočajo hipen odziv na sporočila – za zasebne pogovore je mogoče uporabiti " -"tudi hitro odgovarjanje preko obvestilnega polja." +"Program Polari omogoča klepetanje z drugimi uporabniki na javnih kanalih in " +"zasebno z izbrano osebo. Obvestila omogočajo hipen odziv na sporočila – za " +"zasebne pogovore je mogoče uporabiti tudi hitro odgovarjanje prek " +"obvestilnega polja." -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Projekt GNOME" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" -msgstr "IRC;Internet;Klepet;Sobe;" +msgstr "IRC;Internet;Klepet;Sobe;chat" #: data/org.gnome.Polari.gschema.xml:6 msgid "Saved channel list" @@ -76,13 +71,13 @@ msgid "List of channels to restore on startup" msgstr "Seznam kanalov, ki naj se obnovijo ob zagonu" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" -msgstr "Zaženi v ozadju" +msgstr "Ohrani povezavo v ozadju" #: data/org.gnome.Polari.gschema.xml:12 msgid "Keep running in background when closed." -msgstr "Izvajaj v ozadju, ko je program zaprt." +msgstr "Ohrani izvajanje programa, ko je okno program zaprto." #: data/org.gnome.Polari.gschema.xml:16 msgid "Window size" @@ -167,7 +162,7 @@ msgstr "_Pravo ime" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:79 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Prekliči" @@ -191,7 +186,7 @@ #: data/resources/help-overlay.ui:19 msgctxt "shortcut window" msgid "Join Room" -msgstr "Pridruži se klepetalnici" +msgstr "Odpre novo klepetelnico" #: data/resources/help-overlay.ui:27 msgctxt "shortcut window" @@ -201,22 +196,22 @@ #: data/resources/help-overlay.ui:34 msgctxt "shortcut window" msgid "Show Userlist" -msgstr "Pokaži seznam uporabnikov" +msgstr "Pokaže seznam uporabnikov" #: data/resources/help-overlay.ui:41 msgctxt "shortcut window" msgid "Show Emoji Picker" -msgstr "Pokaži izbirnik izraznih ikon" +msgstr "Pokaže izbirnik izraznih ikon" #: data/resources/help-overlay.ui:48 msgctxt "shortcut window" msgid "Quit" -msgstr "Končaj" +msgstr "Konča program" #: data/resources/help-overlay.ui:55 msgctxt "shortcut window" msgid "Keyboard Shortcuts" -msgstr "Tipkovne bližnjice" +msgstr "Pokaže tipkovne bližnjice" #: data/resources/help-overlay.ui:64 msgctxt "shortcut window" @@ -226,37 +221,37 @@ #: data/resources/help-overlay.ui:68 msgctxt "shortcut window" msgid "Next Room" -msgstr "Naslednja klepetalnica" +msgstr "Skoči v naslednjo klepetalnico" #: data/resources/help-overlay.ui:75 msgctxt "shortcut window" msgid "Previous Room" -msgstr "Predhodna klepetalnica" +msgstr "Skoči v predhodno klepetalnico" #: data/resources/help-overlay.ui:82 msgctxt "shortcut window" msgid "Next Room with Unread Messages" -msgstr "Naslednja klepetalnica z neprebranimi sporočili" +msgstr "Skoči v naslednjo klepetalnico z novimi sporočili" #: data/resources/help-overlay.ui:89 msgctxt "shortcut window" msgid "Previous Room with Unread Messages" -msgstr "Predhodna klepetalnica z neprebranimi sporočili" +msgstr "Skoči v predhodno klepetalnico z novimi sporočili" #: data/resources/help-overlay.ui:96 msgctxt "shortcut window" msgid "First Room" -msgstr "Prva klepetalnica" +msgstr "Skoči v prvo klepetalnico" #: data/resources/help-overlay.ui:103 msgctxt "shortcut window" msgid "Last Room" -msgstr "Zadnja klepetalnica" +msgstr "Skoči v zadnjo klepetalnico" #: data/resources/help-overlay.ui:110 msgctxt "shortcut window" msgid "First – Ninth Room" -msgstr "Prva – Deveta klepetalnica" +msgstr "Skoči v prvo ... deveto klepetalnico" #: data/resources/initial-setup-window.ui:10 msgid "Polari Setup" @@ -264,7 +259,7 @@ #: data/resources/initial-setup-window.ui:60 msgid "Not connected" -msgstr "Brez povezave" +msgstr "Ni povezave" #: data/resources/initial-setup-window.ui:73 msgid "Please connect to the internet to continue the setup." @@ -279,18 +274,18 @@ msgid "" "Polari is an easy way to chat using IRC. Select a network to get started." msgstr "" -"Polari je program za enostavno delo z omrežji IRC. Za zažetek izberite " -"omrežje." +"Polari je program za enostavno delo z omrežji IRC. Za začetek je treba " +"izbrani omrežje." #: data/resources/initial-setup-window.ui:171 msgid "" "Select rooms you want to connect to. You can add more networks and rooms " "later, by clicking the + button." msgstr "" -"Izberite sobe, v katere si želite povezati. Te je mogoče dodati tudi kasneje " -"s klikom na gumb +." +"Izberite sobe za povezavo. Te je mogoče dodati tudi kasneje s klikom na gumb " +"» + «." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:227 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Pridruži se klepetalnici" @@ -314,50 +309,39 @@ msgid "_Custom Network" msgstr "Omrežje po _meri" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Ali naj se program Polari izvajata v ozadju?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Program Polari se bo izvajal v ozadju in se bo samodejno zagnal ob naslednji " -"prijavi v sistem." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Končaj" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Zaženi v ozadju" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Dodaj klepetalnice in omrežja" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Pokaži povezave uporabnike" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Tipkovne bližnjice" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Pomoč" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "O programu" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Končaj" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Dodaj klepetalnice in omrežja" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Pokaži povezave uporabnike" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Nepovezano" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "" + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Spremeni vzdevek:" @@ -406,96 +390,96 @@ msgid "Start Conversation" msgstr "Začni pogovor" -#: src/application.js:42 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Zaženi odjemalec Telepathy" -#: src/application.js:47 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Omogoči razhroščevalni način" -#: src/application.js:50 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Dovoli sočasen zagon več primerkov programa" -#: src/application.js:53 +#: src/application.js:54 msgid "Print version and exit" msgstr "Izpiši različico programa in končaj" -#: src/application.js:420 src/utils.js:179 +#: src/application.js:479 src/utils.js:185 msgid "Failed to open link" msgstr "Odpiranje povezave je spodletelo" -#: src/application.js:707 +#: src/application.js:770 #, javascript-format msgid "%s removed." msgstr "%s je odstranjen." -#: src/application.js:811 +#: src/application.js:846 msgid "translator-credits" msgstr "Matej Urbančič " -#: src/application.js:817 +#: src/application.js:852 msgid "Learn more about Polari" msgstr "Več podrobnosti o programu Polari" -#: src/appNotifications.js:77 +#: src/appNotifications.js:85 msgid "Undo" msgstr "Razveljavi" -#: src/chatView.js:131 +#: src/chatView.js:137 msgid "New Messages" msgstr "Novo sporočilo" -#: src/chatView.js:755 +#: src/chatView.js:785 msgid "Open Link" msgstr "Odpri povezavo" -#: src/chatView.js:761 +#: src/chatView.js:791 msgid "Copy Link Address" msgstr "Kopiraj naslov povezave" -#: src/chatView.js:929 +#: src/chatView.js:963 #, javascript-format msgid "%s is now known as %s" msgstr "%s je preimenovan v %s" -#: src/chatView.js:934 +#: src/chatView.js:968 #, javascript-format msgid "%s has disconnected" msgstr "%s je prekinil povezavo" -#: src/chatView.js:942 +#: src/chatView.js:977 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s je bil odstranjen s strani %s" -#: src/chatView.js:944 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked" msgstr "%s je bil odstranjen" -#: src/chatView.js:950 +#: src/chatView.js:985 #, javascript-format msgid "%s has been banned by %s" msgstr "%s je dobil prepoved s strani %s" -#: src/chatView.js:952 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned" msgstr "%s je dobil prepoved" -#: src/chatView.js:957 +#: src/chatView.js:991 #, javascript-format msgid "%s joined" msgstr "%s je vstopil v klepetalnico." -#: src/chatView.js:962 +#: src/chatView.js:996 #, javascript-format msgid "%s left" msgstr "%s preostalo" -#: src/chatView.js:1055 +#: src/chatView.js:1093 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -504,7 +488,7 @@ msgstr[2] "Pridružil sta se %d uporabnika" msgstr[3] "Pridružil so se %d uporabniki" -#: src/chatView.js:1058 +#: src/chatView.js:1100 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -515,14 +499,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1125 +#: src/chatView.js:1172 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1130 +#: src/chatView.js:1177 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Včeraj, %H:%M" @@ -530,7 +514,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1135 +#: src/chatView.js:1182 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -539,7 +523,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1141 +#: src/chatView.js:1188 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%B %d, %H∶%M" @@ -548,21 +532,22 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1147 +#: src/chatView.js:1194 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%B %d %Y, %H∶%M" +#. eslint-disable-next-line no-lonely-if #. today #. Translators: Time in 12h format -#: src/chatView.js:1152 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1157 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Včeraj, %l:%M %p" @@ -570,7 +555,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1162 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -579,7 +564,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1168 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%B %d, %l∶%M %p" @@ -588,26 +573,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1174 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%B %d %Y, %l∶%M %p" -#: src/connections.js:50 +#: src/connections.js:42 msgid "Already added" msgstr "Že dodano" -#: src/connections.js:105 +#: src/connections.js:104 msgid "No results." msgstr "Ni najdenih zadetkov." -#. Translators: %s is a connection name -#: src/connections.js:490 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Lastnosti »%s«" -#: src/connections.js:534 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -615,7 +599,7 @@ "Povezava je prekinjena zaradi napake omrežja. Preverite, ali je naslovno " "polje zapisano pravilno." -#: src/entryArea.js:393 +#: src/entryArea.js:369 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -628,7 +612,7 @@ msgstr[3] "" "Ali želite poslati %s vrstice besedila na javno spletno odložišče ..." -#: src/entryArea.js:397 +#: src/entryArea.js:373 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -637,46 +621,46 @@ msgstr[2] "Pošiljanje %s vrstic besedila na javno spletno odložišče ..." msgstr[3] "Pošiljanje %s vrstic besedila na javno spletno odložišče ..." -#: src/entryArea.js:404 +#: src/entryArea.js:380 msgid "Upload image to public paste service?" msgstr "Ali želite poslati sliko na javno spletno odložišče ..." -#: src/entryArea.js:405 +#: src/entryArea.js:381 msgid "Uploading image to public paste service…" msgstr "Pošiljanje slike na javno spletno odložišče ..." #. Translators: %s is a filename -#: src/entryArea.js:426 +#: src/entryArea.js:403 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Ali želite poslati »%s« na javno spletno odložišče?" #. Translators: %s is a filename -#: src/entryArea.js:428 +#: src/entryArea.js:405 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Pošiljanje »%s« na javno spletno odložišče …" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:437 +#: src/entryArea.js:414 #, javascript-format msgid "%s in #%s" msgstr "%s v #%s" -#: src/entryArea.js:439 +#: src/entryArea.js:416 #, javascript-format msgid "Paste from %s" msgstr "Prilepi iz %s" -#: src/initialSetup.js:79 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Nazaj" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Končano" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Naslednji" @@ -689,12 +673,12 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:22 +#: src/ircParser.js:21 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "/CLOSE [] [] – zapre , privzeto zapre trenutnega" -#: src/ircParser.js:23 +#: src/ircParser.js:22 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -702,66 +686,66 @@ "/HELP [] – izpiše pomoč za oziroma izpiše seznam razpoložljivih " "ukazov" -#: src/ircParser.js:24 +#: src/ircParser.js:23 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] – pošlje povabilo uporabniku z vzdevkom " " na kanal oziroma na trenutni kanal" -#: src/ircParser.js:25 +#: src/ircParser.js:24 msgid "/JOIN — joins " msgstr "/JOIN [] – pridruži uporabnika na " -#: src/ircParser.js:26 +#: src/ircParser.js:25 msgid "/KICK — kicks from current channel" msgstr "/KICK [] – brcne uporabnika s trenutnega kanala" -#: src/ircParser.js:27 +#: src/ircParser.js:26 msgid "/ME — sends to the current channel" msgstr "/ME – pošlje na trenutni kanal" -#: src/ircParser.js:28 +#: src/ircParser.js:27 msgid "/MSG [] — sends a private message to " msgstr "" "/MSG [] – pošlje zasebno sporočilo uporabniku " -#: src/ircParser.js:29 +#: src/ircParser.js:28 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES – izpiše seznam vseh uporabnikov na trenutnem kanalu" -#: src/ircParser.js:30 +#: src/ircParser.js:29 msgid "/NICK — sets your nick to " msgstr "/NICK – nastavi na trenutnem kanalu" -#: src/ircParser.js:31 +#: src/ircParser.js:30 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "/PART [] [] – zapusti , privzeto trenutnega" -#: src/ircParser.js:32 +#: src/ircParser.js:31 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY – odpre zasebno okno pogovora z uporabnikom " -#: src/ircParser.js:33 +#: src/ircParser.js:32 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] – prekine povezavo s trenutnim strežnikom" -#: src/ircParser.js:34 +#: src/ircParser.js:33 msgid "/SAY — sends to the current room/contact" msgstr "" "/SAY – pošlje v trenutno klepetalnico ali izbrani osebi" -#: src/ircParser.js:35 +#: src/ircParser.js:34 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC – nastavi želeno oziroma prikaže trenutno" -#: src/ircParser.js:38 +#: src/ircParser.js:37 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Neznan ukaz – poskusite možnost /HELP za seznam vseh razpoložljivih ukazov" -#: src/ircParser.js:52 +#: src/ircParser.js:51 #, javascript-format msgid "Usage: %s" msgstr "Uporaba: %s" @@ -770,20 +754,20 @@ msgid "Known commands:" msgstr "Znani ukazi:" -#: src/ircParser.js:187 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "Uporabniki na %s:" -#: src/ircParser.js:266 +#: src/ircParser.js:269 msgid "No topic set" msgstr "Ni določene teme" -#: src/joinDialog.js:228 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Dodaj omrežje" -#: src/mainWindow.js:379 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -792,108 +776,132 @@ msgstr[2] "%d uporabnika" msgstr[3] "%d uporabniki" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Zapusti klepetalnico" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "End conversation" msgstr "Končaj pogovor" -#: src/roomList.js:289 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Na omrežju %s je napaka" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:360 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:367 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Napaka povezovanja" -#: src/roomList.js:384 +#: src/roomList.js:396 msgid "Connected" msgstr "Povezano" -#: src/roomList.js:386 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Vzpostavljanje povezave …" -#: src/roomList.js:388 src/userList.js:410 -msgid "Offline" -msgstr "Nepovezano" - -#: src/roomList.js:390 +#: src/roomList.js:402 msgid "Unknown" msgstr "Neznano" -#: src/roomList.js:410 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Na varen način se ni mogoče povezati s strežnikom %s." -#: src/roomList.js:413 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "Strežnik %s zahteva geslo." -#: src/roomList.js:419 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Ni se mogoče povezati s strežnikom %s. Strežnik je zaseden." -#: src/roomList.js:422 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Ni se mogoče povezati s strežnikom %s." -#: src/roomStack.js:113 -msgid "_Save Password" -msgstr "_Shrani geslo" - -#: src/roomStack.js:122 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Ali naj se geslo shrani?" -#: src/roomStack.js:130 src/telepathyClient.js:584 +#: src/roomStack.js:100 src/telepathyClient.js:651 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" -"Določevanje istovetnosti bo izvedeno samodeno ob naslednji povezavi na %s." +"Določevanje istovetnosti bo izvedeno samodejno ob naslednji povezavi na %s." + +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Shrani geslo" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Pridruženje sobi je spodletelo" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "Poskusi _znova" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Soba je zasedena." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "" + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Vstop v sobo je mogoč le na povabilo" + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "" + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "Trenutno pridružitev skupini ni mogoča, lahko pa poskusite kasneje." -#: src/roomStack.js:159 +#: src/roomStack.js:209 msgid "Join a room using the + button." -msgstr "Pridruži se klepetalnici prek gumba +." +msgstr "Pridruži se klepetalnici s klikom na gumb » + «." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:464 msgid "Good Bye" msgstr "Na svidenje" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:583 +#: src/telepathyClient.js:650 #, javascript-format msgid "Save %s password for %s?" msgstr "Ali želite shraniti geslo %s za %s?" -#: src/telepathyClient.js:587 +#: src/telepathyClient.js:654 msgid "Save" msgstr "Shrani" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:610 +#: src/telepathyClient.js:686 #, javascript-format msgid "%s in %s" msgstr "%s v %s" -#: src/userList.js:225 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -902,7 +910,7 @@ msgstr[2] "Pred %d sekundama" msgstr[3] "Pred %d sekundami" -#: src/userList.js:230 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -911,7 +919,7 @@ msgstr[2] "Pred %d minutama" msgstr[3] "Pred %d minutami" -#: src/userList.js:235 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -920,7 +928,7 @@ msgstr[2] "Pred %d urama" msgstr[3] "Pred %d urami" -#: src/userList.js:240 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -929,7 +937,7 @@ msgstr[2] "Pred %d dnevoma" msgstr[3] "Pred %d dnevi" -#: src/userList.js:245 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -938,7 +946,7 @@ msgstr[2] "Pred %d tednoma" msgstr[3] "Pred %d tedni" -#: src/userList.js:249 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -947,41 +955,59 @@ msgstr[2] "Pred %d mesecema" msgstr[3] "Pred %d meseci" -#: src/userList.js:406 +#: src/userList.js:452 msgid "Available in another room." msgstr "Na voljo v drugi klepetalnici" -#: src/userList.js:408 +#: src/userList.js:454 msgid "Online" msgstr "Povezano" -#: src/userList.js:557 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Ni najdenih zadetkov" -#: src/userList.js:729 -msgid "All" -msgstr "Vse" - -#: src/userTracker.js:303 +#: src/userTracker.js:312 msgid "User is online" msgstr "Uporabniki je povezan" -#: src/userTracker.js:304 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Uporabnik %s se je prijavil." -#: src/utils.js:101 +#: src/utils.js:104 #, javascript-format msgid "Polari server password for %s" -msgstr "Strežniško geslo Polari za %s" +msgstr "Strežniško geslo Polari za %s" -#: src/utils.js:106 +#: src/utils.js:109 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Geslo Polari NickServer za %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Ali naj se program Polari izvaja v ozadju?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Program Polari se bo izvajal v ozadju in se bo samodejno zagnal ob " +#~ "naslednji prijavi v sistem." + +#~ msgid "_Quit" +#~ msgstr "_Končaj" + +#~ msgid "_Run in background" +#~ msgstr "_Zaženi v ozadju" + +#~ msgid "All" +#~ msgstr "Vse" + #~ msgid "Message" #~ msgstr "Sporočilo" @@ -1069,9 +1095,6 @@ #~ msgid "Try again" #~ msgstr "Poskusi znova" -#~ msgid "The server is busy." -#~ msgstr "Strežnik je zaseden." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Povezovanje je spodletelo zaradi neznanega vzroka." diff -Nru polari-3.32.0/po/sr.po polari-3.34.0/po/sr.po --- polari-3.32.0/po/sr.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/sr.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-08-17 16:15+0000\n" -"PO-Revision-Date: 2018-08-26 18:44+0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-21 21:27+0200\n" "Last-Translator: Марко М. Костић \n" "Language-Team: српски \n" "Language: sr\n" @@ -18,16 +18,16 @@ "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" "X-Project-Style: gnome\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 #: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 -#: src/roomStack.js:156 +#: src/roomStack.js:205 msgid "Polari" msgstr "Полари" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:810 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "Гномов ИРЦ клијент за ћаскање" @@ -53,16 +53,10 @@ "приватне разговоре је омогућено одговарања из самог обавештења без потребе " "за отварањем прозора програма!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "Пројекат Гном" -# Немојте преводити ово. -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -78,7 +72,7 @@ msgid "List of channels to restore on startup" msgstr "Списак канала које треба учитати по покретању" -#: data/org.gnome.Polari.gschema.xml:11 data/resources/menus.ui:6 +#: data/org.gnome.Polari.gschema.xml:11 data/resources/main-window.ui:16 msgid "Run in Background" msgstr "Ради у позадини" @@ -170,7 +164,7 @@ msgstr "_Право име" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:79 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Откажи" @@ -292,7 +286,7 @@ "Изаберите собе на које желите да се повежете. Касније можете додати још " "мрежа и соба кликом на дугме +." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:227 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Приступи причаоници" @@ -316,50 +310,39 @@ msgid "_Custom Network" msgstr "Прила_гођена мрежа" -#: data/resources/main-window.ui:14 -msgid "Run Polari in the Background?" -msgstr "Да покренем Поларија у позадини?" - -#: data/resources/main-window.ui:15 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Полари ће наставити да ради у позадини када је затворен и биће аутоматски " -"покренут приликом пријаве." - -#: data/resources/main-window.ui:21 -msgid "_Quit" -msgstr "_Изађи" - -#: data/resources/main-window.ui:28 -msgid "_Run in background" -msgstr "_Ради у позадини" - -#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 -msgid "Add rooms and networks" -msgstr "Додај собе и мреже" - -#: data/resources/main-window.ui:175 -msgid "Show connected users" -msgstr "Прикажи повезане кориснике" - -#: data/resources/menus.ui:12 +#: data/resources/main-window.ui:22 msgid "Keyboard Shortcuts" msgstr "Пречице на тастатури" -#: data/resources/menus.ui:16 +#: data/resources/main-window.ui:26 msgid "Help" msgstr "Помоћ" -#: data/resources/menus.ui:20 +#: data/resources/main-window.ui:30 msgid "About" msgstr "О програму" -#: data/resources/menus.ui:24 +#: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Изађи" +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 +msgid "Add rooms and networks" +msgstr "Додај собе и мреже" + +#: data/resources/main-window.ui:196 +msgid "Show connected users" +msgstr "Прикажи повезане кориснике" + +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Ван мреже" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Повежите се на мрежу да бисте ћаскали и примали поруке." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Промени надимак:" @@ -408,32 +391,32 @@ msgid "Start Conversation" msgstr "Започиње разговор" -#: src/application.js:41 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Покрени клијента Телепатије" -#: src/application.js:46 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Покрени у режиму за поправљање грешака" -#: src/application.js:49 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Дозволи извршавање уз још један примерак програма" -#: src/application.js:52 +#: src/application.js:54 msgid "Print version and exit" msgstr "Исписује издање и излази" -#: src/application.js:418 src/utils.js:179 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Нисам успео да отворим везу" -#: src/application.js:705 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "„%s“ је уклоњено." -#: src/application.js:809 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Мирослав Николић \n" @@ -442,67 +425,67 @@ "\n" "http://prevod.org — превод на српски јези" -#: src/application.js:815 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Сазнајте више о Поларију" -#: src/appNotifications.js:77 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Опозови" -#: src/chatView.js:135 +#: src/chatView.js:137 msgid "New Messages" msgstr "Нове поруке" -#: src/chatView.js:759 +#: src/chatView.js:786 msgid "Open Link" msgstr "Отвори везу" -#: src/chatView.js:765 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Умножи адресу везе" -#: src/chatView.js:933 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s је сада познат као %s" -#: src/chatView.js:938 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s је прекинуо везу" -#: src/chatView.js:946 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "Корисника %s је избацио %s" -#: src/chatView.js:948 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s је избачен" -#: src/chatView.js:954 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s је добио забрану од корисника %s" -#: src/chatView.js:956 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s је добио забрану" -#: src/chatView.js:961 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s се придружио" -#: src/chatView.js:966 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s је отишао" -#: src/chatView.js:1059 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" @@ -511,7 +494,7 @@ msgstr[2] "%d корисника се придружило" msgstr[3] "%d корисник се придружио" -#: src/chatView.js:1062 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -522,14 +505,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1129 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1134 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Јуче, у %H:%M" @@ -537,7 +520,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1139 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -546,7 +529,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1145 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d. %B, %H∶%M" @@ -555,21 +538,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1151 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d. %B %Y., %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1156 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1161 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Јуче, у %l∶%M %p" @@ -577,7 +560,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1166 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -586,7 +569,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1172 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d. %B, %l∶%M %p" @@ -595,26 +578,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1178 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d. %B %Y., %l∶%M %p" -#: src/connections.js:50 +#: src/connections.js:42 msgid "Already added" msgstr "Већ је додато" -#: src/connections.js:105 +#: src/connections.js:104 msgid "No results." msgstr "Нема резултата." -#. Translators: %s is a connection name -#: src/connections.js:484 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Својства за %s" -#: src/connections.js:528 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -622,7 +604,7 @@ "Полари је прекинуо везу услед грешке на мрежи. Проверите да ли је унета " "адреса исправна." -#: src/entryArea.js:361 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" @@ -631,7 +613,7 @@ msgstr[2] "Да убацим %s линија текста у јавни сервис за убацивање?" msgstr[3] "Да убацим %s линију текста у јавни сервис за убацивање?" -#: src/entryArea.js:365 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" @@ -640,46 +622,46 @@ msgstr[2] "Отпремам %s линија текста на јавни сервис за убацивање…" msgstr[3] "Отпремам %s линију текста на јавни сервис за налепке..." -#: src/entryArea.js:372 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Да отпремим слику на јавни сервис за убацивање?" -#: src/entryArea.js:373 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Отпремам слику на јавни сервис за убацивање…" #. Translators: %s is a filename -#: src/entryArea.js:394 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Да отпремим „%s“ на јавни сервис за убацивање?" #. Translators: %s is a filename -#: src/entryArea.js:396 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Отпремам „%s“ на јавни сервис за убацивање…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:405 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s је у соби #%s" -#: src/entryArea.js:407 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Убаци са %s" -#: src/initialSetup.js:79 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Назад" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Готово" -#: src/initialSetup.js:80 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Следеће" @@ -692,12 +674,12 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:22 +#: src/ircParser.js:23 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "/CLOSE [<канал>] [<разлог>] — затвара <канал>, по основи се тренутни" -#: src/ircParser.js:23 +#: src/ircParser.js:24 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -705,87 +687,87 @@ "/HELP [<наредба>] — приказује помоћ за <наредбу>, или списак доступних " "наредби" -#: src/ircParser.js:24 +#: src/ircParser.js:25 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE <надимак> [<канал>] — позива <надимак> на <канал>, или на текући " "канал" -#: src/ircParser.js:25 +#: src/ircParser.js:26 msgid "/JOIN — joins " msgstr "/JOIN <канал> — приступа <каналу>" -#: src/ircParser.js:26 +#: src/ircParser.js:27 msgid "/KICK — kicks from current channel" msgstr "/KICK <надимак> — избацује <надимак> са текућег канала" -#: src/ircParser.js:27 +#: src/ircParser.js:28 msgid "/ME — sends to the current channel" msgstr "/ME <радња> — шаље <радњу> на текући канал" -#: src/ircParser.js:28 +#: src/ircParser.js:29 msgid "/MSG [] — sends a private message to " msgstr "/MSG <надимак> [<порука>] — шаље приватну поруку ка <надимак>" -#: src/ircParser.js:29 +#: src/ircParser.js:30 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — исписује кориснике на текућем каналу" -#: src/ircParser.js:30 +#: src/ircParser.js:31 msgid "/NICK — sets your nick to " msgstr "/NICK <надимак> — мења ваш надимак у <надимак>" -#: src/ircParser.js:31 +#: src/ircParser.js:32 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [<канал>] [<разлог>] — напушта <канал>, подразумевано се напушта " "тренутни" -#: src/ircParser.js:32 +#: src/ircParser.js:33 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY <надимак> — отвара лични разговор са <надимак>" -#: src/ircParser.js:33 +#: src/ircParser.js:34 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [<разлог>] — прекида везу са тренутним сервером" -#: src/ircParser.js:34 +#: src/ircParser.js:35 msgid "/SAY — sends to the current room/contact" msgstr "/SAY <текст> — шаље <текст> у текућу собу/ка текућем контакту" -#: src/ircParser.js:35 +#: src/ircParser.js:36 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "/TOPIC <тема> — поставља тему <тему>, или приказује текућу тему" -#: src/ircParser.js:38 +#: src/ircParser.js:39 msgid "Unknown command — try /HELP for a list of available commands" msgstr "Непозната наредба — пробајте „/HELP“ за приказ доступних наредби" -#: src/ircParser.js:52 +#: src/ircParser.js:53 #, javascript-format msgid "Usage: %s" msgstr "Употреба: %s" -#: src/ircParser.js:88 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Познате наредбе:" -#: src/ircParser.js:187 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Корисника на „%s“:" -#: src/ircParser.js:266 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Тема није постављена" -#: src/joinDialog.js:228 +#: src/joinDialog.js:232 msgid "Add Network" msgstr "Додај мрежу" -#: src/mainWindow.js:381 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" @@ -794,108 +776,133 @@ msgstr[2] "%d корисникa" msgstr[3] "%d корисник" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Напустите собу" -#: src/roomList.js:185 +#: src/roomList.js:190 msgid "End conversation" msgstr "Завршите разговор" -#: src/roomList.js:289 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Постоји грешка на мрежи „%s“" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:360 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "Налог „%s“ (%s)" -#: src/roomList.js:367 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Грешка у вези" -#: src/roomList.js:384 +#: src/roomList.js:396 msgid "Connected" msgstr "Повезани сте" -#: src/roomList.js:386 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Повезујем се…" -#: src/roomList.js:388 src/userList.js:410 -msgid "Offline" -msgstr "Ван мреже" - -#: src/roomList.js:390 +#: src/roomList.js:402 msgid "Unknown" msgstr "Непознато" -#: src/roomList.js:410 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Не могу да успоставим безбедну везу са „%s“." -#: src/roomList.js:413 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "„%s“ захтева лозинку." -#: src/roomList.js:419 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Не могу да се повежем на „%s“. Сервер је заузет." -#: src/roomList.js:422 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Не могу да се повежем на „%s“." -#: src/roomStack.js:113 -msgid "_Save Password" -msgstr "Сачувај _лозинку" - -#: src/roomStack.js:122 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Да ли треба чувати лозинку?" -#: src/roomStack.js:130 src/telepathyClient.js:585 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "Идентификација ће самостално бити обављена следећи пут када се повежете на %s" -#: src/roomStack.js:159 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "Сачувај _лозинку" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Нисам успео да приступим соби" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Пробај поново" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Соба је пуна." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Забрањен вам је приступ овој соби." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Ова соба је само за оне са позивницом." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Избачени сте из ове собе." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Није могуће приступити овој соби сада али можете поново пробати касније." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Приступите соби користећи „+“ дугме." -#: src/telepathyClient.js:410 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Довиђења" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:584 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Сачувати %s лозинку за %s?" -#: src/telepathyClient.js:588 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Сачувај" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:611 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s у %s" -#: src/userList.js:225 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" @@ -904,7 +911,7 @@ msgstr[2] "пре %d секунди" msgstr[3] "пре %d секунде" -#: src/userList.js:230 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" @@ -913,7 +920,7 @@ msgstr[2] "пре %d минута" msgstr[3] "пре %d минут" -#: src/userList.js:235 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" @@ -922,7 +929,7 @@ msgstr[2] "пре %d сати" msgstr[3] "пре %d сат" -#: src/userList.js:240 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" @@ -931,7 +938,7 @@ msgstr[2] "пре %d дана" msgstr[3] "пре %d дан" -#: src/userList.js:245 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" @@ -940,7 +947,7 @@ msgstr[2] "пре %d недеља" msgstr[3] "пре %d недеље" -#: src/userList.js:249 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" @@ -949,37 +956,57 @@ msgstr[2] "пре %d месеци" msgstr[3] "пре %d месец" -#: src/userList.js:406 +#: src/userList.js:452 msgid "Available in another room." msgstr "Доступан у другој соби." -#: src/userList.js:408 +#: src/userList.js:454 msgid "Online" msgstr "На мрежи" -#: src/userList.js:553 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Нема резултата" -#: src/userTracker.js:304 +#: src/userTracker.js:312 msgid "User is online" msgstr "Корисник је на мрежи" -#: src/userTracker.js:305 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Корисник „%s“ је сада на мрежи." -#: src/utils.js:101 +#: src/utils.js:106 #, javascript-format msgid "Polari server password for %s" msgstr "Серверска лозинка Поларија за „%s“" -#: src/utils.js:106 +#: src/utils.js:111 #, javascript-format msgid "Polari NickServ password for %s" msgstr "Серверска лозинка Поларија за „%s“" +# Немојте преводити ово. +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Да покренем Поларија у позадини?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Полари ће наставити да ради у позадини када је затворен и биће аутоматски " +#~ "покренут приликом пријаве." + +#~ msgid "_Quit" +#~ msgstr "_Изађи" + +#~ msgid "_Run in background" +#~ msgstr "_Ради у позадини" + #~ msgid "All" #~ msgstr "Све" @@ -1056,9 +1083,6 @@ #~ msgid "Try again" #~ msgstr "Покушај поново" -#~ msgid "The server is busy." -#~ msgstr "Сервер је заузет." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Нисам успео да се повежем из непознатог разлога." diff -Nru polari-3.32.0/po/sv.po polari-3.34.0/po/sv.po --- polari-3.32.0/po/sv.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/sv.po 2019-09-09 18:44:11.000000000 +0000 @@ -1,16 +1,16 @@ # Swedish translation for polari. -# Copyright © 2014-2018 polari's COPYRIGHT HOLDER +# Copyright © 2014-2019 polari's COPYRIGHT HOLDER # This file is distributed under the same license as the polari package. # Kristoffer Grundström , 2014. -# Anders Jonsson , 2014, 2015, 2016, 2017, 2018. +# Anders Jonsson , 2014, 2015, 2016, 2017, 2018, 2019. # Sebastian Rasmussen , 2015, 2016. # msgid "" msgstr "" "Project-Id-Version: polari.master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-09 23:23+0200\n" +"POT-Creation-Date: 2019-06-15 10:57+0000\n" +"PO-Revision-Date: 2019-08-05 14:35+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -18,16 +18,16 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "En IRC-chattklient för GNOME" @@ -53,15 +53,10 @@ "viktigt meddelande — för privata konversationer tillåter de dig till och med " "att svara omedelbart utan att växla tillbaka till programmet!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME-projektet" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -166,7 +161,7 @@ msgstr "_Fullständigt namn" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_Avbryt" @@ -289,7 +284,7 @@ "Välj rum som du vill ansluta till. Du kan lägga till fler nätverk och rum " "senare genom att trycka på +-knappen." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Gå in i chattrummet" @@ -326,37 +321,26 @@ msgstr "Om" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Avsluta" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Kör Polari i bakgrunden?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari kommer att fortsätta att köra då det stängts och kommer att startas " -"automatiskt vid inloggning." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "A_vsluta" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Kör i bakgrunden" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Lägg till rum och nätverk" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Visa anslutna användare" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Frånkopplad" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Anslut till nätet för att chatta och ta emot meddelanden." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Ändra smeknamn:" @@ -405,32 +389,32 @@ msgid "Start Conversation" msgstr "Starta konversation" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Starta Telepathy-klient" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Starta i felsökningsläge" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Tillåt körning vid sidan av en annan instans" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Skriv ut version och avsluta" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "Misslyckades med att öppna länk" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s borttagen." -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "" "Kristoffer Grundström \n" @@ -439,74 +423,74 @@ "Skicka synpunkter på översättningen till\n" "." -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "Lär dig mer om Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "Ångra" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Nya meddelanden" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "Öppna länk" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "Kopiera länkadress" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s är nu känd som %s" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s har kopplat ner" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s har sparkats ut av %s" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s har sparkats ut" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s har blivit bannlyst av %s" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s har blivit bannlyst" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s anslöt" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s lämnade" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d användare anslöt" msgstr[1] "%d användare anslöt" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -515,14 +499,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H:%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Igår, %H:%M" @@ -530,7 +514,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -539,7 +523,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -548,21 +532,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Igår, %I:%M %p" @@ -570,7 +554,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -579,7 +563,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -588,26 +572,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Redan tillagd" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Inga resultat." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "Egenskaper för ”%s”" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -615,60 +598,60 @@ "Polari kopplade från på grund av ett nätverksfel. Kontrollera om " "adressfältet stämmer." -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "Klistra in %s rad text i en publik inklistringstjänst?" msgstr[1] "Klistra in %s rader text i en publik inklistringstjänst?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "Skickar %s rad text till en publik inklistringstjänst…" msgstr[1] "Skickar %s rader text till en publik inklistringstjänst…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "Skicka bild till en publik inklistringstjänst?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "Skickar bild till en publik inklistringstjänst…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "Skicka ”%s” till en publik inklistringstjänst?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "Skickar ”%s” till en publik inklistringstjänst…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s i #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "Inklistring från %s" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Bakåt" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Färdig" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_Nästa" @@ -765,16 +748,16 @@ msgid "Usage: %s" msgstr "Användning: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "Kända kommandon:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "Användare på %s:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "Inget ämne är inställt" @@ -782,177 +765,198 @@ msgid "Add Network" msgstr "Lägg till nätverk" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d användare" msgstr[1] "%d användare" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Lämna chattrum" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Avsluta konversation" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "Nätverket %s har ett fel" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Anslutningsproblem" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Ansluten" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Ansluter…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Frånkopplad" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Okänd" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "Kunde inte ansluta till %s på ett säkert sätt." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s kräver ett lösenord." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "Kunde inte ansluta till %s. Servern är upptagen." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "Kunde inte ansluta till %s." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Spara lösenord" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Ska lösenordet sparas?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "" "Identifiering kommer att ske automatiskt nästa gång du ansluter till %s" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Spara lösenord" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Misslyckades med att gå in i rummet" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Försök igen" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Rummet är fullt." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Du har bannlysts från rummet." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Rummet är endast för inbjudna." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Du har sparkats ut från rummet." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Det är inte möjligt att gå in i rummet nu, men du kan försöka igen senare." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "Gå in i ett rum med +-knappen." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "Hejdå" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "Spara %s-lösenord för %s?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "Spara" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s i %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d sekund sedan" msgstr[1] "%d sekunder sedan" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minut sedan" msgstr[1] "%d minuter sedan" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d timme sedan" msgstr[1] "%d timmar sedan" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d dag sedan" msgstr[1] "%d dagar sedan" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d vecka sedan" msgstr[1] "%d veckor sedan" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d månad sedan" msgstr[1] "%d månader sedan" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Tillgänglig i annat rum." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Uppkopplad" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "Inga resultat" -#: src/userList.js:734 -msgid "All" -msgstr "Alla" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Användare är uppkopplad" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Användaren %s är nu uppkopplad." @@ -967,6 +971,28 @@ msgid "Polari NickServ password for %s" msgstr "Polari-NickServ-lösenord för %s" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Kör Polari i bakgrunden?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari kommer att fortsätta att köra då det stängts och kommer att " +#~ "startas automatiskt vid inloggning." + +#~ msgid "_Quit" +#~ msgstr "A_vsluta" + +#~ msgid "_Run in background" +#~ msgstr "_Kör i bakgrunden" + +#~ msgid "All" +#~ msgstr "Alla" + #~ msgid "Message" #~ msgstr "Meddelande" @@ -1040,9 +1066,6 @@ #~ msgid "Try again" #~ msgstr "Försök igen" -#~ msgid "The server is busy." -#~ msgstr "Servern är upptagen." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Misslyckades med att ansluta av en okänd anledning." diff -Nru polari-3.32.0/po/tr.po polari-3.34.0/po/tr.po --- polari-3.32.0/po/tr.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/tr.po 2019-09-09 18:44:11.000000000 +0000 @@ -1,36 +1,37 @@ # Turkish translation for polari. -# Copyright (C) 2014 polari's COPYRIGHT HOLDER -# This file is distributed under the same license as the polari package. -# sabri ünal , 2014. +# Copyright (C) 2014-2019 polari's COPYRIGHT HOLDER +# # This file is distributed under the same license as the polari package. +# # # Çağatay Yiğit Şahin , 2017. # Berkay Aktunç , 2017. # Nurperi Utlu , 2017. # Furkan Ahmet Kara , 2018. # Muhammet Kara , 2014, 2015, 2016, 2017, 2018. +# Sabri Ünal , 2014, 2019. # msgid "" msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-06 10:23+0300\n" -"Last-Translator: Muhammet Kara \n" +"POT-Creation-Date: 2019-08-20 17:37+0000\n" +"PO-Revision-Date: 2019-09-06 22:50+0300\n" +"Last-Translator: Emin Tufan Çetin \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Gtranslator 2.91.7\n" +"X-Generator: Poedit 2.2.3\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:847 msgid "An Internet Relay Chat Client for GNOME" msgstr "GNOME için İnternet Aktarmalı Sohbet İstemcisi" @@ -56,15 +57,10 @@ "iletiyi asla kaçırmayacağınızdan emin olmanızı sağlar - ayrıca özel " "konuşmalarda, uygulamaya geri dönmeden anında cevap yazmanıza olanak tanır!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME Projesi" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -170,7 +166,7 @@ msgstr "_Gerçek İsim" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "_İptal" @@ -293,7 +289,7 @@ "Bağlanmak istediğiniz odayı seçin. Daha sonra + düğmesine basarak ağ veya " "oda ekleyebilirsiniz." -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "Sohbet Odasına Katıl" @@ -330,37 +326,26 @@ msgstr "Hakkında" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "Çıkış" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "Polari Arkaplanda Çalışsın mı?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "" -"Polari kapalıyken de çalışmaya devam edecek ve oturum açıldığında otomatik " -"olarak başlatılacak." - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "_Çık" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "_Arkaplanda çalıştır" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "Odalar ve ağlar ekleyin" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "Bağlı kullanıcıları göster" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "Çevrimdışı" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "Konuşmak ve ileti almak için çevrim içi olun." + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "Takma adı değiştir:" @@ -409,102 +394,102 @@ msgid "Start Conversation" msgstr "Konuşmaya Başla" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "Telepathy istemcisi başlat" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "Hata ayıklama kipinde başlat" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "Başka bir örneğin yanında çalışmaya izin ver" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "Sürümü yazdır ve çık" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:185 msgid "Failed to open link" msgstr "Bağlantıyı açma başarısız oldu" -#: src/application.js:712 +#: src/application.js:770 #, javascript-format msgid "%s removed." -msgstr "%s kaldırıldı" +msgstr "%s kaldırıldı." -#: src/application.js:816 +#: src/application.js:846 msgid "translator-credits" -msgstr "Muhammet Kara " +msgstr "Muhammet Kara " -#: src/application.js:822 +#: src/application.js:852 msgid "Learn more about Polari" -msgstr "Polari hakkında daha fazlasını öğrenin" +msgstr "Polari hakkında daha çoğunu öğrenin" -#: src/appNotifications.js:79 +#: src/appNotifications.js:85 msgid "Undo" msgstr "Geri Al" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "Yeni İletiler" -#: src/chatView.js:762 +#: src/chatView.js:785 msgid "Open Link" msgstr "Bağlantıyı Aç" -#: src/chatView.js:768 +#: src/chatView.js:791 msgid "Copy Link Address" msgstr "Bağlantı Adresini Kopyala" -#: src/chatView.js:936 +#: src/chatView.js:963 #, javascript-format msgid "%s is now known as %s" msgstr "%s şimdi %s olarak biliniyor" -#: src/chatView.js:941 +#: src/chatView.js:968 #, javascript-format msgid "%s has disconnected" msgstr "%s bağlantısını kesti" -#: src/chatView.js:949 +#: src/chatView.js:977 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s, %s tarafından kanaldan atıldı" -#: src/chatView.js:951 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked" msgstr "%s kanaldan atıldı" -#: src/chatView.js:957 +#: src/chatView.js:985 #, javascript-format msgid "%s has been banned by %s" msgstr "%s, %s tarafından yasaklandı" -#: src/chatView.js:959 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned" msgstr "%s yasaklandı" -#: src/chatView.js:964 +#: src/chatView.js:991 #, javascript-format msgid "%s joined" msgstr "%s odaya katıldı" -#: src/chatView.js:969 +#: src/chatView.js:996 #, javascript-format msgid "%s left" msgstr "%s odadan ayrıldı" -#: src/chatView.js:1062 +#: src/chatView.js:1093 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d kullanıcı katıldı" -#: src/chatView.js:1065 +#: src/chatView.js:1100 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -512,14 +497,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1172 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1177 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "Dün, %H∶%M" @@ -527,7 +512,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1182 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H∶%M" @@ -536,7 +521,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1188 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H∶%M" @@ -545,21 +530,22 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1194 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H∶%M" +#. eslint-disable-next-line no-lonely-if #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%l∶%M %p" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "Dün, %l∶%M %p" @@ -567,7 +553,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %l∶%M %p" @@ -576,7 +562,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %l∶%M %p" @@ -585,26 +571,25 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %l∶%M %p" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "Zaten eklenmiş" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "Sonuç yok." -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "“%s” Özellikleri" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -612,58 +597,58 @@ "Bir ağ hatası nedeniyle Polari'nin bağlantısı kesildi. Lütfen adres " "alanındaki bilgilerin doğru olup olmadığını kontrol edin." -#: src/entryArea.js:400 +#: src/entryArea.js:369 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "%s satır metin açık yapıştırma servisine yüklensin mi?" -#: src/entryArea.js:404 +#: src/entryArea.js:373 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "%s satır metin açık yapıştırma servisine yükleniyor…" -#: src/entryArea.js:411 +#: src/entryArea.js:380 msgid "Upload image to public paste service?" msgstr "Resim açık yapıştırma servisine yüklensin mi?" -#: src/entryArea.js:412 +#: src/entryArea.js:381 msgid "Uploading image to public paste service…" msgstr "Resim açık yapıştırma servisine yükleniyor…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:403 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "“%s” açık yapıştırma servisine yüklensin mi?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:405 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "“%s” açık yapıştırma servisine yükleniyor…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:414 #, javascript-format msgid "%s in #%s" msgstr "%s, #%s'de" -#: src/entryArea.js:446 +#: src/entryArea.js:416 #, javascript-format msgid "Paste from %s" msgstr "%s'den yapıştır" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "_Geri" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "_Bitti" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "_İleri" @@ -676,14 +661,14 @@ #. OP: N_("/OP — gives channel operator status to "), #. WHOIS: N_("/WHOIS — requests information on "), #. -#: src/ircParser.js:23 +#: src/ircParser.js:21 msgid "" "/CLOSE [] [] — closes , by default the current one" msgstr "" "/PART [] [] — kanalından, öntanımlı olarak " "geçerli kanaldan, ayrılır" -#: src/ircParser.js:24 +#: src/ircParser.js:22 msgid "" "/HELP [] — displays help for , or a list of available " "commands" @@ -691,82 +676,82 @@ "/HELP [] — için yardımı ya da kullanılabilir komutların " "listesini gösterir" -#: src/ircParser.js:25 +#: src/ircParser.js:23 msgid "" "/INVITE [] — invites to , or the current one" msgstr "" "/INVITE [] — adlı kullanıcıyı kanalına ya " "da geçerli kanala davet eder" -#: src/ircParser.js:26 +#: src/ircParser.js:24 msgid "/JOIN — joins " msgstr "/JOIN kanalına katılır" -#: src/ircParser.js:27 +#: src/ircParser.js:25 msgid "/KICK — kicks from current channel" msgstr "/KICK adlı kullanıcıyı geçerli kanaldan atar" -#: src/ircParser.js:28 +#: src/ircParser.js:26 msgid "/ME — sends to the current channel" msgstr "/ME eylemini geçerli kanala gönderir" -#: src/ircParser.js:29 +#: src/ircParser.js:27 msgid "/MSG [] — sends a private message to " msgstr "/MSG [] — kişisine bir özel ileti gönderir" -#: src/ircParser.js:30 +#: src/ircParser.js:28 msgid "/NAMES — lists users on the current channel" msgstr "/NAMES — geçerli kanaldaki kullanıcıları listeler" -#: src/ircParser.js:31 +#: src/ircParser.js:29 msgid "/NICK — sets your nick to " msgstr "/NICK — takma adınızı olarak belirler" -#: src/ircParser.js:32 +#: src/ircParser.js:30 msgid "" "/PART [] [] — leaves , by default the current one" msgstr "" "/PART [] [] — kanalından, öntanımlı olarak " "geçerli kanaldan, ayrılır" -#: src/ircParser.js:33 +#: src/ircParser.js:31 msgid "/QUERY — opens a private conversation with " msgstr "/QUERY ile özel konuşma başlatır" -#: src/ircParser.js:34 +#: src/ircParser.js:32 msgid "/QUIT [] — disconnects from the current server" msgstr "/QUIT [] — geçerli sunucu ile bağlantınızı keser" -#: src/ircParser.js:35 +#: src/ircParser.js:33 msgid "/SAY — sends to the current room/contact" msgstr "/SAY metnini geçerli odaya/kişiye gönderir" -#: src/ircParser.js:36 +#: src/ircParser.js:34 msgid "/TOPIC — sets the topic to , or shows the current one" msgstr "" "/TOPIC — konuyu olarak belirler ya da geçerli konuyu gösterir" -#: src/ircParser.js:39 +#: src/ircParser.js:37 msgid "Unknown command — try /HELP for a list of available commands" msgstr "" "Bilinmeyen komut — kullanılabilir komutların listesi için /HELP komutunu " "deneyiniz" -#: src/ircParser.js:53 +#: src/ircParser.js:51 #, javascript-format msgid "Usage: %s" msgstr "Kullanım: %s" -#: src/ircParser.js:89 +#: src/ircParser.js:88 msgid "Known commands:" msgstr "Bilinen komutlar:" -#: src/ircParser.js:188 +#: src/ircParser.js:190 #, javascript-format msgid "Users on %s:" msgstr "%s üzerindeki kullanıcılar:" -#: src/ircParser.js:267 +#: src/ircParser.js:269 msgid "No topic set" msgstr "Konu ayarlanmamış" @@ -774,183 +759,226 @@ msgid "Add Network" msgstr "Ağ Ekle" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d kullanıcı" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "Sohbet odasından ayrıl" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "Konuşmayı sonlandır" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "%s ağında bir hata var" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "Bağlantı Sorunu" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "Bağlandı" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "Bağlanıyor…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "Çevrimdışı" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "Bilinmiyor" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "%s ile güvenli bir şekilde bağlantı kurulamadı." -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s parola gerektiriyor." -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "%s ile bağlantı kurulamadı. Sunucu meşgul." -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "%s ile bağlantı kurulamadı." -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "_Parolayı Kaydet" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "Parola kaydedilmeli mi?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:651 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "%s'e bir dahaki bağlanışınızda tanıtma otomatik olarak gerçekleşecek" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "_Parolayı Kaydet" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "Odaya katılım başarısız" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "_Yeniden Dene" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "Oda dolu." + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "Bu odadan yasaklandınız." + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "Oda davetlilere özel." + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "Odadan atıldınız." + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "" +"Odaya katılmak şimdilik olanaksız ancak daha sonra yeniden deneyebilirsin." + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "+ düğmesini kullanarak bir odaya katıl." -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:464 msgid "Good Bye" msgstr "Hoşça Kal" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:650 #, javascript-format msgid "Save %s password for %s?" msgstr "%2$s için %1$s parolası kaydedilsin mi?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:654 msgid "Save" msgstr "Kaydet" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:686 #, javascript-format msgid "%s in %s" msgstr "%2$s içinde %1$s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d saniye önce" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d dakika önce" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d saat önce" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d gün önce" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d hafta önce" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d ay önce" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." msgstr "Başka bir odada müsait." -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "Çevrim dışı" -#: src/userList.js:562 -msgid "No results" -msgstr "Sonuç yok" - -#: src/userList.js:734 -msgid "All" -msgstr "Tümü" +#: src/userList.js:617 +msgid "No Results" +msgstr "Sonuç Yok" -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "Kullanıcı çevrim içi" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "Kullanıcı %s şimdi çevrim içi." -#: src/utils.js:106 +#: src/utils.js:104 #, javascript-format msgid "Polari server password for %s" msgstr "%s için Polari sunucu parolası" -#: src/utils.js:111 +#: src/utils.js:109 #, javascript-format msgid "Polari NickServ password for %s" msgstr "%s için Polari NickServ parolası" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "Polari Arkaplanda Çalışsın mı?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "" +#~ "Polari kapalıyken de çalışmaya devam edecek ve oturum açıldığında " +#~ "otomatik olarak başlatılacak." + +#~ msgid "_Quit" +#~ msgstr "_Çık" + +#~ msgid "_Run in background" +#~ msgstr "_Arkaplanda çalıştır" + +#~ msgid "All" +#~ msgstr "Tümü" + #~ msgid "Message" #~ msgstr "İleti" @@ -1018,9 +1046,6 @@ #~ msgid "Try again" #~ msgstr "Tekrar deneyin" -#~ msgid "The server is busy." -#~ msgstr "Sunucu meşgul." - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "Bağlantı, bilinmeyen bir nedenle başarısız oldu." diff -Nru polari-3.32.0/po/zh_TW.po polari-3.34.0/po/zh_TW.po --- polari-3.32.0/po/zh_TW.po 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/po/zh_TW.po 2019-09-09 18:44:11.000000000 +0000 @@ -7,25 +7,25 @@ msgstr "" "Project-Id-Version: polari master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/polari/issues\n" -"POT-Creation-Date: 2018-07-25 04:57+0000\n" -"PO-Revision-Date: 2018-08-12 16:51+0800\n" -"Last-Translator: pan93412 \n" +"POT-Creation-Date: 2019-05-21 16:29+0000\n" +"PO-Revision-Date: 2019-06-09 21:05+0800\n" +"Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese (Taiwan) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.4\n" +"X-Generator: Poedit 2.2.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/appdata/org.gnome.Polari.appdata.xml.in:7 -#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:65 -#: src/roomStack.js:160 +#: data/org.gnome.Polari.desktop.in:3 data/resources/main-window.ui:39 +#: src/roomStack.js:205 msgid "Polari" msgstr "Polari" #: data/appdata/org.gnome.Polari.appdata.xml.in:8 -#: data/org.gnome.Polari.desktop.in:4 src/application.js:817 +#: data/org.gnome.Polari.desktop.in:4 src/application.js:849 msgid "An Internet Relay Chat Client for GNOME" msgstr "GNOME 的網際網路中繼聊天客戶端" @@ -48,15 +48,10 @@ "您可以使用 Polari 與頻道中的人群公開討論,或是一對一的私人對話。通知功能能讓" "您不錯過重要訊息 — 私人談話甚至不必切換回應用程式就可以快速回覆!" -#: data/appdata/org.gnome.Polari.appdata.xml.in:47 +#: data/appdata/org.gnome.Polari.appdata.xml.in:48 msgid "The GNOME Project" msgstr "GNOME 專案" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Polari.desktop.in:7 -msgid "org.gnome.Polari" -msgstr "org.gnome.Polari" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Polari.desktop.in:15 msgid "IRC;Internet;Relay;Chat;" @@ -160,7 +155,7 @@ msgstr "實名(_R)" #: data/resources/connection-properties.ui:9 data/resources/entry-area.ui:109 -#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:82 +#: data/resources/join-room-dialog.ui:11 src/initialSetup.js:85 msgid "_Cancel" msgstr "取消(_C)" @@ -280,7 +275,7 @@ msgstr "" "請選取您想要連接的聊天室。您稍後可以再加入更多網路和聊天室,作法是按下 + 鈕。" -#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:231 +#: data/resources/join-room-dialog.ui:4 src/joinDialog.js:232 msgid "Join Chat Room" msgstr "參與聊天室" @@ -317,35 +312,26 @@ msgstr "關於" #: data/resources/main-window.ui:34 data/resources/menus.ui:6 +#: src/application.js:57 msgid "Quit" msgstr "退出" -#: data/resources/main-window.ui:40 -msgid "Run Polari in the Background?" -msgstr "是否在背景執行 Polari?" - -#: data/resources/main-window.ui:41 -msgid "" -"Polari will continue to run when closed and will be automatically started on " -"login." -msgstr "Polari 在關閉後會繼續執行,而且在登入時會自動啟動。" - -#: data/resources/main-window.ui:47 -msgid "_Quit" -msgstr "結束(_Q)" - -#: data/resources/main-window.ui:54 -msgid "_Run in background" -msgstr "於背景中執行(_R)" - -#: data/resources/main-window.ui:81 data/resources/main-window.ui:95 +#: data/resources/main-window.ui:55 data/resources/main-window.ui:69 msgid "Add rooms and networks" msgstr "加入聊天室和網路" -#: data/resources/main-window.ui:222 +#: data/resources/main-window.ui:196 msgid "Show connected users" msgstr "顯示連結的使用者" +#: data/resources/main-window.ui:224 src/roomList.js:400 src/userList.js:456 +msgid "Offline" +msgstr "離線" + +#: data/resources/main-window.ui:233 +msgid "Go online to chat and receive messages." +msgstr "上線以聊天和接收訊息。" + #: data/resources/nick-popover.ui:16 msgid "Change nickname:" msgstr "變更暱稱:" @@ -394,102 +380,102 @@ msgid "Start Conversation" msgstr "開始對話" -#: src/application.js:47 +#: src/application.js:43 msgid "Start Telepathy client" msgstr "啟動 Telepathy 客戶端" -#: src/application.js:52 +#: src/application.js:48 msgid "Start in debug mode" msgstr "以偵錯模式啟動" -#: src/application.js:55 +#: src/application.js:51 msgid "Allow running alongside another instance" msgstr "允許同另一個實體一併運行" -#: src/application.js:58 +#: src/application.js:54 msgid "Print version and exit" msgstr "列印版本並離開" -#: src/application.js:425 src/utils.js:184 +#: src/application.js:479 src/utils.js:187 msgid "Failed to open link" msgstr "無法開啟連結" -#: src/application.js:712 +#: src/application.js:772 #, javascript-format msgid "%s removed." msgstr "%s 已經移除。" -#: src/application.js:816 +#: src/application.js:848 msgid "translator-credits" msgstr "Cheng-Chia Tseng , 2013-17." -#: src/application.js:822 +#: src/application.js:854 msgid "Learn more about Polari" msgstr "了解更多關於 Polari" -#: src/appNotifications.js:79 +#: src/appNotifications.js:87 msgid "Undo" msgstr "復原" -#: src/chatView.js:138 +#: src/chatView.js:137 msgid "New Messages" msgstr "新訊息" -#: src/chatView.js:762 +#: src/chatView.js:786 msgid "Open Link" msgstr "開啟連結" -#: src/chatView.js:768 +#: src/chatView.js:792 msgid "Copy Link Address" msgstr "複製連結位址" -#: src/chatView.js:936 +#: src/chatView.js:964 #, javascript-format msgid "%s is now known as %s" msgstr "%s 現在改以 %s 為名" -#: src/chatView.js:941 +#: src/chatView.js:969 #, javascript-format msgid "%s has disconnected" msgstr "%s 已失去連線" -#: src/chatView.js:949 +#: src/chatView.js:978 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s 已被 %s 踢出" -#: src/chatView.js:951 +#: src/chatView.js:979 #, javascript-format msgid "%s has been kicked" msgstr "%s 已被踢出" -#: src/chatView.js:957 +#: src/chatView.js:986 #, javascript-format msgid "%s has been banned by %s" msgstr "%s 已被 %s 禁言" -#: src/chatView.js:959 +#: src/chatView.js:987 #, javascript-format msgid "%s has been banned" msgstr "%s 已被禁言" -#: src/chatView.js:964 +#: src/chatView.js:992 #, javascript-format msgid "%s joined" msgstr "%s 已參與" -#: src/chatView.js:969 +#: src/chatView.js:997 #, javascript-format msgid "%s left" msgstr "%s 已離開" -#: src/chatView.js:1062 +#: src/chatView.js:1094 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d 位使用者已參與" -#: src/chatView.js:1065 +#: src/chatView.js:1101 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -497,14 +483,14 @@ #. today #. Translators: Time in 24h format -#: src/chatView.js:1132 +#: src/chatView.js:1173 msgid "%H∶%M" msgstr "%H∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: src/chatView.js:1137 +#: src/chatView.js:1178 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "昨日 %H:%M" @@ -512,7 +498,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: src/chatView.js:1142 +#: src/chatView.js:1183 #, no-c-format msgid "%A, %H∶%M" msgstr "%A %H:%M" @@ -521,7 +507,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: src/chatView.js:1148 +#: src/chatView.js:1189 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%m月%d日 %H:%M" @@ -530,21 +516,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: src/chatView.js:1154 +#: src/chatView.js:1195 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%Y年%m月%d日 %H:%M" #. today #. Translators: Time in 12h format -#: src/chatView.js:1159 +#: src/chatView.js:1200 msgid "%l∶%M %p" msgstr "%p %l∶%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: src/chatView.js:1164 +#: src/chatView.js:1205 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "昨日%p %l∶%M" @@ -552,7 +538,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: src/chatView.js:1169 +#: src/chatView.js:1210 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A%p %l:%M" @@ -561,7 +547,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: src/chatView.js:1175 +#: src/chatView.js:1216 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%m月%d日%p %l:%M" @@ -570,83 +556,82 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: src/chatView.js:1181 +#: src/chatView.js:1222 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%Y年%m月%d日%p %l:%M" -#: src/connections.js:52 +#: src/connections.js:42 msgid "Already added" msgstr "已經加入" -#: src/connections.js:107 +#: src/connections.js:104 msgid "No results." msgstr "沒有結果。" -#. Translators: %s is a connection name -#: src/connections.js:492 +#: src/connections.js:501 #, javascript-format msgid "“%s” Properties" msgstr "「%s」屬性" -#: src/connections.js:536 +#: src/connections.js:545 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." msgstr "Polari 由於網路錯誤而斷線。請檢查位址欄位是否正確。" -#: src/entryArea.js:400 +#: src/entryArea.js:368 #, javascript-format msgid "Paste %s line of text to public paste service?" msgid_plural "Paste %s lines of text to public paste service?" msgstr[0] "貼上 %s 列文字到公共剪貼服務?" -#: src/entryArea.js:404 +#: src/entryArea.js:372 #, javascript-format msgid "Uploading %s line of text to public paste service…" msgid_plural "Uploading %s lines of text to public paste service…" msgstr[0] "正在上傳 %s 列文字到公共剪貼服務…" -#: src/entryArea.js:411 +#: src/entryArea.js:379 msgid "Upload image to public paste service?" msgstr "上傳圖片到公共剪貼服務?" -#: src/entryArea.js:412 +#: src/entryArea.js:380 msgid "Uploading image to public paste service…" msgstr "正在上傳圖片到公共剪貼服務…" #. Translators: %s is a filename -#: src/entryArea.js:433 +#: src/entryArea.js:402 #, javascript-format msgid "Upload “%s” to public paste service?" msgstr "上傳「%s」到公共剪貼服務?" #. Translators: %s is a filename -#: src/entryArea.js:435 +#: src/entryArea.js:404 #, javascript-format msgid "Uploading “%s” to public paste service…" msgstr "正在上傳「%s」到公共剪貼服務…" #. translators: %s is a nick, #%s a channel -#: src/entryArea.js:444 +#: src/entryArea.js:413 #, javascript-format msgid "%s in #%s" msgstr "%s 於頻道 #%s" -#: src/entryArea.js:446 +#: src/entryArea.js:415 #, javascript-format msgid "Paste from %s" msgstr "從 %s 貼上" -#: src/initialSetup.js:82 +#: src/initialSetup.js:85 msgid "_Back" msgstr "返回(_B)" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Done" msgstr "完成(_D)" -#: src/initialSetup.js:83 +#: src/initialSetup.js:86 msgid "_Next" msgstr "下一步(_N)" @@ -729,16 +714,16 @@ msgid "Usage: %s" msgstr "用法:%s" -#: src/ircParser.js:89 +#: src/ircParser.js:90 msgid "Known commands:" msgstr "未知指令:" -#: src/ircParser.js:188 +#: src/ircParser.js:192 #, javascript-format msgid "Users on %s:" msgstr "%s 上的使用者:" -#: src/ircParser.js:267 +#: src/ircParser.js:271 msgid "No topic set" msgstr "尚未設定主題" @@ -746,169 +731,189 @@ msgid "Add Network" msgstr "加入網路" -#: src/mainWindow.js:388 +#: src/mainWindow.js:389 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d 位使用者" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "Leave chatroom" msgstr "離開聊天室" -#: src/roomList.js:189 +#: src/roomList.js:190 msgid "End conversation" msgstr "結束對話" -#: src/roomList.js:293 +#: src/roomList.js:301 #, javascript-format msgid "Network %s has an error" msgstr "%s 網路有錯誤" #. Translators: This is an account name followed by a #. server address, e.g. "GNOME (irc.gnome.org)" -#: src/roomList.js:364 +#: src/roomList.js:372 #, javascript-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/roomList.js:371 +#: src/roomList.js:379 msgid "Connection Problem" msgstr "連線問題" -#: src/roomList.js:388 +#: src/roomList.js:396 msgid "Connected" msgstr "已連線" -#: src/roomList.js:390 +#: src/roomList.js:398 msgid "Connecting…" msgstr "連線中…" -#: src/roomList.js:392 src/userList.js:415 -msgid "Offline" -msgstr "離線" - -#: src/roomList.js:394 +#: src/roomList.js:402 msgid "Unknown" msgstr "不明" -#: src/roomList.js:414 +#: src/roomList.js:422 #, javascript-format msgid "Could not connect to %s in a safe way." msgstr "無法以安全方式連線到 %s。" -#: src/roomList.js:417 +#: src/roomList.js:425 #, javascript-format msgid "%s requires a password." msgstr "%s 需要密碼。" -#: src/roomList.js:423 +#: src/roomList.js:431 #, javascript-format msgid "Could not connect to %s. The server is busy." msgstr "無法連接到 %s。伺服器忙碌。" -#: src/roomList.js:426 +#: src/roomList.js:434 #, javascript-format msgid "Could not connect to %s." msgstr "無法連接到 %s。" -#: src/roomStack.js:117 -msgid "_Save Password" -msgstr "儲存密碼(_S)" - -#: src/roomStack.js:126 +#: src/roomStack.js:98 msgid "Should the password be saved?" msgstr "是否應該儲存密碼?" -#: src/roomStack.js:134 src/telepathyClient.js:587 +#: src/roomStack.js:100 src/telepathyClient.js:648 #, javascript-format msgid "" "Identification will happen automatically the next time you connect to %s" msgstr "下次您連接至 %s 時會自動識別身份" -#: src/roomStack.js:163 +#: src/roomStack.js:106 +msgid "_Save Password" +msgstr "儲存密碼(_S)" + +#: src/roomStack.js:139 +msgid "Failed to join the room" +msgstr "無法加入聊天室" + +#: src/roomStack.js:141 +msgid "_Retry" +msgstr "重試(_R)" + +#: src/roomStack.js:165 +msgid "The room is full." +msgstr "聊天室已滿。" + +#: src/roomStack.js:168 +msgid "You have been banned from the room." +msgstr "您被禁止進入此聊天室。" + +#: src/roomStack.js:171 +msgid "The room is invite-only." +msgstr "此聊天室只限受邀者加入。" + +#: src/roomStack.js:174 +msgid "You have been kicked from the room." +msgstr "您已從聊天室中被踢除。" + +#: src/roomStack.js:177 +msgid "It is not possible to join the room now, but you can retry later." +msgstr "現在無法加入聊天室,但您可以稍後重試。" + +#: src/roomStack.js:209 msgid "Join a room using the + button." msgstr "使用 + 鈕來加入聊天室。" -#: src/telepathyClient.js:413 +#: src/telepathyClient.js:461 msgid "Good Bye" msgstr "再見" #. Translators: Those are a botname and an accountName, e.g. #. "Save NickServ password for GNOME" -#: src/telepathyClient.js:586 +#: src/telepathyClient.js:647 #, javascript-format msgid "Save %s password for %s?" msgstr "儲存 %s 位於 %s 的密碼?" -#: src/telepathyClient.js:590 +#: src/telepathyClient.js:651 msgid "Save" msgstr "儲存" #. Translators: This is the title of the notification announcing a newly #. received message, in the form "user-nickname in room-display-name" -#: src/telepathyClient.js:613 +#: src/telepathyClient.js:683 #, javascript-format msgid "%s in %s" msgstr "%s 位於 %s" -#: src/userList.js:230 +#: src/userList.js:256 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d 秒前" -#: src/userList.js:235 +#: src/userList.js:263 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d 分鐘前" -#: src/userList.js:240 +#: src/userList.js:270 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d 小時前" -#: src/userList.js:245 +#: src/userList.js:277 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d 天前" -#: src/userList.js:250 +#: src/userList.js:284 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d 週前" -#: src/userList.js:254 +#: src/userList.js:290 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d 個月前" -#: src/userList.js:411 +#: src/userList.js:452 msgid "Available in another room." -msgstr "在其他聊天室有空" +msgstr "在其他聊天室有空。" -#: src/userList.js:413 +#: src/userList.js:454 msgid "Online" msgstr "上線" -#: src/userList.js:562 -msgid "No results" +#: src/userList.js:617 +msgid "No Results" msgstr "沒有結果" -#: src/userList.js:734 -msgid "All" -msgstr "全部" - -#: src/userTracker.js:306 +#: src/userTracker.js:312 msgid "User is online" msgstr "使用者在線上" -#: src/userTracker.js:307 +#: src/userTracker.js:313 #, javascript-format msgid "User %s is now online." msgstr "使用者 %s 在線上。" @@ -923,6 +928,26 @@ msgid "Polari NickServ password for %s" msgstr "%s 的 Polari NickServ 密碼" +#~ msgid "org.gnome.Polari" +#~ msgstr "org.gnome.Polari" + +#~ msgid "Run Polari in the Background?" +#~ msgstr "是否在背景執行 Polari?" + +#~ msgid "" +#~ "Polari will continue to run when closed and will be automatically started " +#~ "on login." +#~ msgstr "Polari 在關閉後會繼續執行,而且在登入時會自動啟動。" + +#~ msgid "_Quit" +#~ msgstr "結束(_Q)" + +#~ msgid "_Run in background" +#~ msgstr "於背景中執行(_R)" + +#~ msgid "All" +#~ msgstr "全部" + #~ msgid "Message" #~ msgstr "訊息" @@ -993,9 +1018,6 @@ #~ msgid "Try again" #~ msgstr "再試一次" -#~ msgid "The server is busy." -#~ msgstr "伺服器忙碌中。" - #~ msgid "Failed to connect for an unknown reason." #~ msgstr "因不明的原因無法連線。" diff -Nru polari-3.32.0/README.md polari-3.34.0/README.md --- polari-3.32.0/README.md 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/README.md 2019-09-09 18:44:11.000000000 +0000 @@ -25,4 +25,4 @@ [build-instructions]: https://wiki.gnome.org/Newcomers/BuildProject [irc-channel]: irc://irc.gnome.org/%23polari [bug-tracker]: https://gitlab.gnome.org/GNOME/polari/issues -[polari-logo]: data/icons/hicolor/48x48/apps/org.gnome.Polari.png +[polari-logo]: logo.png diff -Nru polari-3.32.0/src/accountsMonitor.js polari-3.34.0/src/accountsMonitor.js --- polari-3.32.0/src/accountsMonitor.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/accountsMonitor.js 2019-09-09 18:44:11.000000000 +0000 @@ -3,6 +3,8 @@ const { Gio, GObject, Polari, TelepathyGLib: Tp } = imports.gi; const Signals = imports.signals; +const { NetworksManager } = imports.networksManager; + var AccountsMonitor = class { static getDefault() { if (!this._singleton) @@ -12,13 +14,15 @@ constructor() { this._accounts = new Map(); - this._accountSettings = new Map(); + + this._networkMonitor = Gio.NetworkMonitor.get_default(); this._app = Gio.Application.get_default(); - if (!this._app.isTestInstance) + if (!this._app.isTestInstance) { this._app.connect('prepare-shutdown', - this._onPrepareShutdown.bind(this)); + this._onPrepareShutdown.bind(this)); + } let factory = new ClientFactory(); factory.add_channel_features([Tp.Channel.get_feature_quark_group()]); @@ -48,21 +52,6 @@ return this._accounts.get(accountPath); } - getAccountSettings(account) { - let accountPath = account.object_path; - let settings = this._accountSettings.get(accountPath); - if (settings) - return settings; - - let path = `/org/gnome/Polari/Accounts/${account.get_path_suffix()}/`; - settings = new Gio.Settings({ - schema_id: 'org.gnome.Polari.Account', - path: path - }); - this._accountSettings.set(accountPath, settings); - return settings; - } - prepare(callback) { let quark = Tp.AccountManager.get_feature_quark_core(); if (this._accountManager.is_prepared(quark)) @@ -81,26 +70,36 @@ am.dup_valid_accounts().forEach(this._addAccount.bind(this)); - am.connect('account-validity-changed', (am, account, valid) => { - if (valid) + am.connect('account-validity-changed', (o, account, valid) => { + if (valid) { this._addAccount(account); - else + this._updateAccountReachable(account); + } else { this._removeAccount(account); + } }); - am.connect('account-removed', (am, account) => { + am.connect('account-removed', (o, account) => { this._removeAccount(account); }); am.connect('account-enabled', this._accountEnabledChanged.bind(this)); am.connect('account-disabled', this._accountEnabledChanged.bind(this)); this._preparedCallbacks.forEach(callback => callback()); + + this._networkMonitor.connect('network-changed', + this._onNetworkChanged.bind(this)); + this._onNetworkChanged(); + } + + _onNetworkChanged() { + this.visibleAccounts.forEach(a => this._updateAccountReachable(a)); } _onPrepareShutdown() { let presence = Tp.ConnectionPresenceType.OFFLINE; - this.accounts.filter(a => a.requested_presence_type != presence).forEach(a => { + this.accounts.filter(a => a.requested_presence_type !== presence).forEach(a => { this._app.hold(); - a.request_presence_async(presence, 'offline', '', (a, res) => { + a.request_presence_async(presence, 'offline', '', (o, res) => { try { a.request_presence_finish(res); } catch (e) { } @@ -110,7 +109,7 @@ } _shouldMonitorAccount(account) { - return account.protocol_name == 'irc'; + return account.protocol_name === 'irc'; } _addAccount(account) { @@ -124,10 +123,15 @@ account.connect('notify::connection-status', () => { this.emit('account-status-changed', account); }); + account._reachableNotifyId = + account.connect('notify::reachable', () => { + this.emit('account-reachable-changed', account); + }); account._visibleNotifyId = account.connect('notify::visible', () => { - let signal = account.visible ? - 'account-shown' : 'account-hidden'; + this._updateAccountReachable(account); + let signal = account.visible + ? 'account-shown' : 'account-hidden'; this.emit(signal, account); this.emit('accounts-changed'); }); @@ -144,6 +148,9 @@ account.disconnect(account._statusNotifyId); delete account._statusNotifyId; + account.disconnect(account._reachableNotifyId); + delete account._reachableNotifyId; + account.disconnect(account._visibleNotifyId); delete account._visibleNotifyId; @@ -158,6 +165,46 @@ this.emit(signal, account); this.emit('accounts-changed'); } + + async _updateAccountReachable(account) { + if (!this._networkMonitor.state_valid) + return; + + let servers = account.getServers().map(s => { + return new Gio.NetworkAddress({ + hostname: s.address, + port: s.port, + }); + }); + + try { + let reachable = await this._canReachAny(servers); + account._setReachable(reachable); + } catch (e) { + account._setReachable(false); + } + } + + _canReachAny(servers) { + let reverse = promise => { + return new Promise((resolve, reject) => { + return Promise.resolve(promise).then(reject, resolve); + }); + }; + return reverse(Promise.all(servers.map(s => reverse(this._canReach(s))))); + } + + _canReach(addr) { + return new Promise((resolve, reject) => { + this._networkMonitor.can_reach_async(addr, null, (mon, res) => { + try { + resolve(this._networkMonitor.can_reach_finish(res)); + } catch (e) { + reject(e); + } + }); + }); + } }; Signals.addSignalMethods(AccountsMonitor.prototype); @@ -168,24 +215,59 @@ factory: this, dbus_daemon: this.dbus_daemon, bus_name: Tp.ACCOUNT_MANAGER_BUS_NAME, - object_path: objectPath + object_path: objectPath, }); } }); const PolariAccount = GObject.registerClass({ Properties: { - visible: GObject.ParamSpec.boolean('visible', - 'visible', - 'visible', - GObject.ParamFlags.READWRITE, - true) - } + predefined: GObject.ParamSpec.boolean( + 'predefined', 'predefined', 'predefined', + GObject.ParamFlags.READABLE, + false), + reachable: GObject.ParamSpec.boolean( + 'reachable', 'reachable', 'reachable', + GObject.ParamFlags.READABLE, + false), + visible: GObject.ParamSpec.boolean( + 'visible', 'visible', 'visible', + GObject.ParamFlags.READWRITE, + true), + settings: GObject.ParamSpec.object( + 'settings', 'settings', 'settings', + GObject.ParamFlags.READABLE, + Gio.Settings.$gtype), + }, }, class PolariAccount extends Tp.Account { _init(params) { this._visible = true; + this._reachable = undefined; + + this._networksManager = NetworksManager.getDefault(); super._init(params); + + this._settings = new Gio.Settings({ + schema_id: 'org.gnome.Polari.Account', + path: `/org/gnome/Polari/Accounts/${this.get_path_suffix()}/`, + }); + } + + get predefined() { + return this._networksManager.getAccountIsPredefined(this); + } + + get reachable() { + return this._reachable; + } + + _setReachable(reachable) { + if (this._reachable === reachable) + return; + + this._reachable = reachable; + this.notify('reachable'); } get visible() { @@ -193,10 +275,38 @@ } set visible(value) { - if (this._visible == value) + if (this._visible === value) return; this._visible = value; this.notify('visible'); } + + getConnectionParams() { + let params = this.dup_parameters_vardict().deep_unpack(); + for (let p in params) + params[p] = params[p].deep_unpack(); + + params['use-ssl'] = !!params['use-ssl']; + + let defaultPort = params['use-ssl'] ? 6697 : 6667; + params['port'] = params['port'] || defaultPort; + + return params; + } + + getServers() { + if (this.predefined) + return this._networksManager.getNetworkServers(this.service); + + let params = this.getConnectionParams(); + return [{ + address: params.server, + port: params.port, + }]; + } + + get settings() { + return this._settings; + } }); diff -Nru polari-3.32.0/src/application.js polari-3.34.0/src/application.js --- polari-3.32.0/src/application.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/application.js 2019-09-09 18:44:11.000000000 +0000 @@ -22,13 +22,13 @@ var Application = GObject.registerClass({ Signals: { 'prepare-shutdown': {}, - 'room-focus-changed': {} - } + 'room-focus-changed': {}, + }, }, class Application extends Gtk.Application { _init() { super._init({ application_id: 'org.gnome.Polari', - flags: Gio.ApplicationFlags.HANDLES_OPEN + flags: Gio.ApplicationFlags.HANDLES_OPEN, }); GLib.set_prgname('polari'); @@ -39,21 +39,30 @@ this._windowRemovedId = 0; this.add_main_option('start-client', 0, - GLib.OptionFlags.NONE, GLib.OptionArg.NONE, - _('Start Telepathy client'), null); + GLib.OptionFlags.NONE, GLib.OptionArg.NONE, + _('Start Telepathy client'), null); // Only included for --help output, the actual option is handled // from C before handling over control to JS this.add_main_option('debugger', 'd', - GLib.OptionFlags.NONE, GLib.OptionArg.NONE, - _('Start in debug mode'), null); + GLib.OptionFlags.NONE, GLib.OptionArg.NONE, + _('Start in debug mode'), null); this.add_main_option('test-instance', 0, - GLib.OptionFlags.NONE, GLib.OptionArg.NONE, - _('Allow running alongside another instance'), null); + GLib.OptionFlags.NONE, GLib.OptionArg.NONE, + _('Allow running alongside another instance'), null); this.add_main_option('version', 0, - GLib.OptionFlags.NONE, GLib.OptionArg.NONE, - _('Print version and exit'), null); + GLib.OptionFlags.NONE, GLib.OptionArg.NONE, + _('Print version and exit'), null); + this.add_main_option('quit', 0, + GLib.OptionFlags.NONE, GLib.OptionArg.NONE, + _('Quit'), null); this.connect('handle-local-options', (o, dict) => { - let v = dict.lookup_value('test-instance', null); + let v = dict.lookup_value('version', null); + if (v && v.get_boolean()) { + print(`Polari ${pkg.version}`); + return 0; + } + + v = dict.lookup_value('test-instance', null); if (v && v.get_boolean()) this._maybeMakeNonUnique(); @@ -69,9 +78,9 @@ return 0; } - v = dict.lookup_value('version', null); + v = dict.lookup_value('quit', null); if (v && v.get_boolean()) { - print(`Polari ${pkg.version}`); + this.activate_action('quit', null); return 0; } @@ -82,7 +91,7 @@ isRoomFocused(room) { return this.active_window && this.active_window['is-active'] && - this.active_window.active_room == room; + this.active_window.active_room === room; } // Small wrapper to mark user-requested nick changes @@ -99,11 +108,11 @@ let proxy = null; try { - proxy = Gio.DBusProxy.new_sync(conn, flags, null, - name, opath, iface, null); + proxy = Gio.DBusProxy.new_sync( + conn, flags, null, name, opath, iface, null); } catch (e) {} - return proxy != null && proxy.get_name_owner() != null; + return proxy !== null && proxy.get_name_owner() !== null; } _ensureService(conn, name, opath, iface, command) { @@ -152,20 +161,20 @@ GLib.setenv('IDLE_PERSIST', '1', false); this._ensureService(conn, - Tp.ACCOUNT_MANAGER_BUS_NAME, - Tp.ACCOUNT_MANAGER_OBJECT_PATH, - Tp.ACCOUNT_MANAGER_BUS_NAME, - '/app/libexec/mission-control-5'); + Tp.ACCOUNT_MANAGER_BUS_NAME, + Tp.ACCOUNT_MANAGER_OBJECT_PATH, + Tp.ACCOUNT_MANAGER_BUS_NAME, + '/app/libexec/mission-control-5'); this._ensureService(conn, - `${Tp.CM_BUS_NAME_BASE}idle`, - `${Tp.CM_OBJECT_PATH_BASE}idle`, - 'org.freedesktop.Telepathy.ConnectionManager', - '/app/libexec/telepathy-idle'); + `${Tp.CM_BUS_NAME_BASE}idle`, + `${Tp.CM_OBJECT_PATH_BASE}idle`, + 'org.freedesktop.Telepathy.ConnectionManager', + '/app/libexec/telepathy-idle'); this._ensureService(conn, - `${Tp.CLIENT_BUS_NAME_BASE}Logger`, - `${Tp.CLIENT_OBJECT_PATH_BASE}Logger`, - Tp.IFACE_CLIENT, - '/app/libexec/telepathy-logger'); + `${Tp.CLIENT_BUS_NAME_BASE}Logger`, + `${Tp.CLIENT_OBJECT_PATH_BASE}Logger`, + Tp.IFACE_CLIENT, + '/app/libexec/telepathy-logger'); return true; } @@ -181,96 +190,99 @@ let actionEntries = [{ name: 'show-join-dialog', activate: this._onShowJoinDialog.bind(this), - accels: ['n'] + accels: ['n'], }, { name: 'join-room', activate: this._onJoinRoom.bind(this), - parameter_type: GLib.VariantType.new('(ssu)') + parameter_type: GLib.VariantType.new('(ssu)'), }, { name: 'message-user', activate: this._onMessageUser.bind(this), - parameter_type: GLib.VariantType.new('(sssu)') + parameter_type: GLib.VariantType.new('(sssu)'), }, { name: 'leave-room', - parameter_type: GLib.VariantType.new('(ss)') + parameter_type: GLib.VariantType.new('(ss)'), }, { name: 'leave-current-room', activate: this._onLeaveCurrentRoom.bind(this), - create_hook: (a) => a.enabled = false, - accels: ['w'] + create_hook: a => (a.enabled = false), + accels: ['w'], + }, { + name: 'reconnect-room', + parameter_type: GLib.VariantType.new('s'), }, { name: 'authenticate-account', - parameter_type: GLib.VariantType.new('(os)') + parameter_type: GLib.VariantType.new('(os)'), }, { name: 'connect-account', activate: this._onConnectAccount.bind(this), - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'disconnect-account', activate: this._onConnectAccount.bind(this), - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'reconnect-account', activate: this._onConnectAccount.bind(this), - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'user-list', activate: this._onToggleAction.bind(this), create_hook: this._userListCreateHook.bind(this), state: GLib.Variant.new('b', false), - accels: ['F9', 'u'] + accels: ['F9', 'u'], }, { name: 'remove-connection', activate: this._onRemoveConnection.bind(this), - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'edit-connection', activate: this._onEditConnection.bind(this), - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'save-identify-password', - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'discard-identify-password', - parameter_type: GLib.VariantType.new('o') + parameter_type: GLib.VariantType.new('o'), }, { name: 'show-emoji-picker', - accels: ['e'] + accels: ['e'], }, { name: 'start-client', - activate: this._onStartClient.bind(this) + activate: this._onStartClient.bind(this), }, { name: 'help', activate: this._onShowHelp.bind(this), - accels: ['F1'] + accels: ['F1'], }, { name: 'about', - activate: this._onShowAbout.bind(this) + activate: this._onShowAbout.bind(this), }, { name: 'quit', activate: this._onQuit.bind(this), - accels: ['q'] + accels: ['q'], }, { name: 'next-room', - accels: ['Page_Down', 'Down'] + accels: ['Page_Down', 'Down'], }, { name: 'previous-room', - accels: ['Page_Up', 'Up'] + accels: ['Page_Up', 'Up'], }, { name: 'first-room', - accels: ['Home'] + accels: ['Home'], }, { name: 'last-room', - accels: ['End'] + accels: ['End'], }, { name: 'nth-room', - parameter_type: GLib.VariantType.new('i') + parameter_type: GLib.VariantType.new('i'), }, { name: 'next-pending-room', - accels: ['Down', 'Page_Down'] + accels: ['Down', 'Page_Down'], }, { name: 'previous-pending-room', - accels: ['Up', 'Page_Up'] + accels: ['Up', 'Page_Up'], }]; actionEntries.forEach(actionEntry => { let props = {}; @@ -285,9 +297,11 @@ action.connect('activate', actionEntry.activate); if (actionEntry.change_state) action.connect('change-state', actionEntry.change_state); - if (actionEntry.accels) - this.set_accels_for_action(`app.${actionEntry.name}`, - actionEntry.accels); + if (actionEntry.accels) { + this.set_accels_for_action( + `app.${actionEntry.name}`, + actionEntry.accels); + } this.add_action(action); }); @@ -311,9 +325,12 @@ let networkMonitor = Gio.NetworkMonitor.get_default(); networkMonitor.state_valid = !Utils.isFlatpakSandbox() && - GLib.getenv('GTK_USE_PORTAL') != '1'; + GLib.getenv('GTK_USE_PORTAL') !== '1'; - if (!networkMonitor.state_valid) { + if (networkMonitor.state_valid) { + if (!networkMonitor.network_metered) + this._serverRoomManager = ServerRoomManager.getDefault(); + } else { let id = networkMonitor.connect('network-changed', () => { networkMonitor.disconnect(id); networkMonitor.state_valid = true; @@ -321,13 +338,10 @@ if (!networkMonitor.network_metered) this._serverRoomManager = ServerRoomManager.getDefault(); }); - } else { - if (!networkMonitor.network_metered) - this._serverRoomManager = ServerRoomManager.getDefault(); } this._accountsMonitor.connect('account-status-changed', - this._onAccountStatusChanged.bind(this)); + this._onAccountStatusChanged.bind(this)); this._accountsMonitor.connect('account-added', (am, account) => { // Reset nickname at startup let accountName = this._getTrimmedAccountName(account); @@ -353,8 +367,8 @@ logError(e, 'Failed to add application style'); } Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), - provider, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + provider, + Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); } vfunc_activate() { @@ -378,9 +392,9 @@ this.emit('prepare-shutdown'); }); window.connect('notify::active-room', - () => this.emit('room-focus-changed')); + () => this.emit('room-focus-changed')); window.connect('notify::is-active', - () => this.emit('room-focus-changed')); + () => this.emit('room-focus-changed')); } } @@ -395,12 +409,12 @@ let action = this.lookup_action('leave-current-room'); window.connect('notify::active-room', () => { - action.enabled = window.active_room != null; + action.enabled = window.active_room !== null; }); - action.enabled = window.active_room != null; + action.enabled = window.active_room !== null; window.connect('active-room-state-changed', - this._updateUserListAction.bind(this)); + this._updateUserListAction.bind(this)); this._updateUserListAction(); } @@ -422,7 +436,7 @@ let params = a.dup_parameters_vardict().deep_unpack(); map[a.get_object_path()] = { server: params.server.deep_unpack(), - service: a.service + service: a.service, }; }); @@ -434,21 +448,24 @@ let matchedId = this._networksManager.findByServer(server); let matches = Object.keys(map).filter(a => { - return GLib.ascii_strcasecmp(map[a].server, server) == 0 || - map[a].service == matchedId; + return GLib.ascii_strcasecmp(map[a].server, server) === 0 || + map[a].service === matchedId; }); - if (matches.length) - joinAction.activate(new GLib.Variant('(ssu)', - [matches[0], `#${room}`, time])); - else + if (matches.length) { + joinAction.activate(new GLib.Variant('(ssu)', [ + matches[0], `#${room}`, time, + ])); + } else { this._createAccount(matchedId, server, port, a => { - if (a) + if (a) { joinAction.activate(new GLib.Variant('(ssu)', [ a.get_object_path(), - `#${room}`, time + `#${room}`, time, ])); + } }); + } }); } @@ -460,8 +477,8 @@ success = true; } catch (e) { let label = _('Failed to open link'); - let n = new AppNotifications.MessageNotification(label, - 'dialog-error-symbolic'); + let n = new AppNotifications.MessageNotification( + label, 'dialog-error-symbolic'); this.notificationQueue.addNotification(n); } @@ -479,7 +496,7 @@ 'account': new GLib.Variant('s', GLib.get_user_name()), 'server': new GLib.Variant('s', server), 'port': new GLib.Variant('u', port ? port : 6667), - 'use-ssl': new GLib.Variant('b', (port == 6697)), + 'use-ssl': new GLib.Variant('b', port === 6697), }; name = server; } @@ -488,7 +505,7 @@ account_manager: Tp.AccountManager.dup(), connection_manager: 'idle', protocol: 'irc', - display_name: name + display_name: name, }); req.set_enabled(true); @@ -523,7 +540,7 @@ return true; } - let path = `${GLib.get_user_cache_dir()}/polari/initial-setup-completed`; + let path = `${GLib.get_user_data_dir()}/polari/initial-setup-completed`; let f = Gio.File.new_for_path(path); try { this._touchFile(f); @@ -534,7 +551,7 @@ } let savedRooms = this._settings.get_value('saved-channel-list'); - return savedRooms.n_children() == 0; + return savedRooms.n_children() === 0; } get isTestInstance() { @@ -544,7 +561,7 @@ _updateUserListAction() { let room = this.active_window.active_room; let action = this.lookup_action('user-list'); - action.enabled = room && room.type == Tp.HandleType.ROOM && room.channel; + action.enabled = room && room.type === Tp.HandleType.ROOM && room.channel; } _userListCreateHook(action) { @@ -586,11 +603,11 @@ let tracker = this._userStatusMonitor.getUserTrackerForAccount(account); let contactsChangedId = tracker.connect(`contacts-changed::${baseNick}`, (t, nick) => { - if (nick != nominalNick) + if (nick !== nominalNick) return; let contact = tracker.lookupContact(nick); - if (contact != null && contact.alias == nick) + if (contact && contact.alias === nick) return; this._untrackNominalNick(account); @@ -615,27 +632,25 @@ if (data) return data; - let params = Connections.getAccountParams(account); - let server = params['server']; - let accountName = params['account']; - let port = params['port']; + let params = account.getConnectionParams(); + let { server, account: accountName, port } = params; debug(`Failed to connect to ${server} with username ${accountName}`); let accountServers = []; - if (this._networksManager.getAccountIsPredefined(account)) - accountServers = this._networksManager.getNetworkServers(account.service); + if (account.predefined) + accountServers = account.getServers(); data = { retry: 0, - alternateServers: accountServers.filter(s => s.address != server || - s.port != port) + alternateServers: accountServers.filter(s => s.address !== server || + s.port !== port), }; this._retryData.set(account.object_path, data); return data; } _getTrimmedAccountName(account) { - let params = Connections.getAccountParams(account); + let params = account.getConnectionParams(); return params.account.replace(/_+$/, ''); } @@ -682,7 +697,7 @@ let params = { server: new GLib.Variant('s', server.address), port: new GLib.Variant('u', server.port), - 'use-ssl': new GLib.Variant('b', server.ssl) + 'use-ssl': new GLib.Variant('b', server.ssl), }; this._retryWithParams(account, new GLib.Variant('a{sv}', params)); return true; @@ -691,22 +706,24 @@ _onAccountStatusChanged(mon, account) { let status = account.connection_status; - if (status == Tp.ConnectionStatus.CONNECTING) + if (status === Tp.ConnectionStatus.CONNECTING) return; - if (status == Tp.ConnectionStatus.DISCONNECTED) { + if (status === Tp.ConnectionStatus.DISCONNECTED) { let reason = account.connection_status_reason; - if (reason == Tp.ConnectionStatusReason.NAME_IN_USE) + if (reason === Tp.ConnectionStatusReason.NAME_IN_USE) { if (this._retryNickRequest(account)) return; + } - if (reason == Tp.ConnectionStatusReason.NETWORK_ERROR || - reason == Tp.ConnectionStatusReason.NONE_SPECIFIED) + if (reason === Tp.ConnectionStatusReason.NETWORK_ERROR || + reason === Tp.ConnectionStatusReason.NONE_SPECIFIED) { if (this._retryServerRequest(account)) return; + } - if (reason != Tp.ConnectionStatusReason.REQUESTED) { + if (reason !== Tp.ConnectionStatusReason.REQUESTED) { let strReason = Object.keys(Tp.ConnectionStatusReason)[reason]; let name = account.display_name; debug(`Account ${name} disconnected with reason ${strReason}`); @@ -746,7 +763,7 @@ let accountPath = parameter.deep_unpack(); let account = this._accountsMonitor.lookupAccount(accountPath); - account.set_enabled_async(false, (o, res) => { + account.set_enabled_async(false, (a, res) => { account.set_enabled_finish(res); account.visible = false; @@ -755,13 +772,13 @@ this.notificationQueue.addNotification(n); n.connect('closed', () => { - account.remove_async((a, res) => { - a.remove_finish(res); // TODO: Check for errors + account.remove_async((o, r) => { + a.remove_finish(r); // TODO: Check for errors }); }); n.connect('undo', () => { - account.set_enabled_async(true, (o, res) => { - account.set_enabled_finish(res); + account.set_enabled_async(true, (o, r) => { + account.set_enabled_finish(r); account.visible = true; }); }); @@ -786,7 +803,7 @@ let params = { name: 'Polari', account_manager: this._accountsMonitor.accountManager, - uniquify_name: this.isTestInstance + uniquify_name: this.isTestInstance, }; this._telepathyClient = new TelepathyClient(params); } @@ -817,13 +834,14 @@ 'Danny Mølgaard ', 'Justyn Temme ', 'unkemptArc99 ', - 'Oscar Shrimpton ' + 'Oscar Shrimpton ', + 'Daronion ', ], artists: [ 'Sam Hewitt ', 'Jakub Steiner ', 'Lapo Calamandrei ', - 'Tobias Bernard ' + 'Tobias Bernard ', ], translator_credits: _('translator-credits'), comments: _('An Internet Relay Chat Client for GNOME'), @@ -835,7 +853,7 @@ website: 'https://wiki.gnome.org/Apps/Polari', transient_for: this.active_window, - modal: true + modal: true, }; this._aboutDialog = new Gtk.AboutDialog(aboutParams); diff -Nru polari-3.32.0/src/appNotifications.js polari-3.34.0/src/appNotifications.js --- polari-3.32.0/src/appNotifications.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/appNotifications.js 2019-09-09 18:44:11.000000000 +0000 @@ -1,23 +1,21 @@ /* exported MessageNotification UndoNotification NotificationQueue - SimpleOutput GridOutput CommandOutputQueue */ + SimpleOutput GridOutput CommandOutputQueue MessageInfoBar */ const { GLib, GObject, Gtk, Pango } = imports.gi; const TIMEOUT = 7; const COMMAND_OUTPUT_REVEAL_TIME = 3; -const AppNotification = GObject.registerClass( -class AppNotification extends Gtk.Revealer { +const AppNotification = GObject.registerClass({ + GTypeFlags: GObject.TypeFlags.ABSTRACT, +}, class AppNotification extends Gtk.Revealer { _init() { - if (this.constructor.name == 'AppNotification') - throw new Error('Cannot instantiate abstract class AppNotification'); - super._init({ reveal_child: true, - transition_type: Gtk.RevealerTransitionType.SLIDE_DOWN + transition_type: Gtk.RevealerTransitionType.SLIDE_DOWN, }); this.connect('notify::child-revealed', - this._onChildRevealed.bind(this)); + this._onChildRevealed.bind(this)); } close() { @@ -43,9 +41,9 @@ this._box.add(new Gtk.Image({ icon_name: iconName })); this._box.add(new Gtk.Label({ - label: label, + label, hexpand: true, - ellipsize: Pango.EllipsizeMode.END + ellipsize: Pango.EllipsizeMode.END, })); let closeButton = new Gtk.Button({ relief: Gtk.ReliefStyle.NONE }); @@ -59,7 +57,7 @@ addButton(label, callback) { - let button = new Gtk.Button({ label: label, visible: true }); + let button = new Gtk.Button({ label, visible: true }); button.connect('clicked', () => { if (callback) callback(); @@ -73,8 +71,8 @@ var UndoNotification = GObject.registerClass({ Signals: { closed: {}, - undo: {} - } + undo: {}, + }, }, class UndoNotification extends MessageNotification { _init(label) { super._init(label); @@ -84,7 +82,7 @@ this.connect('destroy', () => this.close()); - this.addButton(_('Undo'), () => this._undo = true); + this.addButton(_('Undo'), () => (this._undo = true)); } close() { @@ -97,18 +95,17 @@ } }); -const CommandOutputNotification = GObject.registerClass( -class CommandOutputNotification extends AppNotification { +const CommandOutputNotification = GObject.registerClass({ + GTypeFlags: GObject.TypeFlags.ABSTRACT, +}, class CommandOutputNotification extends AppNotification { _init() { - if (this.constructor.name == 'CommandOutputNotification') - throw new Error('Cannot instantiate abstract class CommandOutputNotification'); - super._init(); this.transition_type = Gtk.RevealerTransitionType.SLIDE_UP; - GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, - COMMAND_OUTPUT_REVEAL_TIME, - this.close.bind(this)); + GLib.timeout_add_seconds( + GLib.PRIORITY_DEFAULT, + COMMAND_OUTPUT_REVEAL_TIME, + this.close.bind(this)); } }); @@ -121,7 +118,7 @@ label: text, vexpand: true, visible: true, - wrap: true + wrap: true, }); this.add(label); this.show_all(); @@ -140,7 +137,7 @@ let grid = new Gtk.Grid({ column_homogeneous: true, row_spacing: 6, - column_spacing: 18 + column_spacing: 18, }); grid.attach(new Gtk.Label({ label: header }), 0, 0, numCols, 1); @@ -167,13 +164,13 @@ valign: Gtk.Align.START, halign: Gtk.Align.CENTER, margin_start: 24, margin_end: 24, - no_show_all: true + no_show_all: true, }); this.get_style_context().add_class('app-notification'); this._grid = new Gtk.Grid({ orientation: Gtk.Orientation.VERTICAL, - row_spacing: 6, visible: true + row_spacing: 6, visible: true, }); this.add(this._grid); } @@ -186,7 +183,7 @@ } _onChildDestroy() { - if (this._grid.get_children().length == 0) + if (this._grid.get_children().length === 0) this.hide(); } }); @@ -200,3 +197,84 @@ this.get_style_context().add_class('irc-feedback'); } }); + +var MessageInfoBar = GObject.registerClass({ + Properties: { + 'title': GObject.ParamSpec.string( + 'title', 'title', 'title', + GObject.ParamFlags.READWRITE, + ''), + 'subtitle': GObject.ParamSpec.string( + 'subtitle', 'subtitle', 'subtitle', + GObject.ParamFlags.READWRITE, + ''), + }, +}, class MessageInfoBar extends Gtk.InfoBar { + _init(params) { + this._title = ''; + this._subtitle = ''; + + let defaultParams = { + show_close_button: true, + revealed: false, + valign: Gtk.Align.START, + }; + super._init(Object.assign(defaultParams, params)); + + let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL }); + this.get_content_area().add(box); + + this._titleLabel = new Gtk.Label({ + halign: Gtk.Align.START, + valign: Gtk.Align.CENTER, + label: `${this._title}`, + use_markup: true, + wrap: true, + }); + box.add(this._titleLabel); + + this._subtitleLabel = new Gtk.Label({ + halign: Gtk.Align.START, + valign: Gtk.Align.CENTER, + label: this._subtitle, + ellipsize: Pango.EllipsizeMode.END, + }); + box.add(this._subtitleLabel); + + box.show_all(); + } + + get title() { + return this._title; + } + + set title(title) { + if (this._title === title) + return; + + this._title = title; + this.notify('title'); + + if (this._titleLabel) + this._titleLabel.label = `${title}`; + } + + get subtitle() { + return this._subtitle; + } + + set subtitle(subtitle) { + if (this._subtitle === subtitle) + return; + + this._subtitle = subtitle; + this.notify('subtitle'); + + if (this._subtitleLabel) + this._subtitleLabel.label = subtitle; + } + + vfunc_response() { + this.revealed = false; + } +}); diff -Nru polari-3.32.0/src/chatView.js polari-3.34.0/src/chatView.js --- polari-3.32.0/src/chatView.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/chatView.js 2019-09-09 18:44:11.000000000 +0000 @@ -2,7 +2,7 @@ const { Gdk, Gio, GLib, GObject, Gtk, Pango, PangoCairo, Polari, - TelepathyGLib: Tp, TelepathyLogger: Tpl + TelepathyGLib: Tp, TelepathyLogger: Tpl, } = imports.gi; const { DropTargetIface } = imports.pasteManager; @@ -80,7 +80,7 @@ let iter = this.buffer.get_iter_at_mark(mark); let location = this.get_iter_location(iter); let [, y] = this.buffer_to_window_coords(Gtk.TextWindowType.TEXT, - location.x, location.y); + location.x, location.y); let tags = iter.get_tags(); let pixelsAbove = tags.reduce((prev, current) => { @@ -128,7 +128,7 @@ } _onMarkSet(buffer, iter, mark) { - if (mark.name == 'indicator-line') + if (mark.name === 'indicator-line') this.queue_draw(); } @@ -140,16 +140,15 @@ const ButtonTag = GObject.registerClass({ Properties: { - 'hover': GObject.ParamSpec.boolean('hover', - 'hover', - 'hover', - GObject.ParamFlags.READWRITE, - false) + 'hover': GObject.ParamSpec.boolean( + 'hover', 'hover', 'hover', + GObject.ParamFlags.READWRITE, + false), }, Signals: { 'clicked': {}, - 'popup-menu': {} - } + 'popup-menu': {}, + }, }, class ButtonTag extends Gtk.TextTag { _init(params) { this._hover = false; @@ -164,7 +163,7 @@ } set hover(hover) { - if (this._hover == hover) + if (this._hover === hover) return; this._hover = hover; @@ -188,7 +187,7 @@ this._gesture = new Gtk.GestureMultiPress({ widget, button: 0, - exclusive: true + exclusive: true, }); this._gesture.connect('pressed', (gesture, nPress) => { @@ -196,7 +195,7 @@ return; let button = this._gesture.get_current_button(); - if (button == Gdk.BUTTON_SECONDARY) + if (button === Gdk.BUTTON_SECONDARY) this.emit('popup-menu'); }); this._gesture.connect('released', (gesture, nPress) => { @@ -204,7 +203,7 @@ return; let button = this._gesture.get_current_button(); - if (button == Gdk.BUTTON_PRIMARY) + if (button === Gdk.BUTTON_PRIMARY) this.emit('clicked'); }); } @@ -212,18 +211,15 @@ const HoverFilterTag = GObject.registerClass({ Properties: { - 'filtered-tag': GObject.ParamSpec.object('filtered-tag', - 'filtered-tag', - 'filtered-tag', - GObject.ParamFlags.READWRITE | - GObject.ParamFlags.CONSTRUCT_ONLY, - Gtk.TextTag.$gtype), - 'hover-opacity': GObject.ParamSpec.double('hover-opacity', - 'hover-opacity', - 'hover-opacity', - GObject.ParamFlags.READWRITE, - 0.0, 1.0, 1.0) - } + 'filtered-tag': GObject.ParamSpec.object( + 'filtered-tag', 'filtered-tag', 'filtered-tag', + GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY, + Gtk.TextTag.$gtype), + 'hover-opacity': GObject.ParamSpec.double( + 'hover-opacity', 'hover-opacity', 'hover-opacity', + GObject.ParamFlags.READWRITE, + 0.0, 1.0, 1.0), + }, }, class HoverFilterTag extends ButtonTag { _init(params) { this._filteredTag = null; @@ -262,7 +258,7 @@ // eslint-disable-next-line camelcase set hover_opacity(value) { - if (this._hoverOpacity == value) + if (this._hoverOpacity === value) return; this._hoverOpacity = value; this.notify('hover-opacity'); @@ -281,12 +277,11 @@ Implements: [DropTargetIface], Properties: { 'can-drop': GObject.ParamSpec.override('can-drop', DropTargetIface), - 'max-nick-chars': GObject.ParamSpec.uint('max-nick-chars', - 'max-nick-chars', - 'max-nick-chars', - GObject.ParamFlags.READABLE, - 0, GLib.MAXUINT32, 0) - } + 'max-nick-chars': GObject.ParamSpec.uint( + 'max-nick-chars', 'max-nick-chars', 'max-nick-chars', + GObject.ParamFlags.READABLE, + 0, GLib.MAXUINT32, 0), + }, }, class ChatView extends Gtk.ScrolledWindow { _init(room) { super._init({ hscrollbar_policy: Gtk.PolicyType.NEVER, vexpand: true }); @@ -296,7 +291,7 @@ this._view = new TextView({ editable: false, cursor_visible: false, wrap_mode: Gtk.WrapMode.WORD_CHAR, - right_margin: MARGIN + right_margin: MARGIN, }); this._view.add_events(Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.ENTER_NOTIFY_MASK); @@ -312,26 +307,26 @@ this.connect('screen-changed', this._updateIndent.bind(this)); this.connect('scroll-event', this._onScroll.bind(this)); this.connect('edge-reached', (w, pos) => { - if (pos == Gtk.PositionType.BOTTOM) + if (pos === Gtk.PositionType.BOTTOM) this._autoscroll = true; }); this.vadjustment.connect('value-changed', - this._onValueChanged.bind(this)); + this._onValueChanged.bind(this)); this.vadjustment.connect('changed', this._updateScroll.bind(this)); this._view.connect('key-press-event', this._onKeyPress.bind(this)); this._view.connect('motion-notify-event', - this._handleButtonTagsHover.bind(this)); + this._handleButtonTagsHover.bind(this)); this._view.connect('enter-notify-event', - this._handleButtonTagsHover.bind(this)); + this._handleButtonTagsHover.bind(this)); this._view.connect('leave-notify-event', - this._handleButtonTagsHover.bind(this)); + this._handleButtonTagsHover.bind(this)); /* pick up DPI changes (e.g. via the 'text-scaling-factor' setting): the default handler calls pango_cairo_context_set_resolution(), so update the indent after that */ this._view.connect_after('style-updated', - this._updateIndent.bind(this)); + this._updateIndent.bind(this)); this._room = room; this._state = { lastNick: null, lastTimestamp: 0, lastStatusGroup: 0 }; @@ -353,56 +348,55 @@ }); this._updateMaxNickChars(this._room.account.nickname.length); - let isRoom = room.type == Tp.HandleType.ROOM; + let isRoom = room.type === Tp.HandleType.ROOM; let target = new Tpl.Entity({ type: isRoom ? Tpl.EntityType.ROOM : Tpl.EntityType.CONTACT, - identifier: room.channel_name + identifier: room.channel_name, }); let logManager = Tpl.LogManager.dup_singleton(); - this._logWalker = - logManager.walk_filtered_events(room.account, target, - Tpl.EventTypeMask.TEXT, null); + this._logWalker = logManager.walk_filtered_events( + room.account, target, + Tpl.EventTypeMask.TEXT, null); this._fetchingBacklog = true; this._logWalker.get_events_async(NUM_INITIAL_LOG_EVENTS, - this._onLogEventsReady.bind(this)); + this._onLogEventsReady.bind(this)); this._autoscroll = true; this._app = Gio.Application.get_default(); DropTargetIface.addTargets(this, this._view); - this._roomFocusChangedId = - this._app.connect('room-focus-changed', - this._checkMessages.bind(this)); + this._roomFocusChangedId = this._app.connect('room-focus-changed', + this._checkMessages.bind(this)); - this._hoverCursor = Gdk.Cursor.new_from_name(this.get_display(), - 'pointer'); + this._hoverCursor = Gdk.Cursor.new_from_name( + this.get_display(), 'pointer'); this._channelSignals = []; this._channel = null; let roomSignals = [{ name: 'notify::channel', - handler: this._onChannelChanged.bind(this) + handler: this._onChannelChanged.bind(this), }, { name: 'member-renamed', - handler: this._onMemberRenamed.bind(this) + handler: this._onMemberRenamed.bind(this), }, { name: 'member-disconnected', - handler: this._onMemberDisconnected.bind(this) + handler: this._onMemberDisconnected.bind(this), }, { name: 'member-kicked', - handler: this._onMemberKicked.bind(this) + handler: this._onMemberKicked.bind(this), }, { name: 'member-banned', - handler: this._onMemberBanned.bind(this) + handler: this._onMemberBanned.bind(this), }, { name: 'member-joined', - handler: this._onMemberJoined.bind(this) + handler: this._onMemberJoined.bind(this), }, { name: 'member-left', - handler: this._onMemberLeft.bind(this) + handler: this._onMemberLeft.bind(this), }]; this._roomSignals = []; roomSignals.forEach(signal => { @@ -410,9 +404,8 @@ }); this._onChannelChanged(); - this._nickStatusChangedId = - this._userTracker.watchRoomStatus(this._room, null, - this._onNickStatusChanged.bind(this)); + this._nickStatusChangedId = this._userTracker.watchRoomStatus( + this._room, null, this._onNickStatusChanged.bind(this)); } _createTags() { @@ -421,40 +414,40 @@ let tags = [{ name: 'nick', left_margin: MARGIN, - weight: Pango.Weight.BOLD + weight: Pango.Weight.BOLD, }, { name: 'gap', - pixels_above_lines: 10 + pixels_above_lines: 10, }, { name: 'message', - indent: 0 + indent: 0, }, { name: 'highlight', - weight: Pango.Weight.BOLD + weight: Pango.Weight.BOLD, }, { name: 'status', left_margin: MARGIN, indent: 0, - justification: Gtk.Justification.RIGHT + justification: Gtk.Justification.RIGHT, }, { name: 'timestamp', left_margin: MARGIN, indent: 0, - justification: Gtk.Justification.RIGHT + justification: Gtk.Justification.RIGHT, }, { name: 'action', left_margin: MARGIN, - style: Pango.Style.ITALIC + style: Pango.Style.ITALIC, }, { name: 'url', - underline: Pango.Underline.SINGLE + underline: Pango.Underline.SINGLE, }, { name: 'indicator-line', - pixels_above_lines: 24 + pixels_above_lines: 24, }, { name: 'loading', left_margin: MARGIN, - justification: Gtk.Justification.CENTER + justification: Gtk.Justification.CENTER, }]; tags.forEach(tagProps => tagTable.add(new Gtk.TextTag(tagProps))); } @@ -476,14 +469,15 @@ this._hoveredLinkColor = _getColor(context); context.restore(); - let desaturatedNickColor = (this._activeNickColor.red + - this._activeNickColor.blue + - this._activeNickColor.green) / 3; + let desaturatedNickColor = ( + this._activeNickColor.red + + this._activeNickColor.blue + + this._activeNickColor.green) / 3; this._inactiveNickColor = new Gdk.RGBA({ red: desaturatedNickColor, green: desaturatedNickColor, blue: desaturatedNickColor, - alpha: 1.0 + alpha: 1.0, }); if (this._activeNickColor.equal(this._inactiveNickColor)) this._inactiveNickColor.alpha = 0.5; @@ -498,18 +492,18 @@ let tagTable = buffer.get_tag_table(); let tags = [{ name: 'status', - foreground_rgba: dimColor + foreground_rgba: dimColor, }, { name: 'timestamp', - foreground_rgba: dimColor + foreground_rgba: dimColor, }, { name: 'url', - foreground_rgba: linkColor + foreground_rgba: linkColor, }]; tags.forEach(tagProps => { let tag = tagTable.lookup(tagProps.name); for (let prop in tagProps) { - if (prop == 'name') + if (prop === 'name') continue; tag[prop] = tagProps[prop]; } @@ -530,12 +524,10 @@ } _onDestroy() { - for (let i = 0; i < this._channelSignals.length; i++) - this._channel.disconnect(this._channelSignals[i]); + this._channelSignals.forEach(id => this._channel.disconnect(id)); this._channelSignals = []; - for (let i = 0; i < this._roomSignals.length; i++) - this._room.disconnect(this._roomSignals[i]); + this._roomSignals.forEach(id => this._room.disconnect(id)); this._roomSignals = []; if (this._roomFocusChangedId) @@ -546,9 +538,10 @@ GLib.source_remove(this._backlogTimeoutId); this._backlogTimeoutId = 0; - if (this._nickStatusChangedId) - this._userTracker.unwatchRoomStatus(this._room, - this._nickStatusChangedId); + if (this._nickStatusChangedId) { + this._userTracker.unwatchRoomStatus( + this._room, this._nickStatusChangedId); + } this._nickStatusChangedId = 0; this._userTracker = null; @@ -572,18 +565,18 @@ let [id, valid] = source.get_pending_message_id(); return { nick: source.sender.alias, - text: text, + text, timestamp: source.get_sent_timestamp() || source.get_received_timestamp(), messageType: source.get_message_type(), - pendingId: valid ? id : undefined + pendingId: valid ? id : undefined, }; } else if (source instanceof Tpl.Event) { return { nick: source.sender.alias, text: source.message, timestamp: source.timestamp, - messageType: source.get_message_type() + messageType: source.get_message_type(), }; } @@ -594,13 +587,13 @@ if (this._logWalker.is_end()) return this._pendingLogs.splice(0); - let nick = this._pendingLogs[0].nick; - let type = this._pendingLogs[0].messageType; + let { nick, messageType: type } = this._pendingLogs[0]; let maxNum = this._pendingLogs.length - this._initialPending.length; - for (let i = 0; i < maxNum; i++) - if (this._pendingLogs[i].nick != nick || - this._pendingLogs[i].messageType != type) + for (let i = 0; i < maxNum; i++) { + if (this._pendingLogs[i].nick !== nick || + this._pendingLogs[i].messageType !== type) return this._pendingLogs.splice(i); + } return []; } @@ -610,15 +603,16 @@ let numLogs = logs.length; let pos; - for (pos = numLogs - pending.length; pos < numLogs; pos++) - if (logs[pos].nick == firstPending.nick && - logs[pos].text == firstPending.text && - logs[pos].timestamp == firstPending.timestamp && - logs[pos].messageType == firstPending.messageType) + for (pos = numLogs - pending.length; pos < numLogs; pos++) { + if (logs[pos].nick === firstPending.nick && + logs[pos].text === firstPending.text && + logs[pos].timestamp === firstPending.timestamp && + logs[pos].messageType === firstPending.messageType) break; + } // Remove entries that are also in pending (if any), then // add the entries from pending - logs.splice.apply(logs, [pos, numLogs, ...pending]); + logs.splice(pos, numLogs, ...pending); } _insertPendingLogs() { @@ -641,7 +635,7 @@ for (let i = 0; i < pending.length; i++) { this._insertMessage(iter, pending[i], state); - if (i == indicatorIndex) + if (i === indicatorIndex) this._setIndicatorMark(iter); if (!iter.is_end() || i < pending.length - 1) @@ -656,7 +650,7 @@ // eslint-disable-next-line camelcase get can_drop() { - return this._channel != null; + return this._channel !== null; } _updateMaxNickChars(length) { @@ -671,8 +665,9 @@ _updateIndent() { let context = this._view.get_pango_context(); let metrics = context.get_metrics(null, null); - let charWidth = Math.max(metrics.get_approximate_char_width(), - metrics.get_approximate_digit_width()); + let charWidth = Math.max( + metrics.get_approximate_char_width(), + metrics.get_approximate_digit_width()); let pixelWidth = Pango.units_to_double(charWidth); let totalWidth = this._maxNickChars * pixelWidth + NICK_SPACING; @@ -688,9 +683,9 @@ if (!this._autoscroll) return; - if (this._pending.size == 0) { + if (this._pending.size === 0) { this._view.emit('move-cursor', - Gtk.MovementStep.BUFFER_ENDS, 1, false); + Gtk.MovementStep.BUFFER_ENDS, 1, false); } else { this._autoscroll = false; let mark = [...this._pending.values()].shift(); @@ -700,7 +695,7 @@ _onScroll(w, event) { let [hasDir, dir] = event.get_scroll_direction(); - if (hasDir && dir != Gdk.ScrollDirection.UP) + if (hasDir && dir !== Gdk.ScrollDirection.UP) return Gdk.EVENT_PROPAGATE; let [hasDeltas, dx_, dy] = event.get_scroll_deltas(); @@ -718,21 +713,19 @@ if (keyval === Gdk.KEY_Home || keyval === Gdk.KEY_KP_Home) { this._view.emit('move-cursor', - Gtk.MovementStep.BUFFER_ENDS, - -1, false); + Gtk.MovementStep.BUFFER_ENDS, -1, false); return Gdk.EVENT_STOP; } else if (keyval === Gdk.KEY_End || keyval === Gdk.KEY_KP_End) { this._view.emit('move-cursor', - Gtk.MovementStep.BUFFER_ENDS, - 1, false); + Gtk.MovementStep.BUFFER_ENDS, 1, false); return Gdk.EVENT_STOP; } - if (keyval != Gdk.KEY_Up && - keyval != Gdk.KEY_KP_Up && - keyval != Gdk.KEY_Page_Up && - keyval != Gdk.KEY_KP_Page_Up) + if (keyval !== Gdk.KEY_Up && + keyval !== Gdk.KEY_KP_Up && + keyval !== Gdk.KEY_Page_Up && + keyval !== Gdk.KEY_KP_Page_Up) return Gdk.EVENT_PROPAGATE; this._autoscroll = false; @@ -741,7 +734,7 @@ } _fetchBacklog() { - if (this.vadjustment.value != 0 || + if (this.vadjustment.value !== 0 || this._logWalker.is_end()) return Gdk.EVENT_PROPAGATE; @@ -752,7 +745,7 @@ this._showLoadingIndicator(); this._backlogTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500, () => { this._logWalker.get_events_async(NUM_LOG_EVENTS, - this._onLogEventsReady.bind(this)); + this._onLogEventsReady.bind(this)); this._backlogTimeoutId = 0; return GLib.SOURCE_REMOVE; }); @@ -809,7 +802,7 @@ _handleButtonTagsHover(view, event) { let [, eventX, eventY] = event.get_coords(); let [x, y] = view.window_to_buffer_coords(Gtk.TextWindowType.WIDGET, - eventX, eventY); + eventX, eventY); let [inside, iter] = view.get_iter_at_location(x, y); let hoveredButtonTags; @@ -818,7 +811,7 @@ else hoveredButtonTags = []; - hoveredButtonTags.forEach(t => t.hover = true); + hoveredButtonTags.forEach(t => (t.hover = true)); this._hoveredButtonTags.forEach(t => { t.hover = hoveredButtonTags.includes(t); }); @@ -826,7 +819,7 @@ let isHovering = hoveredButtonTags.length > 0; let wasHovering = this._hoveredButtonTags.length > 0; - if (isHovering != wasHovering) { + if (isHovering !== wasHovering) { let cursor = isHovering ? this._hoverCursor : null; this._view.get_window(Gtk.TextWindowType.TEXT).set_cursor(cursor); } @@ -839,11 +832,11 @@ _showLoadingIndicator() { let indicator = new Gtk.Image({ icon_name: 'content-loading-symbolic', - visible: true + visible: true, }); indicator.get_style_context().add_class('dim-label'); - let buffer = this._view.buffer; + let { buffer } = this._view; let iter = buffer.get_start_iter(); let anchor = buffer.create_child_anchor(iter); this._view.add_child_at_anchor(indicator, anchor); @@ -855,7 +848,7 @@ } _hideLoadingIndicator() { - let buffer = this._view.buffer; + let { buffer } = this._view; let iter = buffer.get_start_iter(); if (!iter.get_child_anchor()) @@ -869,7 +862,7 @@ let lineStart = iter.copy(); lineStart.set_line_offset(0); - let buffer = this._view.buffer; + let { buffer } = this._view; let mark = buffer.get_mark('indicator-line'); if (mark) { let [start, end] = this._getLineIters(buffer.get_iter_at_mark(mark)); @@ -893,7 +886,7 @@ this._needsIndicator = true; let pending = this._channel.dup_pending_messages(); - if (pending.length == 0) + if (pending.length === 0) return; let rect = this._view.get_visible_rect(); @@ -923,7 +916,7 @@ } _onChannelChanged() { - if (this._channel == this._room.channel) + if (this._channel === this._room.channel) return; // Pending IDs are invalidated by channel changes, so @@ -932,16 +925,15 @@ this._removePendingMark(id); if (this._channel) { - for (let i = 0; i < this._channelSignals.length; i++) - this._channel.disconnect(this._channelSignals[i]); + this._channelSignals.forEach(id => this._channel.disconnect(id)); this._channelSignals = []; } this._channel = this._room.channel; - let nick = this._channel ? - this._channel.connection.self_contact.alias : - this._room.account.nickname; + let nick = this._channel + ? this._channel.connection.self_contact.alias + : this._room.account.nickname; this._updateMaxNickChars(nick.length); if (!this._channel) @@ -951,13 +943,13 @@ let channelSignals = [{ name: 'message-received', - handler: this._onMessageReceived.bind(this) + handler: this._onMessageReceived.bind(this), }, { name: 'message-sent', - handler: this._onMessageSent.bind(this) + handler: this._onMessageSent.bind(this), }, { name: 'pending-message-removed', - handler: this._pendingMessageRemoved.bind(this) + handler: this._pendingMessageRemoved.bind(this), }]; channelSignals.forEach(signal => { this._channelSignals.push(this._channel.connect(signal.name, signal.handler)); @@ -981,17 +973,17 @@ _onMemberKicked(room, member, actor) { let [kicked, kicker] = [member.alias, actor ? actor.alias : null]; - let msg = kicker ? - _('%s has been kicked by %s').format(kicked, kicker) : - _('%s has been kicked').format(kicked); + let msg = kicker + ? _('%s has been kicked by %s').format(kicked, kicker) + : _('%s has been kicked').format(kicked); this._insertStatus(msg, kicked, 'left'); } _onMemberBanned(room, member, actor) { let [banned, banner] = [member.alias, actor ? actor.alias : null]; - let msg = banner ? - _('%s has been banned by %s').format(banned, banner) : - _('%s has been banned').format(banned); + let msg = banner + ? _('%s has been banned by %s').format(banned, banner) + : _('%s has been banned').format(banned); this._insertStatus(msg, banned, 'left'); } @@ -1045,7 +1037,7 @@ } _updateStatusHeader() { - let buffer = this._view.buffer; + let { buffer } = this._view; let headerMark = buffer.get_mark('idle-status-start'); let headerTagName = `status-compressed${this._state.lastStatusGroup}`; @@ -1062,8 +1054,9 @@ buffer.tag_table.add(headerArrowTag); buffer.tag_table.add(groupTag); - groupTag.bind_property('invisible', headerArrowTag, 'invisible', - GObject.BindingFlags.INVERT_BOOLEAN); + groupTag.bind_property('invisible', + headerArrowTag, 'invisible', + GObject.BindingFlags.INVERT_BOOLEAN); headerTag.connect('clicked', () => { groupTag.invisible = !groupTag.invisible; @@ -1074,7 +1067,8 @@ }); this._ensureNewLine(); - headerMark = buffer.create_mark('idle-status-start', buffer.get_end_iter(), true); + headerMark = buffer.create_mark('idle-status-start', + buffer.get_end_iter(), true); } else { headerTag = this._lookupTag(headerTagName); headerArrowTag = this._lookupTag(headerArrowTagName); @@ -1093,20 +1087,29 @@ } let stats = []; - if (this._statusCount.joined > 0) - stats.push(ngettext('%d user joined', - '%d users joined', this._statusCount.joined).format(this._statusCount.joined)); - if (this._statusCount.left > 0) - stats.push(ngettext('%d user left', - '%d users left', this._statusCount.left).format(this._statusCount.left)); + if (this._statusCount.joined > 0) { + stats.push( + ngettext( + '%d user joined', + '%d users joined', this._statusCount.joined) + .format(this._statusCount.joined)); + } + if (this._statusCount.left > 0) { + stats.push( + ngettext( + '%d user left', + '%d users left', this._statusCount.left) + .format(this._statusCount.left)); + } // TODO: How do we update the arrow direction when text direction change? let iter = buffer.get_iter_at_mark(headerMark); let tags = [this._lookupTag('status'), headerTag]; let headerText = stats.join(', '); let baseDir = Pango.find_base_dir(headerText, -1); this._insertWithTags(iter, headerText, tags); - this._insertWithTags(iter, baseDir == Pango.Direction.LTR ? '\u25B6' : '\u25C0', - tags.concat(headerArrowTag)); + this._insertWithTags(iter, + baseDir === Pango.Direction.LTR ? '\u25B6' : '\u25C0', + tags.concat(headerArrowTag)); this._insertWithTags(iter, '\u25BC', tags.concat(groupTag)); } @@ -1124,7 +1127,7 @@ let tags = [this._lookupTag('status')]; let groupTag = null; if (grouped) { - if (this._statusCount.hasOwnProperty(type)) { + if (this._statusCount.type !== undefined) { this._statusCount[type]++; this._statusCount.total++; } @@ -1146,22 +1149,24 @@ let now = GLib.DateTime.new_now_local(); // 00:01 actually, just to be safe - let todayMidnight = GLib.DateTime.new_local(now.get_year(), - now.get_month(), - now.get_day_of_month(), - 0, 1, 0); - let dateMidnight = GLib.DateTime.new_local(date.get_year(), - date.get_month(), - date.get_day_of_month(), - 0, 1, 0); + let todayMidnight = GLib.DateTime.new_local( + now.get_year(), + now.get_month(), + now.get_day_of_month(), + 0, 1, 0); + let dateMidnight = GLib.DateTime.new_local( + date.get_year(), + date.get_month(), + date.get_day_of_month(), + 0, 1, 0); let daysAgo = todayMidnight.difference(dateMidnight) / GLib.TIME_SPAN_DAY; let format; let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' }); let clockFormat = desktopSettings.get_string('clock-format'); - let hasAmPm = date.format('%p') != ''; + let hasAmPm = date.format('%p') !== ''; - if (clockFormat == '24h' || !hasAmPm) { + if (clockFormat === '24h' || !hasAmPm) { if (daysAgo < 1) { // today /* Translators: Time in 24h format */ format = _('%H\u2236%M'); @@ -1175,7 +1180,7 @@ string in 24h format. i.e. "Monday, 14:30" */ // xgettext:no-c-format format = _('%A, %H\u2236%M'); - } else if (date.get_year() == now.get_year()) { // this year + } else if (date.get_year() === now.get_year()) { // this year /* Translators: this is the month name and day number followed by a time string in 24h format. i.e. "May 25, 14:30" */ @@ -1189,6 +1194,7 @@ format = _('%B %d %Y, %H\u2236%M'); } } else { + // eslint-disable-next-line no-lonely-if if (daysAgo < 1) { // today /* Translators: Time in 12h format */ format = _('%l\u2236%M %p'); @@ -1202,7 +1208,7 @@ string in 12h format. i.e. "Monday, 2:30 pm" */ // xgettext:no-c-format format = _('%A, %l\u2236%M %p'); - } else if (date.get_year() == now.get_year()) { // this year + } else if (date.get_year() === now.get_year()) { // this year /* Translators: this is the month name and day number followed by a time string in 12h format. i.e. "May 25, 2:30 pm" */ @@ -1228,18 +1234,18 @@ let iter = this._view.buffer.get_end_iter(); this._insertMessage(iter, message, this._state); - if (message.pendingId == undefined /* outgoing */ || - (this._app.isRoomFocused(this._room) && this._pending.size == 0)) + if (message.pendingId === undefined /* outgoing */ || + this._app.isRoomFocused(this._room) && this._pending.size === 0) this._channel.ack_message_async(tpMessage, null); else if (this._needsIndicator) this._setIndicatorMark(this._view.buffer.get_end_iter()); } _insertMessage(iter, message, state) { - let isAction = message.messageType == Tp.ChannelTextMessageType.ACTION; - let needsGap = message.nick != state.lastNick || isAction; - let highlight = this._room.should_highlight_message(message.nick, - message.text); + let isAction = message.messageType === Tp.ChannelTextMessageType.ACTION; + let needsGap = message.nick !== state.lastNick || isAction; + let highlight = this._room.should_highlight_message( + message.nick, message.text); if (message.timestamp - TIMESTAMP_INTERVAL > state.lastTimestamp) { let tags = [this._lookupTag('timestamp')]; @@ -1247,8 +1253,7 @@ tags.push(this._lookupTag('gap')); needsGap = false; this._insertWithTags(iter, - `${this._formatTimestamp(message.timestamp)}\n`, - tags); + `${this._formatTimestamp(message.timestamp)}\n`, tags); } state.lastTimestamp = message.timestamp; @@ -1262,8 +1267,8 @@ if (needsGap) tags.push(this._lookupTag('gap')); } else { - if (state.lastNick != message.nick) { - let tags = [this._lookupTag('nick')]; + if (state.lastNick !== message.nick) { + let nickTags = [this._lookupTag('nick')]; let nickTagName = this._getNickTagName(message.nick); let nickTag = this._lookupTag(nickTagName); let buffer = this._view.get_buffer(); @@ -1277,40 +1282,40 @@ buffer.get_tag_table().add(nickTag); } - tags.push(nickTag); + nickTags.push(nickTag); let hoverTag = new HoverFilterTag({ filtered_tag: nickTag, - hover_opacity: 0.8 + hover_opacity: 0.8, }); buffer.get_tag_table().add(hoverTag); - tags.push(hoverTag); + nickTags.push(hoverTag); if (needsGap) - tags.push(this._lookupTag('gap')); - this._insertWithTags(iter, message.nick, tags); + nickTags.push(this._lookupTag('gap')); + this._insertWithTags(iter, message.nick, nickTags); buffer.insert(iter, '\t', -1); } state.lastNick = message.nick; tags.push(this._lookupTag('message')); } - if (highlight) + if (highlight && this._room.type !== Tp.HandleType.CONTACT) tags.push(this._lookupTag('highlight')); let params = this._room.account.dup_parameters_vardict().deep_unpack(); let server = params.server.deep_unpack(); - let text = message.text; + let { text } = message; // mask identify passwords in private chats - if (this._room.type == Tp.HandleType.CONTACT) { + if (this._room.type === Tp.HandleType.CONTACT) { let [isIdentify, command_, username_, password] = Polari.util_match_identify_message(text); if (isIdentify) - text = text.replace(password, (p) => p.replace(/./g, '●')); + text = text.replace(password, p => p.replace(/./g, '●')); } let channels = Utils.findChannels(text, server); @@ -1324,25 +1329,28 @@ this._view.get_buffer().tag_table.add(tag); let name = url.name ? url.name : url.url; - this._insertWithTags(iter, name, - tags.concat(this._lookupTag('url'), tag)); + this._insertWithTags(iter, + name, tags.concat(this._lookupTag('url'), tag)); pos = url.pos + name.length; } this._insertWithTags(iter, text.substr(pos), tags); - if (highlight && message.pendingId) - this._pending.set(message.pendingId, - this._view.buffer.create_mark(null, iter, true)); + if (highlight && message.pendingId) { + this._pending.set( + message.pendingId, + this._view.buffer.create_mark(null, iter, true)); + } } _onNickStatusChanged(baseNick, status) { - if (this._room.type == Tp.HandleType.CONTACT && - status == Tp.ConnectionPresenceType.OFFLINE && - this._room.channel) + if (this._room.type === Tp.HandleType.CONTACT && + status === Tp.ConnectionPresenceType.OFFLINE && + this._room.channel) { this._room.channel.ack_all_pending_messages_async(channel => { channel.close_async(null); }); + } let nickTagName = this._getNickTagName(baseNick); let nickTag = this._lookupTag(nickTagName); @@ -1354,7 +1362,7 @@ } _updateNickTag(tag, status) { - if (status == Tp.ConnectionPresenceType.AVAILABLE) + if (status === Tp.ConnectionPresenceType.AVAILABLE) tag.foreground_rgba = this._activeNickColor; else tag.foreground_rgba = this._inactiveNickColor; @@ -1365,7 +1373,7 @@ let event = Gtk.get_current_event(); let [, eventX, eventY] = event.get_coords(); let [x, y] = view.window_to_buffer_coords(Gtk.TextWindowType.WIDGET, - eventX, eventY); + eventX, eventY); let [inside_, start] = view.get_iter_at_location(x, y); let end = start.copy(); @@ -1386,12 +1394,13 @@ let actualNickName = view.get_buffer().get_slice(start, end, false); - if (!tag._popover) + if (!tag._popover) { tag._popover = new UserPopover({ relative_to: this._view, userTracker: this._userTracker, - room: this._room + room: this._room, }); + } tag._popover.nickname = actualNickName; @@ -1426,7 +1435,7 @@ let headerTag = this._lookupTag(`status-compressed${this._state.lastStatusGroup}`); if (headerTag && iter.ends_tag(headerTag)) tags.push(headerTag); - if (iter.get_line_offset() != 0) + if (iter.get_line_offset() !== 0) this._insertWithTags(iter, '\n', tags); } diff -Nru polari-3.32.0/src/connections.js polari-3.34.0/src/connections.js --- polari-3.32.0/src/connections.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/connections.js 2019-09-09 18:44:11.000000000 +0000 @@ -12,22 +12,9 @@ const ErrorHint = { NONE: 0, SERVER: 1, - NICK: 2 + NICK: 2, }; -function getAccountParams(account) { - let params = account.dup_parameters_vardict().deep_unpack(); - for (let p in params) - params[p] = params[p].deep_unpack(); - - params['use-ssl'] = !!params['use-ssl']; - - let defaultPort = params['use-ssl'] ? DEFAULT_SSL_PORT : DEFAULT_PORT; - params['port'] = params['port'] || defaultPort; - - return params; -} - const ConnectionRow = GObject.registerClass( class ConnectionRow extends Gtk.ListBoxRow { _init(params) { @@ -42,8 +29,9 @@ let name = NetworksManager.getDefault().getNetworkName(this._id); this.name = `ConnectionRow ${name}`; - this.bind_property('sensitive', this, 'activatable', - GObject.BindingFlags.SYNC_CREATE); + this.bind_property('sensitive', + this, 'activatable', + GObject.BindingFlags.SYNC_CREATE); let box = new Gtk.Box({ spacing: 12, margin: 12 }); this.add(box); @@ -54,15 +42,16 @@ label: _('Already added'), hexpand: true, no_show_all: true, - halign: Gtk.Align.END + halign: Gtk.Align.END, }); box.add(insensitiveDesc); this.show_all(); - this.bind_property('sensitive', insensitiveDesc, 'visible', - GObject.BindingFlags.SYNC_CREATE | - GObject.BindingFlags.INVERT_BOOLEAN); + this.bind_property('sensitive', + insensitiveDesc, 'visible', + GObject.BindingFlags.SYNC_CREATE | + GObject.BindingFlags.INVERT_BOOLEAN); } get id() { @@ -72,17 +61,15 @@ var ConnectionsList = GObject.registerClass({ Properties: { - 'favorites-only': GObject.ParamSpec.boolean('favorites-only', - 'favorites-only', - 'favorites-only', - GObject.ParamFlags.READWRITE | - GObject.ParamFlags.CONSTRUCT_ONLY, - false) + 'favorites-only': GObject.ParamSpec.boolean( + 'favorites-only', 'favorites-only', 'favorites-only', + GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY, + false), }, Signals: { 'account-created': { param_types: [Tp.Account.$gtype] }, - 'account-selected': {} - } + 'account-selected': {}, + }, }, class ConnectionsList extends Gtk.ScrolledWindow { _init(params) { this._favoritesOnly = false; @@ -106,16 +93,16 @@ halign: Gtk.Align.CENTER, valign: Gtk.Align.CENTER, orientation: Gtk.Orientation.VERTICAL, - visible: true + visible: true, }); placeholder.add(new Gtk.Image({ icon_name: 'edit-find-symbolic', pixel_size: 115, - visible: true + visible: true, })); placeholder.add(new Gtk.Label({ label: _('No results.'), - visible: true + visible: true, })); placeholder.get_style_context().add_class('dim-label'); @@ -133,9 +120,8 @@ }); this._networksManager = NetworksManager.getDefault(); - let networksChangedId = - this._networksManager.connect('changed', - this._networksChanged.bind(this)); + let networksChangedId = this._networksManager.connect('changed', + this._networksChanged.bind(this)); this._networksChanged(); this.connect('destroy', () => { @@ -152,7 +138,7 @@ // eslint-disable-next-line camelcase set favorites_only(favsOnly) { - if (this._favoritesOnly == favsOnly) + if (this._favoritesOnly === favsOnly) return; this._favoritesOnly = favsOnly; @@ -193,10 +179,8 @@ _networksChanged() { this._list.foreach(w => w.destroy()); - let accounts = this._accountsMonitor.accounts; - let usedNetworks = accounts.filter(a => { - return this._networksManager.getAccountIsPredefined(a); - }).map(a => a.service); + let { accounts } = this._accountsMonitor; + let usedNetworks = accounts.filter(a => a.predefined).map(a => a.service); this._networksManager.networks.forEach(network => { if (this._favoritesOnly && @@ -206,7 +190,7 @@ let sensitive = !usedNetworks.includes(network.id); this._rows.set(network.id, new ConnectionRow({ id: network.id, - sensitive: sensitive + sensitive, })); this._list.add(this._rows.get(network.id)); }); @@ -218,7 +202,7 @@ account_manager: Tp.AccountManager.dup(), connection_manager: 'idle', protocol: 'irc', - display_name: name + display_name: name, }); req.set_service(row.id); req.set_enabled(true); @@ -237,7 +221,7 @@ } _setAccountRowSensitive(account, sensitive) { - if (!this._networksManager.getAccountIsPredefined(account)) + if (!account.predefined) return; if (!this._rows.has(account.service)) @@ -250,7 +234,7 @@ let isFavorite1 = this._networksManager.getNetworkIsFavorite(row1.id); let isFavorite2 = this._networksManager.getNetworkIsFavorite(row2.id); - if (isFavorite1 != isFavorite2) + if (isFavorite1 !== isFavorite2) return isFavorite1 ? -1 : 1; let name1 = this._networksManager.getNetworkName(row1.id); @@ -267,23 +251,21 @@ 'serverEntry', 'nickEntry', 'realnameEntry', - 'sslCheckbox' + 'sslCheckbox', ], Properties: { - 'can-confirm': GObject.ParamSpec.boolean('can-confirm', - 'can-confirm', - 'can-confirm', - GObject.ParamFlags.READABLE, - false), - 'has-serivce': GObject.ParamSpec.boolean('has-service', - 'has-service', - 'has-service', - GObject.ParamFlags.READABLE, - false) + 'can-confirm': GObject.ParamSpec.boolean( + 'can-confirm', 'can-confirm', 'can-confirm', + GObject.ParamFlags.READABLE, + false), + 'has-serivce': GObject.ParamSpec.boolean( + 'has-service', 'has-service', 'has-service', + GObject.ParamFlags.READABLE, + false), }, Signals: { - 'account-created': { param_types: [Tp.Account.$gtype] } - } + 'account-created': { param_types: [Tp.Account.$gtype] }, + }, }, class ConnectionDetails extends Gtk.Grid { _init(params) { this._networksManager = NetworksManager.getDefault(); @@ -300,15 +282,15 @@ }); this._nameEntry.connect('changed', - this._onCanConfirmChanged.bind(this)); + this._onCanConfirmChanged.bind(this)); this._serverEntry.connect('changed', - this._onCanConfirmChanged.bind(this)); + this._onCanConfirmChanged.bind(this)); this._nickEntry.connect('changed', - this._onCanConfirmChanged.bind(this)); + this._onCanConfirmChanged.bind(this)); this._realnameEntry.connect('changed', - this._onCanConfirmChanged.bind(this)); + this._onCanConfirmChanged.bind(this)); this._sslCheckbox.connect('toggled', - this._onCanConfirmChanged.bind(this)); + this._onCanConfirmChanged.bind(this)); let realnameStore = new Gtk.ListStore(); realnameStore.set_column_types([GObject.TYPE_STRING]); @@ -318,7 +300,7 @@ model: realnameStore, text_column: 0, inline_completion: true, - popup_completion: false + popup_completion: false, }); this._realnameEntry.set_completion(completion); @@ -326,12 +308,12 @@ } setErrorHint(hint) { - if (hint == ErrorHint.SERVER) + if (hint === ErrorHint.SERVER) this._serverEntry.get_style_context().add_class('error'); else this._serverEntry.get_style_context().remove_class('error'); - if (hint == ErrorHint.NICK) + if (hint === ErrorHint.NICK) this._nickEntry.get_style_context().add_class('error'); else this._nickEntry.get_style_context().remove_class('error'); @@ -346,8 +328,8 @@ let params = { name: nameText.length ? nameText : server, - server: server, - account: this._nickEntry.text.trim() + server, + account: this._nickEntry.text.trim(), }; if (this._realnameEntry.text) @@ -386,19 +368,19 @@ } _populateFromAccount(account) { - let params = getAccountParams(account); + let params = account.getConnectionParams(); + let { port } = params; this._savedSSL = params['use-ssl']; let defaultPort = this._savedSSL ? DEFAULT_SSL_PORT : DEFAULT_PORT; this._savedServer = params.server || ''; - let port = params.port; this._savedNick = params.account || ''; this._savedRealname = params.fullname || ''; - if (port != defaultPort) + if (port !== defaultPort) this._savedServer += `:${port}`; - if (this._savedServer != account.display_name) + if (this._savedServer !== account.display_name) this._savedName = account.display_name; this._serverEntry.text = this._savedServer; @@ -410,11 +392,11 @@ // eslint-disable-next-line camelcase get can_confirm() { - let paramsChanged = this._nameEntry.text != this._savedName || - this._serverEntry.text != this._savedServer || - this._nickEntry.text != this._savedNick || - this._realnameEntry.text != this._savedRealname || - this._sslCheckbox.active != this._savedSSL; + let paramsChanged = this._nameEntry.text !== this._savedName || + this._serverEntry.text !== this._savedServer || + this._nickEntry.text !== this._savedNick || + this._realnameEntry.text !== this._savedRealname || + this._sslCheckbox.active !== this._savedSSL; return this._serverEntry.get_text_length() > 0 && this._nickEntry.get_text_length() > 0 && @@ -423,7 +405,7 @@ // eslint-disable-next-line camelcase get has_service() { - return this._networksManager.getAccountIsPredefined(this._account); + return this._account && this._account.predefined; } set account(account) { @@ -452,7 +434,7 @@ account_manager: accountManager, connection_manager: 'idle', protocol: 'irc', - display_name: params.name + display_name: params.name, }); req.set_enabled(true); @@ -488,7 +470,7 @@ let details = { account: GLib.Variant.new('s', params.account), username: GLib.Variant.new('s', params.account), - server: GLib.Variant.new('s', params.server) + server: GLib.Variant.new('s', params.server), }; if (params.port) @@ -498,7 +480,7 @@ if (params.use_ssl) details['use-ssl'] = GLib.Variant.new('b', params.use_ssl); - let removed = Object.keys(oldDetails).filter(p => !details.hasOwnProperty(p)); + let removed = Object.keys(oldDetails).filter(p => details[p] === undefined); return [details, removed]; } @@ -510,14 +492,14 @@ InternalChildren: [ 'details', 'errorBox', - 'errorLabel' - ] + 'errorLabel', + ], }, class ConnectionProperties extends Gtk.Dialog { _init(account) { /* Translators: %s is a connection name */ super._init({ title: _('“%s” Properties').format(account.display_name), - use_header_bar: 1 + use_header_bar: 1, }); this._details.account = account; @@ -533,13 +515,13 @@ }); this.connect('response', (w, response) => { - if (response == Gtk.ResponseType.OK) + if (response === Gtk.ResponseType.OK) this._details.save(); }); this.set_default_response(Gtk.ResponseType.OK); let id = account.connect('notify::connection-status', - this._syncErrorMessage.bind(this)); + this._syncErrorMessage.bind(this)); this._syncErrorMessage(account); this.connect('destroy', () => account.disconnect(id)); @@ -552,8 +534,8 @@ this._errorBox.hide(); this._details.setErrorHint(ErrorHint.NONE); - if (status != Tp.ConnectionStatus.DISCONNECTED || - reason == Tp.ConnectionStatusReason.REQUESTED) + if (status !== Tp.ConnectionStatus.DISCONNECTED || + reason === Tp.ConnectionStatusReason.REQUESTED) return; switch (account.connection_error) { diff -Nru polari-3.32.0/src/entryArea.js polari-3.34.0/src/entryArea.js --- polari-3.32.0/src/entryArea.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/entryArea.js 2019-09-09 18:44:11.000000000 +0000 @@ -1,7 +1,7 @@ /* exported ChatEntry EntryArea NickPopover */ const { - Gdk, GdkPixbuf, Gio, GLib, GObject, Gspell, Gtk, TelepathyGLib: Tp + Gdk, GdkPixbuf, Gio, GLib, GObject, Gspell, Gtk, TelepathyGLib: Tp, } = imports.gi; const ChatView = imports.chatView; @@ -21,8 +21,8 @@ Signals: { 'text-pasted': { param_types: [GObject.TYPE_STRING, GObject.TYPE_INT] }, 'image-pasted': { param_types: [GdkPixbuf.Pixbuf.$gtype] }, - 'file-pasted': { param_types: [Gio.File.$gtype] } - } + 'file-pasted': { param_types: [Gio.File.$gtype] }, + }, }, class ChatEntry extends Gtk.Entry { static get _checker() { if (!this.__checker) @@ -43,7 +43,7 @@ }); let buffer = Gspell.EntryBuffer.get_from_gtk_entry_buffer(this.buffer); - buffer.set_spell_checker (ChatEntry._checker); + buffer.set_spell_checker(ChatEntry._checker); let spellEntry = Gspell.Entry.get_from_gtk_entry(this); spellEntry.set_inline_spell_checking(true); @@ -73,22 +73,22 @@ } let clipboard = Gtk.Clipboard.get_default(this.get_display()); - clipboard.request_uris((clipboard, uris) => { + clipboard.request_uris((cb, uris) => { if (uris && uris.length) this.emit('file-pasted', Gio.File.new_for_uri(uris[0])); else clipboard.request_text(this._onTextReceived.bind(this)); }); - clipboard.request_image((clipboard, pixbuf) => { - if (pixbuf == null) + clipboard.request_image((cb, pixbuf) => { + if (!pixbuf) return; this.emit('image-pasted', pixbuf); }); } _onTextReceived(clipboard, text) { - if (text == null) + if (!text) return; text = text.trim(); @@ -108,18 +108,17 @@ Template: 'resource:///org/gnome/Polari/ui/nick-popover.ui', InternalChildren: [ 'nickEntry', - 'changeButton' + 'changeButton', ], Properties: { - nick: GObject.ParamSpec.string('nick', - 'nick', - 'nick', - GObject.ParamFlags.READWRITE, - '') + nick: GObject.ParamSpec.string( + 'nick', 'nick', 'nick', + GObject.ParamFlags.READWRITE, + ''), }, Signals: { - 'nick-changed': {} - } + 'nick-changed': {}, + }, }, class NickPopover extends Gtk.Popover { _init() { this._nick = ''; @@ -142,7 +141,7 @@ } set nick(nick) { - if (this._nick == nick) + if (this._nick === nick) return; if (!this._nickEntry['is-focus']) @@ -163,15 +162,14 @@ 'confirmLabel', 'uploadLabel', 'cancelButton', - 'pasteButton' + 'pasteButton', ], Properties: { - 'max-nick-chars': GObject.ParamSpec.uint('max-nick-chars', - 'max-nick-chars', - 'max-nick-chars', - GObject.ParamFlags.WRITABLE, - 0, GLib.MAXUINT32, 0) - } + 'max-nick-chars': GObject.ParamSpec.uint( + 'max-nick-chars', 'max-nick-chars', 'max-nick-chars', + GObject.ParamFlags.WRITABLE, + 0, GLib.MAXUINT32, 0), + }, }, class EntryArea extends Gtk.Stack { static get _nickPopover() { if (!this.__nickPopover) @@ -194,7 +192,7 @@ this.connect('realize', () => { this._toplevel = this.get_toplevel(); this._keyPressId = this._toplevel.connect('key-press-event', - this._onKeyPressEvent.bind(this)); + this._onKeyPressEvent.bind(this)); }); this.connect('map', () => { this._nickButton.popover = EntryArea._nickPopover; @@ -226,7 +224,7 @@ return; // avoid indefinite recursion state &= ~Gtk.StateFlags.BACKDROP; - w.set_state_flags (state, true); + w.set_state_flags(state, true); }); this._chatEntry.connect('text-pasted', (entry, text, nLines) => { @@ -267,9 +265,10 @@ this._pasteBox.connect_after('key-press-event', (w, event) => { let [, keyval] = event.get_keyval(); let [, mods] = event.get_state(); - if (keyval == Gdk.KEY_Escape || keyval == Gdk.KEY_BackSpace || - keyval == Gdk.KEY_Delete || - keyval == Gdk.KEY_z && mods & Gdk.ModifierType.CONTROL_MASK) { + if (keyval === Gdk.KEY_Escape || + keyval === Gdk.KEY_BackSpace || + keyval === Gdk.KEY_Delete || + keyval === Gdk.KEY_z && mods & Gdk.ModifierType.CONTROL_MASK) { this._cancelButton.clicked(); return Gdk.EVENT_STOP; } @@ -280,17 +279,15 @@ return; this._completion = new TabCompletion(this._chatEntry); - this._membersChangedId = - this._room.connect('members-changed', - this._updateCompletions.bind(this)); + this._membersChangedId = this._room.connect('members-changed', + this._updateCompletions.bind(this)); this._nicknameChangedId = this._room.account.connect('notify::nickname', () => { if (!this._room.channel) this._updateNick(); }); - this._channelChangedId = - this._room.connect('notify::channel', - this._onChannelChanged.bind(this)); + this._channelChangedId = this._room.connect('notify::channel', + this._onChannelChanged.bind(this)); this._onChannelChanged(this._room); this._chatEntry.connect('map', this._updateCompletions.bind(this)); @@ -329,18 +326,18 @@ return Gdk.EVENT_PROPAGATE; let [, keyval] = event.get_keyval(); - if (Gdk.keyval_to_unicode(keyval) == 0) + if (Gdk.keyval_to_unicode(keyval) === 0) return Gdk.EVENT_PROPAGATE; let [, state] = event.get_state(); - if (state != 0 && state != Gdk.ModifierType.SHIFT_MASK) + if (state !== 0 && state !== Gdk.ModifierType.SHIFT_MASK) return Gdk.EVENT_PROPAGATE; let activationKeys = [ Gdk.KEY_Tab, Gdk.KEY_Return, Gdk.KEY_ISO_Enter, - Gdk.KEY_space + Gdk.KEY_space, ]; if (activationKeys.includes(keyval)) return Gdk.EVENT_PROPAGATE; @@ -368,14 +365,14 @@ } pasteText(text, nLines) { - this._confirmLabel.label = - ngettext('Paste %s line of text to public paste service?', - 'Paste %s lines of text to public paste service?', - nLines).format(nLines); - this._uploadLabel.label = - ngettext('Uploading %s line of text to public paste service…', - 'Uploading %s lines of text to public paste service…', - nLines).format(nLines); + this._confirmLabel.label = ngettext( + 'Paste %s line of text to public paste service?', + 'Paste %s lines of text to public paste service?', nLines) + .format(nLines); + this._uploadLabel.label = ngettext( + 'Uploading %s line of text to public paste service…', + 'Uploading %s lines of text to public paste service…', nLines) + .format(nLines); this._setPasteContent(text); } @@ -386,10 +383,11 @@ } pasteFile(file) { - file.query_info_async(Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, - Gio.FileQueryInfoFlags.NONE, - GLib.PRIORITY_DEFAULT, null, - this._onFileInfoReady.bind(this)); + file.query_info_async( + Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, + Gio.FileQueryInfoFlags.NONE, + GLib.PRIORITY_DEFAULT, null, + this._onFileInfoReady.bind(this)); } _onFileInfoReady(file, res) { @@ -411,7 +409,7 @@ _onPasteClicked() { let title; let nick = this._room.channel.connection.self_contact.alias; - if (this._room.type == Tp.HandleType.ROOM) + if (this._room.type === Tp.HandleType.ROOM) /* translators: %s is a nick, #%s a channel */ title = _('%s in #%s').format(nick, this._room.display_name); else @@ -427,7 +425,7 @@ }); } catch (e) { let type = typeof this._pasteContent; - if (type == 'object') + if (type === 'object') type = this._pasteContent.toString(); debug(`Failed to paste content of type ${type}`); } @@ -446,12 +444,13 @@ _onChannelChanged(room) { this._updateCompletions(); - if (room.channel) + if (room.channel) { this._selfAliasChangedId = room.channel.connection.connect('notify::self-contact', - this._updateNick.bind(this)); - else + this._updateNick.bind(this)); + } else { this._selfAliasChangedId = 0; + } this._updateNick(); } @@ -480,10 +479,12 @@ } _updateNick() { - let channel = this._room ? this._room.channel : null; - let nick = channel ? - channel.connection.self_contact.alias : - this._room ? this._room.account.nickname : ''; + let { channel } = this._room || {}; + let nick = ''; + if (channel) + nick = channel.connection.self_contact.alias; + else if (this._room) + nick = this._room.account.nickname; this._nickLabel.width_chars = Math.max(nick.length, this._maxNickChars); this._nickLabel.label = nick; diff -Nru polari-3.32.0/src/initialSetup.js polari-3.34.0/src/initialSetup.js --- polari-3.32.0/src/initialSetup.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/initialSetup.js 2019-09-09 18:44:11.000000000 +0000 @@ -7,7 +7,7 @@ const SetupPage = { CONNECTION: 0, ROOM: 1, - OFFLINE: 2 + OFFLINE: 2, }; var InitialSetupWindow = GObject.registerClass({ @@ -17,8 +17,8 @@ 'connectionsList', 'nextButton', 'prevButton', - 'serverRoomList' - ] + 'serverRoomList', + ], }, class InitialSetupWindow extends Gtk.Window { _init(params) { @@ -35,10 +35,10 @@ this.connect('destroy', () => this._unsetAccount()); this._serverRoomList.connect('notify::can-join', - this._updateNextSensitivity.bind(this)); + this._updateNextSensitivity.bind(this)); this._nextButton.connect('clicked', () => { - if (this._page == SetupPage.CONNECTION) { + if (this._page === SetupPage.CONNECTION) { this._connectionsList.activateSelected(); } else { this._joinRooms(); @@ -48,7 +48,7 @@ }); this._prevButton.connect('clicked', () => { - if (this._page == SetupPage.ROOM) { + if (this._page === SetupPage.ROOM) { this._setPage(SetupPage.CONNECTION); this._unsetAccount(); } else { @@ -58,28 +58,29 @@ this._networkMonitor = Gio.NetworkMonitor.get_default(); this._networkMonitor.connect('notify::network-available', - this._onNetworkAvailableChanged.bind(this)); + this._onNetworkAvailableChanged.bind(this)); if (this._networkMonitor.state_valid) this._onNetworkAvailableChanged(); } _onNetworkAvailableChanged() { - if (this._networkMonitor.network_available) - this._setPage(this._currentAccount ? - SetupPage.ROOM : SetupPage.CONNECTION); - else + if (this._networkMonitor.network_available) { + this._setPage(this._currentAccount + ? SetupPage.ROOM : SetupPage.CONNECTION); + } else { this._setPage(SetupPage.OFFLINE); + } } _setPage(page) { - if (page == SetupPage.CONNECTION) + if (page === SetupPage.CONNECTION) this._contentStack.visible_child_name = 'connections'; - else if (page == SetupPage.ROOM) + else if (page === SetupPage.ROOM) this._contentStack.visible_child_name = 'rooms'; else this._contentStack.visible_child_name = 'offline-hint'; - let isLastPage = page == SetupPage.ROOM; + let isLastPage = page === SetupPage.ROOM; this._prevButton.label = isLastPage ? _('_Back') : _('_Cancel'); this._nextButton.label = isLastPage ? _('_Done') : _('_Next'); @@ -105,18 +106,18 @@ } get _page() { - if (this._contentStack.visible_child_name == 'rooms') + if (this._contentStack.visible_child_name === 'rooms') return SetupPage.ROOM; - else if (this._contentStack.visible_child_name == 'connections') + else if (this._contentStack.visible_child_name === 'connections') return SetupPage.CONNECTION; else return SetupPage.OFFLINE; } _updateNextSensitivity() { - let sensitive = this._page != SetupPage.OFFLINE; + let sensitive = this._page !== SetupPage.OFFLINE; - if (this._page == SetupPage.ROOM) + if (this._page === SetupPage.ROOM) sensitive = this._serverRoomList.can_join; this._nextButton.sensitive = sensitive; @@ -130,7 +131,7 @@ let accountPath = this._currentAccount.get_object_path(); let time = Utils.getTpEventTime(); toJoinRooms.forEach(room => { - if (room[0] != '#') + if (room[0] !== '#') room = `#${room}`; let app = Gio.Application.get_default(); diff -Nru polari-3.32.0/src/ircParser.js polari-3.34.0/src/ircParser.js --- polari-3.32.0/src/ircParser.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/ircParser.js 2019-09-09 18:44:11.000000000 +0000 @@ -7,8 +7,6 @@ const { RoomManager } = imports.roomManager; const Utils = imports.utils; -const N_ = s => s; - var knownCommands = { /* commands that would be nice to support: */ /* @@ -61,12 +59,12 @@ if (!this._room || !this._room.channel || !text.length) return true; - if (text[0] != '/') { + if (text[0] !== '/') { this._sendText(text); return true; } - let stripCommand = text => text.substr(text.indexOf(' ')).trimLeft(); + let stripCommand = txt => txt.substr(txt.indexOf(' ')).trimLeft(); let retval = true; @@ -79,15 +77,16 @@ if (command) command = command.toUpperCase(); - retval = (command == null || knownCommands[command] != null); + retval = !command || knownCommands[command]; - if (!retval) //error + if (!retval) { output = this._createFeedbackLabel(_(UNKNOWN_COMMAND_MESSAGE)); - else if (command) + } else if (command) { output = this._createFeedbackUsage(command); - else - output = this._createFeedbackGrid(_('Known commands:'), - Object.keys(knownCommands)); + } else { + output = this._createFeedbackGrid( + _('Known commands:'), Object.keys(knownCommands)); + } break; } case 'INVITE': { @@ -121,13 +120,13 @@ if (argv.length) log(`Excess arguments to JOIN command: ${argv}`); - let account = this._room.account; + let { account } = this._room; let app = Gio.Application.get_default(); let action = app.lookup_action('join-room'); action.activate(GLib.Variant.new('(ssu)', [ account.get_object_path(), room, - Utils.getTpEventTime() + Utils.getTpEventTime(), ])); break; } @@ -172,7 +171,7 @@ break; } - let account = this._room.account; + let { account } = this._room; let app = Gio.Application.get_default(); let action = app.lookup_action('message-user'); @@ -180,15 +179,15 @@ account.get_object_path(), nick, message, - Tp.USER_ACTION_TIME_NOT_USER_ACTION + Tp.USER_ACTION_TIME_NOT_USER_ACTION, ])); break; } case 'NAMES': { - let channel = this._room.channel; + let { channel } = this._room; let members = channel.group_dup_members_contacts().map(m => m.alias); - output = this._createFeedbackGrid(_('Users on %s:').format(channel.identifier), - members); + output = this._createFeedbackGrid( + _('Users on %s:').format(channel.identifier), members); break; } case 'NICK': { @@ -229,7 +228,7 @@ break; } - let account = this._room.account; + let { account } = this._room; let app = Gio.Application.get_default(); let action = app.lookup_action('message-user'); @@ -237,7 +236,7 @@ account.get_object_path(), nick, '', - Utils.getTpEventTime() + Utils.getTpEventTime(), ])); break; } diff -Nru polari-3.32.0/src/joinDialog.js polari-3.34.0/src/joinDialog.js --- polari-3.32.0/src/joinDialog.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/joinDialog.js 2019-09-09 18:44:11.000000000 +0000 @@ -7,7 +7,7 @@ const DialogPage = { MAIN: 0, - CONNECTION: 1 + CONNECTION: 1, }; var JoinDialog = GObject.registerClass({ @@ -24,8 +24,8 @@ 'serverRoomList', 'details', 'addButton', - 'customToggle' - ] + 'customToggle', + ], }, class JoinDialog extends Gtk.Dialog { _init(params) { params['use-header-bar'] = 1; @@ -36,17 +36,15 @@ this._backButton = new Gtk.Button({ image: icon, valign: Gtk.Align.CENTER, - focus_on_click: false + focus_on_click: false, }); this.get_header_bar().pack_start(this._backButton); let accelGroup = new Gtk.AccelGroup(); - this._connectionButton.add_accelerator('clicked', accelGroup, - Gdk.KEY_n, - Gdk.ModifierType.CONTROL_MASK, 0); - this._backButton.add_accelerator('clicked', accelGroup, - Gdk.KEY_Left, - Gdk.ModifierType.MOD1_MASK, 0); + this._connectionButton.add_accelerator('clicked', + accelGroup, Gdk.KEY_n, Gdk.ModifierType.CONTROL_MASK, 0); + this._backButton.add_accelerator('clicked', + accelGroup, Gdk.KEY_Left, Gdk.ModifierType.MOD1_MASK, 0); this.add_accel_group(accelGroup); this._setupMainPage(); @@ -70,7 +68,7 @@ }); this.connect('response', (w, response) => { - if (response == Gtk.ResponseType.OK) + if (response === Gtk.ResponseType.OK) this._joinRoom(); this.destroy(); }); @@ -98,11 +96,11 @@ }); this._connectionCombo.connect('changed', - this._onAccountChanged.bind(this)); + this._onAccountChanged.bind(this)); this._connectionCombo.sensitive = false; this._serverRoomList.connect('notify::can-join', - this._updateCanJoin.bind(this)); + this._updateCanJoin.bind(this)); } _setupConnectionPage() { @@ -118,9 +116,9 @@ }); this._connectionsList.connect('account-created', - this._onAccountCreated.bind(this)); + this._onAccountCreated.bind(this)); this._details.connect('account-created', - this._onAccountCreated.bind(this)); + this._onAccountCreated.bind(this)); this._customToggle.connect('notify::active', () => { let isCustom = this._customToggle.active; @@ -168,7 +166,7 @@ let toJoinRooms = this._serverRoomList.selectedRooms; toJoinRooms.forEach(room => { - if (room[0] != '#') + if (room[0] !== '#') room = `#${room}`; let app = Gio.Application.get_default(); @@ -176,7 +174,7 @@ action.activate(GLib.Variant.new('(ssu)', [ account.get_object_path(), room, - Utils.getTpEventTime() + Utils.getTpEventTime(), ])); }); } @@ -185,15 +183,14 @@ this._connectionCombo.remove_all(); let names = [...this._accounts.keys()].sort((a, b) => { - // TODO: figure out combo box sorting - return (a < b) ? -1 : ((a > b) ? 1 : 0); + return a.localeCompare(b); }); for (let i = 0; i < names.length; i++) this._connectionCombo.append(names[i], names[i]); this._connectionCombo.sensitive = names.length > 1; - let activeRoom = this.transient_for ? - this.transient_for.active_room : null; + let activeRoom = this.transient_for + ? this.transient_for.active_room : null; let activeIndex = 0; if (activeRoom) activeIndex = Math.max(names.indexOf(activeRoom.account.display_name), 0); @@ -203,24 +200,25 @@ _updateCanJoin() { let sensitive = false; - if (this._page == DialogPage.MAIN) + if (this._page === DialogPage.MAIN) { sensitive = this._connectionCombo.get_active() > -1 && this._serverRoomList.can_join; + } this._joinButton.sensitive = sensitive; - this.set_default_response(sensitive ? - Gtk.ResponseType.OK : Gtk.ResponseType.NONE); + this.set_default_response(sensitive + ? Gtk.ResponseType.OK : Gtk.ResponseType.NONE); } get _page() { - if (this._mainStack.visible_child_name == 'connection') + if (this._mainStack.visible_child_name === 'connection') return DialogPage.CONNECTION; else return DialogPage.MAIN; } _setPage(page) { - let isMain = page == DialogPage.MAIN; + let isMain = page === DialogPage.MAIN; let isAccountsEmpty = !this._hasAccounts; if (isMain) diff -Nru polari-3.32.0/src/lib/polari-client-factory.c polari-3.34.0/src/lib/polari-client-factory.c --- polari-3.32.0/src/lib/polari-client-factory.c 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/lib/polari-client-factory.c 2019-09-09 18:44:11.000000000 +0000 @@ -51,7 +51,7 @@ static TpAccount * polari_client_factory_create_account_impl (TpSimpleClientFactory *self, const char *object_path, - const GHashTable *immutable_props, + const GHashTable *immutable_props G_GNUC_UNUSED, GError **error) { return polari_client_factory_create_account (POLARI_CLIENT_FACTORY (self), @@ -68,6 +68,6 @@ } static void -polari_client_factory_init (PolariClientFactory *self) +polari_client_factory_init (PolariClientFactory *self G_GNUC_UNUSED) { } diff -Nru polari-3.32.0/src/lib/polari-client-factory.h polari-3.34.0/src/lib/polari-client-factory.h --- polari-3.32.0/src/lib/polari-client-factory.h 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/lib/polari-client-factory.h 2019-09-09 18:44:11.000000000 +0000 @@ -17,7 +17,11 @@ */ #pragma once +#include + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS #include +G_GNUC_END_IGNORE_DEPRECATIONS #include "polari-tp-autocleanup.h" G_BEGIN_DECLS diff -Nru polari-3.32.0/src/lib/polari-room.c polari-3.34.0/src/lib/polari-room.c --- polari-3.32.0/src/lib/polari-room.c 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/lib/polari-room.c 2019-09-09 18:44:11.000000000 +0000 @@ -42,6 +42,8 @@ char *self_nick; char *self_user; + char *channel_error; + TpHandleType type; guint self_contact_notify_id; @@ -59,6 +61,7 @@ PROP_ICON, PROP_ACCOUNT, PROP_TYPE, + PROP_CHANNEL_ERROR, PROP_CHANNEL_NAME, PROP_CHANNEL, PROP_DISPLAY_NAME, @@ -143,7 +146,7 @@ priv = room->priv; if (priv->type != TP_HANDLE_TYPE_ROOM) - return FALSE; + return TRUE; if (match_self_nick (room, sender)) return FALSE; @@ -151,6 +154,29 @@ return match_self_nick (room, message); } +const char * +polari_room_get_channel_error (PolariRoom *room) +{ + g_return_val_if_fail (POLARI_IS_ROOM (room), NULL); + + return room->priv->channel_error; +} + +void +polari_room_set_channel_error (PolariRoom *room, + const char *channel_error) +{ + g_return_if_fail (POLARI_IS_ROOM (room)); + + if (g_strcmp0 (room->priv->channel_error, channel_error) == 0) + return; + + g_free (room->priv->channel_error); + room->priv->channel_error = g_strdup (channel_error); + + g_object_notify_by_pspec (G_OBJECT (room), props[PROP_CHANNEL_ERROR]); +} + void polari_room_set_topic (PolariRoom *room, const char *topic) @@ -299,7 +325,7 @@ { PolariRoomPrivate *priv = room->priv; const char *nick; - char *basenick; + g_autofree char *basenick = NULL; g_clear_pointer (&priv->self_nick, g_free); @@ -340,8 +366,6 @@ priv->self_nick = g_strdup (priv->self_user); else priv->self_nick = g_strdup (basenick); - - g_free (basenick); } static void @@ -392,19 +416,19 @@ } static void -on_self_contact_notify (GObject *object, - GParamSpec *pspec, +on_self_contact_notify (GObject *object G_GNUC_UNUSED, + GParamSpec *pspec G_GNUC_UNUSED, gpointer user_data) { update_self_nick (POLARI_ROOM (user_data)); } static void -on_group_contacts_changed (TpChannel *channel, +on_group_contacts_changed (TpChannel *channel G_GNUC_UNUSED, GPtrArray *added, GPtrArray *removed, - GPtrArray *local_pending, - GPtrArray *remote_pending, + GPtrArray *local_pending G_GNUC_UNUSED, + GPtrArray *remote_pending G_GNUC_UNUSED, TpContact *actor, GHashTable *details, gpointer user_data) @@ -473,10 +497,10 @@ } static void -on_message_sent (TpTextChannel *channel, +on_message_sent (TpTextChannel *channel G_GNUC_UNUSED, TpSignalledMessage *message, - guint flags, - char *token, + guint flags G_GNUC_UNUSED, + char *token G_GNUC_UNUSED, gpointer user_data) { PolariRoom *room = user_data; @@ -498,10 +522,10 @@ } static void -on_channel_invalidated (TpProxy *channel, - guint domain, - int code, - char *message, +on_channel_invalidated (TpProxy *channel G_GNUC_UNUSED, + guint domain G_GNUC_UNUSED, + int code G_GNUC_UNUSED, + char *message G_GNUC_UNUSED, gpointer user_data) { polari_room_set_channel (POLARI_ROOM (user_data), NULL); @@ -531,11 +555,11 @@ } static void -subject_get_all (TpProxy *proxy, - GHashTable *properties, +subject_get_all (TpProxy *proxy G_GNUC_UNUSED, + GHashTable *properties G_GNUC_UNUSED, const GError *error, gpointer user_data, - GObject *object) + GObject *object G_GNUC_UNUSED) { if (error) return; @@ -544,12 +568,12 @@ } static void -properties_changed (TpProxy *proxy, +properties_changed (TpProxy *proxy G_GNUC_UNUSED, const char *iface_name, GHashTable *changed, - const char **invalidated, + const char **invalidated G_GNUC_UNUSED, gpointer data, - GObject *weak_ref) + GObject *weak_ref G_GNUC_UNUSED) { if (strcmp (iface_name, TP_IFACE_CHANNEL_INTERFACE_SUBJECT) != 0) return; @@ -559,12 +583,13 @@ static void on_contact_info_ready (GObject *source, - GAsyncResult *res, + GAsyncResult *res G_GNUC_UNUSED, gpointer data) { PolariRoom *room = data; PolariRoomPrivate *priv = room->priv; - GList *infos, *l; + g_autolist (TpContactInfoField) infos = NULL; + GList *l; infos = tp_contact_dup_contact_info (TP_CONTACT (source)); for (l = infos; l; l = l->next) @@ -583,7 +608,6 @@ } break; } - tp_contact_info_list_free (infos); } static void @@ -771,6 +795,9 @@ case PROP_TYPE: g_value_set_uint (value, priv->type); break; + case PROP_CHANNEL_ERROR: + g_value_set_string (value, priv->channel_error); + break; case PROP_CHANNEL_NAME: g_value_set_string (value, priv->channel_name); break; @@ -809,6 +836,9 @@ case PROP_TYPE: polari_room_set_type (room, g_value_get_uint (value)); break; + case PROP_CHANNEL_ERROR: + polari_room_set_channel_error (room, g_value_get_string (value)); + break; case PROP_CHANNEL_NAME: polari_room_set_channel_name (room, g_value_get_string (value)); break; @@ -897,6 +927,13 @@ TP_HANDLE_TYPE_ROOM, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + props[PROP_CHANNEL_ERROR] = + g_param_spec_string ("channel-error", + "Channel error", + "Channel error", + NULL, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); + props[PROP_CHANNEL_NAME] = g_param_spec_string ("channel-name", "Channel name", diff -Nru polari-3.32.0/src/lib/polari-room.h polari-3.34.0/src/lib/polari-room.h --- polari-3.32.0/src/lib/polari-room.h 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/lib/polari-room.h 2019-09-09 18:44:11.000000000 +0000 @@ -20,13 +20,19 @@ #include +G_GNUC_BEGIN_IGNORE_DEPRECATIONS #include +G_GNUC_END_IGNORE_DEPRECATIONS G_BEGIN_DECLS #define POLARI_TYPE_ROOM (polari_room_get_type()) G_DECLARE_FINAL_TYPE (PolariRoom, polari_room, POLARI, ROOM, GObject) +const char *polari_room_get_channel_error (PolariRoom *room); +void polari_room_set_channel_error (PolariRoom *room, + const char *channel_error); + gboolean polari_room_should_highlight_message (PolariRoom *room, const char *sender, const char *message); diff -Nru polari-3.32.0/src/lib/polari-tp-autocleanup.h polari-3.34.0/src/lib/polari-tp-autocleanup.h --- polari-3.32.0/src/lib/polari-tp-autocleanup.h 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/lib/polari-tp-autocleanup.h 2019-09-09 18:44:11.000000000 +0000 @@ -24,5 +24,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (TpAutomaticClientFactory, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (TpMessage, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (TpContactInfoField, tp_contact_info_field_free) G_END_DECLS diff -Nru polari-3.32.0/src/main.js polari-3.34.0/src/main.js --- polari-3.32.0/src/main.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/main.js 2019-09-09 18:44:11.000000000 +0000 @@ -12,7 +12,7 @@ 'Secret': '1', 'Soup': '2.4', 'TelepathyGLib': '0.12', - 'TelepathyLogger': '0.2' + 'TelepathyLogger': '0.2', }); pkg.requireSymbol('Gio', '2.0', 'Application.send_notification'); pkg.requireSymbol('GLib', '2.0', 'log_variant'); @@ -27,8 +27,8 @@ function _makeLogFunction(level) { return message => { - let stack = (new Error()).stack; - let caller = stack.split('\n')[1]; + let { stack } = new Error(); + let [, caller] = stack.split('\n'); // Map from resource- to source location caller = caller.replace('resource:///org/gnome/Polari/js', 'src'); @@ -40,7 +40,7 @@ 'SYSLOG_IDENTIFIER': 'org.gnome.Polari', 'CODE_FILE': file, 'CODE_FUNC': func, - 'CODE_LINE': line + 'CODE_LINE': line, }); }; } diff -Nru polari-3.32.0/src/mainWindow.js polari-3.34.0/src/mainWindow.js --- polari-3.32.0/src/mainWindow.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/mainWindow.js 2019-09-09 18:44:11.000000000 +0000 @@ -13,17 +13,15 @@ var FixedSizeFrame = GObject.registerClass({ Properties: { - height: GObject.ParamSpec.int('height', - 'height', - 'height', - GObject.ParamFlags.READWRITE, - -1, GLib.MAXINT32, -1), - width: GObject.ParamSpec.int('width', - 'width', - 'width', - GObject.ParamFlags.READWRITE, - -1, GLib.MAXINT32, -1) - } + height: GObject.ParamSpec.int( + 'height', 'height', 'height', + GObject.ParamFlags.READWRITE, + -1, GLib.MAXINT32, -1), + width: GObject.ParamSpec.int( + 'width', 'width', 'width', + GObject.ParamFlags.READWRITE, + -1, GLib.MAXINT32, -1), + }, }, class FixedSizeFrame extends Gtk.Frame { _init(params) { this._height = -1; @@ -44,7 +42,7 @@ } set height(height) { - if (height == this._height) + if (height === this._height) return; this._height = height; this.notify('height'); @@ -57,7 +55,7 @@ } set width(width) { - if (width == this._width) + if (width === this._width) return; this._width = width; @@ -86,29 +84,31 @@ 'showUserListButton', 'userListPopover', 'roomListRevealer', + 'offlineInfoBar', 'overlay', 'roomStack', ], Properties: { - subtitle: GObject.ParamSpec.string('subtitle', - 'subtitle', - 'subtitle', - GObject.ParamFlags.READABLE, - ''), - 'subtitle-visible': GObject.ParamSpec.boolean('subtitle-visible', - 'subtitle-visible', - 'subtitle-visible', - GObject.ParamFlags.READABLE, - false), - 'active-room': GObject.ParamSpec.object('active-room', - 'active-room', - 'active-room', - GObject.ParamFlags.READWRITE, - Polari.Room.$gtype) + subtitle: GObject.ParamSpec.string( + 'subtitle', 'subtitle', 'subtitle', + GObject.ParamFlags.READABLE, + ''), + 'subtitle-visible': GObject.ParamSpec.boolean( + 'subtitle-visible', 'subtitle-visible', 'subtitle-visible', + GObject.ParamFlags.READABLE, + false), + 'active-room': GObject.ParamSpec.object( + 'active-room', 'active-room', 'active-room', + GObject.ParamFlags.READWRITE, + Polari.Room.$gtype), + 'view-height': GObject.ParamSpec.uint( + 'view-height', 'view-height', 'view-height', + GObject.ParamFlags.READABLE, + 0, GLib.MAXUINT32, 0), }, Signals: { - 'active-room-state-changed': {} - } + 'active-room-state-changed': {}, + }, }, class MainWindow extends Gtk.ApplicationWindow { _init(params) { this._subtitle = ''; @@ -140,16 +140,20 @@ if (GLib.get_application_name().toLowerCase().includes('snapshot')) this.get_style_context().add_class('snapshot'); + this._roomStack.connect('size-allocate', () => { + this.notify('view-height'); + }); + // command output notifications should not pop up over // the input area, but appear to emerge from it, so // set up an appropriate margin this._roomStack.bind_property('entry-area-height', - app.commandOutputQueue, 'margin-bottom', - GObject.BindingFlags.SYNC_CREATE); + app.commandOutputQueue, 'margin-bottom', + GObject.BindingFlags.SYNC_CREATE); // Make sure user-list button is at least as wide as icon buttons this._joinButton.connect('size-allocate', (w, rect) => { - let width = rect.width; + let { width } = rect; GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => { this._showUserListButton.width_request = width; return GLib.SOURCE_REMOVE; @@ -157,17 +161,19 @@ }); this._accountsMonitor = AccountsMonitor.getDefault(); - this._accountsMonitor.connect('accounts-changed', - this._onAccountsChanged.bind(this)); + this._accountsChangedId = this._accountsMonitor.connect( + 'accounts-changed', this._onAccountsChanged.bind(this)); this._onAccountsChanged(this._accountsMonitor); + this._accountReachableId = this._accountsMonitor.connect( + 'account-reachable-changed', this._onAccountsReachableChanged.bind(this)); + this._onAccountsReachableChanged(); + this._roomManager = RoomManager.getDefault(); - this._roomsLoadedId = - this._roomManager.connect('rooms-loaded', - this._onRoomsLoaded.bind(this)); - this._roomRemovedId = - this._roomManager.connect('room-removed', - this._onRoomRemoved.bind(this)); + this._roomsLoadedId = this._roomManager.connect('rooms-loaded', + this._onRoomsLoaded.bind(this)); + this._roomRemovedId = this._roomManager.connect('room-removed', + this._onRoomRemoved.bind(this)); this._onRoomsLoaded(); this._updateUserListLabel(); @@ -175,7 +181,10 @@ this._userListAction = app.lookup_action('user-list'); app.connect('action-state-changed::user-list', (group, name, value) => { - this._userListPopover.visible = value.get_boolean(); + if (value.get_boolean()) + this._userListPopover.popup(); + else + this._userListPopover.popdown(); }); this._userListPopover.connect('notify::visible', () => { if (!this._userListPopover.visible) @@ -183,7 +192,7 @@ }); this._gtkSettings.connect('notify::gtk-decoration-layout', - this._updateDecorations.bind(this)); + this._updateDecorations.bind(this)); this._updateDecorations(); this.connect('window-state-event', this._onWindowStateEvent.bind(this)); @@ -194,8 +203,8 @@ }); let size = this._settings.get_value('window-size').deep_unpack(); - if (size.length == 2) - this.set_default_size.apply(this, size); + if (size.length === 2) + this.set_default_size(...size); if (this._settings.get_boolean('window-maximized')) this.maximize(); @@ -210,11 +219,22 @@ return this._subtitle.length > 0; } + // eslint-disable-next-line camelcase + get view_height() { + return this._roomStack.get_allocated_height() - this._roomStack.entry_area_height; + } + + _onAccountsReachableChanged() { + let accounts = this._accountsMonitor.visibleAccounts; + this._offlineInfoBar.revealed = + accounts.length > 0 && !accounts.some(a => a.reachable); + } + _onWindowStateEvent(widget, event) { let state = event.get_window().get_state(); - this._isFullscreen = (state & Gdk.WindowState.FULLSCREEN) != 0; - this._isMaximized = (state & Gdk.WindowState.MAXIMIZED) != 0; + this._isFullscreen = (state & Gdk.WindowState.FULLSCREEN) !== 0; + this._isMaximized = (state & Gdk.WindowState.MAXIMIZED) !== 0; } _onSizeAllocate() { @@ -223,16 +243,17 @@ } _onDestroy() { - this._settings.set_boolean ('window-maximized', this._isMaximized); + this._settings.set_boolean('window-maximized', this._isMaximized); this._settings.set_value('window-size', - GLib.Variant.new('ai', this._currentSize)); + new GLib.Variant('ai', this._currentSize)); let serializedChannel = null; - if (this._lastActiveRoom) + if (this._lastActiveRoom) { serializedChannel = new GLib.Variant('a{sv}', { account: new GLib.Variant('s', this._lastActiveRoom.account.object_path), - channel: new GLib.Variant('s', this._lastActiveRoom.channel_name) + channel: new GLib.Variant('s', this._lastActiveRoom.channel_name), }); + } if (serializedChannel) this._settings.set_value('last-selected-channel', serializedChannel); @@ -241,6 +262,9 @@ this.active_room = null; + this._accountsMonitor.disconnect(this._accountsChangedId); + this._accountsMonitor.disconnect(this._accountReachableId); + this._roomManager.disconnect(this._roomsLoadedId); this._roomManager.disconnect(this._roomRemovedId); @@ -254,7 +278,7 @@ } _filterFallbackAppMenu(layoutStr) { - return layoutStr.split(',').filter(s => s != 'menu').join(','); + return layoutStr.split(',').filter(s => s !== 'menu').join(','); } _updateDecorations() { @@ -280,7 +304,7 @@ // eslint-disable-next-line camelcase set active_room(room) { - if (room == this._room) + if (room === this._room) return; if (this._room) { @@ -294,7 +318,7 @@ this._membersChangedId = 0; this._channelChangedId = 0; - if (room && room.type == Tp.HandleType.ROOM) + if (room && room.type === Tp.HandleType.ROOM) this._lastActiveRoom = room; this._room = room; @@ -308,13 +332,13 @@ this._displayNameChangedId = this._room.connect('notify::display-name', - this._updateTitlebar.bind(this)); + this._updateTitlebar.bind(this)); this._topicChangedId = this._room.connect('notify::topic', - this._updateTitlebar.bind(this)); + this._updateTitlebar.bind(this)); this._membersChangedId = this._room.connect('members-changed', - this._updateUserListLabel.bind(this)); + this._updateUserListLabel.bind(this)); this._channelChangedId = this._room.connect('notify::channel', () => { this._updateUserListLabel(); @@ -330,6 +354,9 @@ for (let prop in selectedRoom) selectedRoom[prop] = selectedRoom[prop].deep_unpack(); + if (!selectedRoom.account) + return; + let roomId = null; let account = this._accountsMonitor.lookupAccount(selectedRoom.account); let channelName = selectedRoom.channel; @@ -341,7 +368,7 @@ } _onRoomRemoved(mgr, room) { - if (room == this._lastActiveRoom) + if (room === this._lastActiveRoom) this._lastActiveRoom = null; } @@ -358,8 +385,9 @@ this._room.channel.has_interface(Tp.IFACE_CHANNEL_INTERFACE_GROUP)) numMembers = this._room.channel.group_dup_members_contacts().length; - let accessibleName = ngettext('%d user', - '%d users', numMembers).format(numMembers); + let accessibleName = ngettext( + '%d user', + '%d users', numMembers).format(numMembers); this._showUserListButton.get_accessible().set_name(accessibleName); this._showUserListButton.label = `${numMembers}`; } @@ -381,7 +409,7 @@ subtitle += GLib.markup_escape_text(this._room.topic.substr(pos), -1); } - if (this._subtitle != subtitle) { + if (this._subtitle !== subtitle) { this._subtitle = subtitle; this.notify('subtitle'); this.notify('subtitle-visible'); diff -Nru polari-3.32.0/src/networksManager.js polari-3.34.0/src/networksManager.js --- polari-3.32.0/src/networksManager.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/networksManager.js 2019-09-09 18:44:11.000000000 +0000 @@ -55,7 +55,7 @@ } getAccountIsPredefined(account) { - return account && this._networksById.get(account.service) != null; + return account && this._networksById.has(account.service); } getNetworkName(id) { @@ -65,7 +65,7 @@ getNetworkIsFavorite(id) { let network = this._lookupNetwork(id); - if (network.hasOwnProperty('favorite')) + if (Object.prototype.hasOwnProperty.call(network, 'favorite')) return network['favorite']; return false; @@ -104,10 +104,10 @@ } findByServer(server) { - for (let n of this._networks) - if (n.servers.some(s => s.address == server)) - return n.id; - return null; + let network = this._networks.find(n => { + return n.servers.some(s => s.address === server); + }); + return network ? network.id : null; } }; Signals.addSignalMethods(NetworksManager.prototype); diff -Nru polari-3.32.0/src/pasteManager.js polari-3.34.0/src/pasteManager.js --- polari-3.32.0/src/pasteManager.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/pasteManager.js 2019-09-09 18:44:11.000000000 +0000 @@ -23,66 +23,66 @@ var PasteManager = class { pasteContent(content, title, callback) { - if (typeof content == 'string') { + if (typeof content === 'string') Utils.gpaste(content, title, callback); - } else if (content instanceof GdkPixbuf.Pixbuf) { + else if (content instanceof GdkPixbuf.Pixbuf) Utils.imgurPaste(content, title, callback); - } else if (content.query_info_async) { + else if (content.query_info_async) this._pasteFile(content, title, callback); - } else { + else throw new Error('Unhandled content type'); - } } _pasteFile(file, title, callback) { - file.query_info_async(Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, - Gio.FileQueryInfoFlags.NONE, - GLib.PRIORITY_DEFAULT, null, (file, res) => { - this._onFileQueryFinish(file, res, title, callback); - }); + file.query_info_async( + Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + Gio.FileQueryInfoFlags.NONE, + GLib.PRIORITY_DEFAULT, null, (f, res) => { + try { + let fileInfo = file.query_info_finish(res); + this._handleFilePaste(file, fileInfo, title, callback); + } catch (e) { + callback(null); + } + }); } - _onFileQueryFinish(file, res, title, callback) { - let fileInfo = null; - try { - fileInfo = file.query_info_finish(res); - } catch (e) { - callback(null); - } - + _handleFilePaste(file, fileInfo, title, callback) { let contentType = fileInfo.get_content_type(); let targetType = _getTargetForContentType(contentType); - if (targetType == DndTargetType.TEXT) + if (targetType === DndTargetType.TEXT) { file.load_contents_async(null, (f, res) => { let [, contents] = f.load_contents_finish(res); Utils.gpaste(contents.toString(), title, callback); }); - else if (targetType == DndTargetType.IMAGE) + } else if (targetType === DndTargetType.IMAGE) { file.read_async(GLib.PRIORITY_DEFAULT, null, (f, res) => { let stream = f.read_finish(res); - GdkPixbuf.Pixbuf.new_from_stream_async(stream, null, (s, res) => { - let pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(res); + GdkPixbuf.Pixbuf.new_from_stream_async(stream, null, (s, r) => { + let pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(r); Utils.imgurPaste(pixbuf, title, callback); }); }); - else + } else { callback(null); + } } }; var DropTargetIface = GObject.registerClass({ Requires: [GObject.Object], Properties: { - 'can-drop': GObject.ParamSpec.boolean('can-drop', '', '', - GObject.ParamFlags.READABLE, - false) + 'can-drop': GObject.ParamSpec.boolean( + 'can-drop', 'can-drop', 'can-drop', + GObject.ParamFlags.READABLE, + false), }, Signals: { 'text-dropped': { param_types: [GObject.TYPE_STRING] }, 'image-dropped': { param_types: [GdkPixbuf.Pixbuf.$gtype] }, - 'file-dropped': { param_types: [Gio.File.$gtype] } - } + 'file-dropped': { param_types: [Gio.File.$gtype] }, + }, }, class DropTargetIface extends GObject.Interface { addTargets(widget) { this._dragHighlight = false; @@ -103,7 +103,7 @@ widget.connect('drag-leave', this._onDragLeave.bind(this)); widget.connect('drag-motion', this._onDragMotion.bind(this)); widget.connect_after('drag-data-received', - this._onDragDataReceived.bind(this)); + this._onDragDataReceived.bind(this)); } _onDragDrop(widget, context, _x, _y, time) { @@ -150,7 +150,7 @@ _onDragDataReceived(_widget, context, _x, _y, data, info, time) { - if (info == DndTargetType.URI_LIST) { + if (info === DndTargetType.URI_LIST) { let uris = data.get_uris(); if (!uris) { Gtk.drag_finish(context, false, false, time); @@ -161,7 +161,7 @@ let file = Gio.File.new_for_uri(uris[0]); try { this._lookupFileInfo(file, targetType => { - let canHandle = targetType != 0; + let canHandle = targetType !== 0; if (canHandle) this.emit('file-dropped', file); Gtk.drag_finish(context, canHandle, false, time); diff -Nru polari-3.32.0/src/polari.c polari-3.34.0/src/polari.c --- polari-3.32.0/src/polari.c 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/polari.c 2019-09-09 18:44:11.000000000 +0000 @@ -21,8 +21,8 @@ NULL }; char **strv; - int js_argc = argc - 1; // gjs doesn't do argv[0] - int i; + guint js_argc = argc - 1; // gjs doesn't do argv[0] + guint i; strv = g_new0 (char *, js_argc + G_N_ELEMENTS (injected_args) + 1); for (i = 0; i < js_argc; i++) @@ -32,6 +32,32 @@ return strv; } +static gboolean +get_profiler_fd (int *fd_p) +{ + const char *enabled; + const char *fd_str; + int fd; + + /* Sysprof uses the "GJS_TRACE_FD=N" environment variable to connect GJS + * profiler data to the combined Sysprof capture. Since we are in control of + * the GjsContext, we need to proxy this FD across to the GJS profiler. + */ + + fd_str = g_getenv ("GJS_TRACE_FD"); + enabled = g_getenv ("GJS_ENABLE_PROFILER"); + if (fd_str == NULL || enabled == NULL) + return FALSE; + + fd = atoi (fd_str); + + if (fd <= 2) + return FALSE; + + *fd_p = fd; + return TRUE; +} + int main (int argc, char *argv[]) { @@ -40,8 +66,9 @@ g_autoptr (GError) error = NULL; g_autoptr (GjsContext) context = NULL; g_auto (GStrv) js_argv = NULL; + GjsProfiler *profiler = NULL; gboolean debugger = FALSE; - int status; + int status, profiler_fd; GOptionEntry entries[] = { @@ -82,12 +109,19 @@ return 1; } - if (!gjs_context_eval (context, src, -1, "
    ", &status, &error)) + if (get_profiler_fd (&profiler_fd)) { - g_message ("Execution of start() threw exception: %s", error->message); + profiler = gjs_context_get_profiler (context); - return status; + gjs_profiler_set_fd (profiler, profiler_fd); + gjs_profiler_start (profiler); } - return 0; + if (!gjs_context_eval (context, src, -1, "
    ", &status, &error)) + g_message ("Execution of start() threw exception: %s", error->message); + + if (profiler) + gjs_profiler_stop (profiler); + + return status; } diff -Nru polari-3.32.0/src/roomList.js polari-3.34.0/src/roomList.js --- polari-3.32.0/src/roomList.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/roomList.js 2019-09-09 18:44:11.000000000 +0000 @@ -5,7 +5,7 @@ const { AccountsMonitor } = imports.accountsMonitor; const { RoomManager } = imports.roomManager; -const MIN_SPINNER_TIME = 1000000; //in microsecond +const MIN_SPINNER_TIME = 1000000; // in microsecond function _onPopoverVisibleChanged(popover) { let context = popover.relative_to.get_style_context(); @@ -22,56 +22,51 @@ 'icon', 'roomLabel', 'counter', - 'eventStack' - ] + 'eventStack', + ], }, class RoomRow extends Gtk.ListBoxRow { _init(room) { super._init({ - name: `RoomRow ${room.display_name}` + name: `RoomRow ${room.display_name}`, }); this._room = room; this._popover = null; - this._popoverVisibleChangedId = 0; this._connectingTimeoutId = 0; this._icon.gicon = room.icon; - this._icon.visible = room.icon != null; + this._icon.visible = room.icon !== null; this._eventBox.connect('button-release-event', - this._onButtonRelease.bind(this)); - this.connect('key-press-event', this._onKeyPress.bind(this)); + this._onButtonRelease.bind(this)); + this.connect('key-press-event', + this._onKeyPress.bind(this)); + + room.bind_property('display-name', + this._roomLabel, 'label', + GObject.BindingFlags.SYNC_CREATE); - room.bind_property('display-name', this._roomLabel, 'label', - GObject.BindingFlags.SYNC_CREATE); - - let channelChangedId = - room.connect('notify::channel', this._onChannelChanged.bind(this)); + let channelChangedId = room.connect('notify::channel', + this._onChannelChanged.bind(this)); let connectionStatusChangedId = 0; - if (this._room.type == Tp.HandleType.ROOM) { + if (this._room.type === Tp.HandleType.ROOM) { connectionStatusChangedId = this.account.connect('notify::connection-status', - this._onConnectionStatusChanged.bind(this)); + this._onConnectionStatusChanged.bind(this)); this._onConnectionStatusChanged(); } this.connect('destroy', () => { - if (this._popoverVisibleChangedId) - this._popover.disconnect(this._popoverVisibleChangedId); - this._popoverVisibleChangedId = 0; - room.disconnect(channelChangedId); this._channelSignals.forEach(id => { room.channel.disconnect(id); }); if (connectionStatusChangedId) this.account.disconnect(connectionStatusChangedId); - if (this._connectingTimeoutId) - GLib.source_remove(this._connectingTimeoutId); - this._connectingTimeoutId = 0; + this._clearConnectingTimeout(); }); this._updatePending(); @@ -102,8 +97,6 @@ let pending = this._room.channel.dup_pending_messages(); let nPending = pending.length; - if (!this._room.channel.has_interface(Tp.IFACE_CHANNEL_INTERFACE_GROUP)) - return [nPending, nPending]; let highlights = pending.filter(m => { let [text] = m.to_text(); @@ -114,7 +107,7 @@ _getConnectionStatus() { let presence = this.account.requested_presence_type; - if (presence == Tp.ConnectionPresenceType.OFFLINE) + if (presence === Tp.ConnectionPresenceType.OFFLINE) return Tp.ConnectionStatus.DISCONNECTED; return this.account.connection_status; } @@ -122,7 +115,7 @@ _onConnectionStatusChanged() { let status = this._getConnectionStatus(); // Show loading indicator if joining a room takes more than 3 seconds - if (status == Tp.ConnectionStatus.CONNECTED && !this._room.channel) + if (status === Tp.ConnectionStatus.CONNECTED && !this._room.channel) { this._connectingTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 3, () => { this._connectingTimeoutId = 0; @@ -131,8 +124,10 @@ this._eventStack.visible_child_name = 'connecting'; return GLib.SOURCE_REMOVE; }); - else + } else { + this._clearConnectingTimeout(); this._eventStack.visible_child_name = 'messages'; + } } _updatePending() { @@ -142,7 +137,7 @@ this._counter.opacity = nHighlights > 0 ? 1. : 0.; let context = this.get_style_context(); - if (nPending == 0) + if (nPending === 0) context.add_class('inactive'); else context.remove_class('inactive'); @@ -153,19 +148,21 @@ if (!this._room.channel) return; + this._clearConnectingTimeout(); this._eventStack.visible_child_name = 'messages'; - for (let signal of ['message-received', 'pending-message-removed']) + for (let signal of ['message-received', 'pending-message-removed']) { this._channelSignals.push( this._room.channel.connect(signal, - this._updatePending.bind(this)) + this._updatePending.bind(this)) ); + } this._updatePending(); } _onButtonRelease(w, event) { let [, button] = event.get_button(); - if (button != Gdk.BUTTON_SECONDARY) + if (button !== Gdk.BUTTON_SECONDARY) return Gdk.EVENT_PROPAGATE; this._showPopover(); @@ -176,8 +173,8 @@ _onKeyPress(w, event) { let [, keyval] = event.get_keyval(); let [, mods] = event.get_state(); - if (keyval != Gdk.KEY_Menu && - !(keyval == Gdk.KEY_F10 && + if (keyval !== Gdk.KEY_Menu && + !(keyval === Gdk.KEY_F10 && mods & Gdk.ModifierType.SHIFT_MASK)) return Gdk.EVENT_PROPAGATE; @@ -189,17 +186,22 @@ _showPopover() { if (!this._popover) { let menu = new Gio.Menu(); - let isRoom = this._room.type == Tp.HandleType.ROOM; - menu.append(isRoom ? _('Leave chatroom') : _('End conversation'), - `app.leave-room(("${this._room.id}", ""))`); + let isRoom = this._room.type === Tp.HandleType.ROOM; + let label = isRoom ? _('Leave chatroom') : _('End conversation'); + menu.append(label, `app.leave-room(("${this._room.id}", ""))`); this._popover = Gtk.Popover.new_from_model(this, menu); - this._popoverVisibleChangedId = - this._popover.connect('notify::visible', - _onPopoverVisibleChanged); + this._popover.connect('notify::visible', + _onPopoverVisibleChanged); this._popover.position = Gtk.PositionType.BOTTOM; } - this._popover.show(); + this._popover.popup(); + } + + _clearConnectingTimeout() { + if (this._connectingTimeoutId) + GLib.source_remove(this._connectingTimeoutId); + this._connectingTimeoutId = 0; } }); @@ -217,8 +219,8 @@ 'popoverReconnect', 'popoverRemove', 'popoverProperties', - 'spinner' - ] + 'spinner', + ], }, class RoomListHeader extends Gtk.MenuButton { _init(params) { this._account = params.account; @@ -263,16 +265,16 @@ let displayNameChangedId = this._account.connect('notify::display-name', - this._onDisplayNameChanged.bind(this)); + this._onDisplayNameChanged.bind(this)); this._onDisplayNameChanged(); let connectionStatusChangedId = this._account.connect('notify::connection-status', - this._onConnectionStatusChanged.bind(this)); + this._onConnectionStatusChanged.bind(this)); let presenceChangedId = this._account.connect('notify::requested-presence-type', - this._onRequestedPresenceChanged.bind(this)); + this._onRequestedPresenceChanged.bind(this)); this._onRequestedPresenceChanged(); this.connect('destroy', () => { @@ -302,20 +304,20 @@ /* hack: Handle primary and secondary button interchangeably */ vfunc_button_press_event(event) { - if (event.button == Gdk.BUTTON_SECONDARY) + if (event.button === Gdk.BUTTON_SECONDARY) event.button = Gdk.BUTTON_PRIMARY; return super.vfunc_button_press_event(event); } vfunc_button_release_event(event) { - if (event.button == Gdk.BUTTON_SECONDARY) + if (event.button === Gdk.BUTTON_SECONDARY) event.button = Gdk.BUTTON_PRIMARY; return super.vfunc_button_release_event(event); } _getConnectionStatus() { let presence = this._account.requested_presence_type; - if (presence == Tp.ConnectionPresenceType.OFFLINE) + if (presence === Tp.ConnectionPresenceType.OFFLINE) return Tp.ConnectionStatus.DISCONNECTED; return this._account.connection_status; } @@ -324,16 +326,16 @@ let status = this._getConnectionStatus(); let reason = this._account.connection_status_reason; let authError = Tp.error_get_dbus_name(Tp.Error.AUTHENTICATION_FAILED); - let isError = (status == Tp.ConnectionStatus.DISCONNECTED && - reason != Tp.ConnectionStatusReason.REQUESTED); - let isAuth = isError && this._account.connection_error == authError; + let isError = status === Tp.ConnectionStatus.DISCONNECTED && + reason !== Tp.ConnectionStatusReason.REQUESTED; + let isAuth = isError && this._account.connection_error === authError; let child = 'default'; - if (status == Tp.ConnectionStatus.CONNECTING) + if (status === Tp.ConnectionStatus.CONNECTING) child = 'connecting'; else if (isError) child = isAuth ? 'auth' : 'error'; - else if (status == Tp.ConnectionStatus.DISCONNECTED) + else if (status === Tp.ConnectionStatus.DISCONNECTED) child = 'disconnected'; if (isError && this._spinner.active) { @@ -348,7 +350,7 @@ } this._iconStack.visible_child_name = child; - this._spinner.active = (child == 'connecting'); + this._spinner.active = child === 'connecting'; this._popoverTitle.visible = !isAuth; if (this._spinner.active) @@ -368,7 +370,7 @@ /* Translators: This is an account name followed by a server address, e.g. "GNOME (irc.gnome.org)" */ let fullTitle = _('%s (%s)').format(accountName, server); - this._popoverTitle.label = (accountName == server) ? accountName : fullTitle; + this._popoverTitle.label = accountName === server ? accountName : fullTitle; this._popoverStatus.label = `${this._getStatusLabel()}<${'/'}sup>`; } else { let styleContext = this._popoverStatus.get_style_context(); @@ -381,7 +383,7 @@ _onRequestedPresenceChanged() { let presence = this._account.requested_presence_type; - let offline = presence == Tp.ConnectionPresenceType.OFFLINE; + let offline = presence === Tp.ConnectionPresenceType.OFFLINE; this._popoverConnect.visible = offline; this._popoverDisconnect.visible = !offline; this._popoverReconnect.visible = !offline; @@ -447,9 +449,9 @@ this._accountsMonitor = AccountsMonitor.getDefault(); this._accountsMonitor.connect('account-added', - this._accountAdded.bind(this)); + this._accountAdded.bind(this)); this._accountsMonitor.connect('account-removed', - this._accountRemoved.bind(this)); + this._accountRemoved.bind(this)); this._accountsMonitor.connect('account-shown', (mon, account) => { this._updatePlaceholderVisibility(account); }); @@ -464,44 +466,44 @@ this._roomManager = RoomManager.getDefault(); this._roomManager.connect('room-added', - this._roomAdded.bind(this)); + this._roomAdded.bind(this)); this._roomManager.connect('room-removed', - this._roomRemoved.bind(this)); + this._roomRemoved.bind(this)); this._roomManager.rooms.forEach(r => this._roomAdded(this._roomManager, r)); let app = Gio.Application.get_default(); let actions = [{ name: 'next-room', - handler: () => this._moveSelection(Gtk.DirectionType.DOWN) + handler: () => this._moveSelection(Gtk.DirectionType.DOWN), }, { name: 'previous-room', - handler: () => this._moveSelection(Gtk.DirectionType.UP) + handler: () => this._moveSelection(Gtk.DirectionType.UP), }, { name: 'first-room', - handler: () => this._selectRoomAtIndex(0) + handler: () => this._selectRoomAtIndex(0), }, { name: 'last-room', handler: () => { let nRows = this._roomManager.roomCount; this._selectRoomAtIndex(nRows - 1); - } + }, }, { name: 'nth-room', handler: (a, param) => { this._selectRoomAtIndex(param.get_int32() - 1); - } + }, }, { name: 'next-pending-room', handler: () => { this._moveSelectionFull(Gtk.DirectionType.DOWN, - row => row.hasPending); - } + row => row.hasPending); + }, }, { name: 'previous-pending-room', handler: () => { this._moveSelectionFull(Gtk.DirectionType.UP, - row => row.hasPending); - } + row => row.hasPending); + }, }]; actions.forEach(a => { app.lookup_action(a.name).connect('activate', a.handler); @@ -513,7 +515,7 @@ let toplevel = this.get_toplevel(); toplevel.connect('notify::active-room', - this._activeRoomChanged.bind(this)); + this._activeRoomChanged.bind(this)); this._activeRoomChanged(); } @@ -524,11 +526,8 @@ } _roomToRowIndex(index) { - let nChildren = this.get_children().length; - for (let i = 0, roomIndex = 0; i < nChildren; i++) - if (this.get_row_at_index(i).room && roomIndex++ == index) - return i; - return -1; + let roomRows = this.get_children().filter(r => r instanceof RoomRow); + return index < roomRows.length ? roomRows[index].get_index() : -1; } _getRoomRowAtIndex(index) { @@ -550,7 +549,7 @@ if (!current) return; - let inc = direction == Gtk.DirectionType.UP ? -1 : 1; + let inc = direction === Gtk.DirectionType.UP ? -1 : 1; let index = this._rowToRoomIndex(current.get_index()); let row = current; @@ -565,13 +564,13 @@ } _moveSelectionFromRow(row) { - if (this._roomManager.roomCount == 0) + if (this._roomManager.roomCount === 0) return; let toplevel = this.get_toplevel(); let current = this._roomRows.get(toplevel.active_room.id); - if (current != row) + if (current !== row) return; let selected = this.get_selected_row(); @@ -579,15 +578,15 @@ let index = this._rowToRoomIndex(row.get_index()); this.select_row(row); - this._moveSelection(index == 0 ? - Gtk.DirectionType.DOWN : Gtk.DirectionType.UP); + this._moveSelection(index === 0 + ? Gtk.DirectionType.DOWN : Gtk.DirectionType.UP); let newSelected = this.get_selected_row(); - if (newSelected != row) + if (newSelected !== row) newActive = newSelected.room; toplevel.active_room = newActive; - if (selected != row) + if (selected !== row) this.select_row(selected); } @@ -598,7 +597,7 @@ let placeholder = new Gtk.ListBoxRow({ selectable: false, activatable: false, - no_show_all: true + no_show_all: true, }); placeholder.account = account; @@ -652,7 +651,7 @@ } let rows = [...this._roomRows.values()]; - let hasRooms = rows.some(r => r.account == account); + let hasRooms = rows.some(r => r.account === account); this._placeholders.get(account).visible = !hasRooms; } @@ -676,14 +675,12 @@ } _updateHeader(row, before) { - let getAccount = row => row ? row.account : null; - - let beforeAccount = getAccount(before); - let account = getAccount(row); + let { account: beforeAccount } = before || {}; + let { account } = row; let oldHeader = row.get_header(); - if (beforeAccount == account) { + if (beforeAccount === account) { if (oldHeader) oldHeader.destroy(); return; @@ -692,7 +689,7 @@ if (oldHeader) return; - let roomListHeader = new RoomListHeader({ account: account }); + let roomListHeader = new RoomListHeader({ account }); row.set_header(roomListHeader); } @@ -703,15 +700,15 @@ let hasRooms1 = !this._placeholders.get(account1).visible; let hasRooms2 = !this._placeholders.get(account2).visible; - if (hasRooms1 != hasRooms2) + if (hasRooms1 !== hasRooms2) return hasRooms1 ? -1 : 1; - if (account1 != account2) { + if (account1 !== account2) { let displayName1 = account1.display_name; let displayName2 = account2.display_name; - if (displayName1 != displayName2) + if (displayName1 !== displayName2) return displayName1.localeCompare(displayName2); // Different account with the same display name :-( @@ -730,8 +727,8 @@ if (!room2) return 1; - if (room1.type != room2.type) - return room1.type == Tp.HandleType.ROOM ? -1 : 1; + if (room1.type !== room2.type) + return room1.type === Tp.HandleType.ROOM ? -1 : 1; return room1.display_name.localeCompare(room2.display_name); } diff -Nru polari-3.32.0/src/roomManager.js polari-3.34.0/src/roomManager.js --- polari-3.32.0/src/roomManager.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/roomManager.js 2019-09-09 18:44:11.000000000 +0000 @@ -21,14 +21,14 @@ this._app = Gio.Application.get_default(); let actions = [{ name: 'join-room', - handler: this._onJoinActivated.bind(this) + handler: this._onJoinActivated.bind(this), }, { name: 'message-user', - handler: this._onQueryActivated.bind(this) + handler: this._onQueryActivated.bind(this), }, { name: 'leave-room', after: true, - handler: this._onLeaveActivated.bind(this) + handler: this._onLeaveActivated.bind(this), }]; actions.forEach(a => { if (a.after) @@ -55,10 +55,9 @@ } lookupRoomByName(name, account) { - for (let room of this._rooms.values()) - if (room.channel_name == name && room.account == account) - return room; - return null; + return [...this._rooms.values()].find(room => { + return room.channel_name === name && room.account === account; + }); } lookupRoomByChannel(channel) { @@ -106,37 +105,37 @@ this._settings.get_value('saved-channel-list').deep_unpack().forEach(c => { for (let prop in c) c[prop] = c[prop].deep_unpack(); - if (accountPath == null || c.account == accountPath) + if (!accountPath || c.account === accountPath) this._ensureRoom(c.account, c.channel, Tp.HandleType.ROOM, 0); }); this.emit('rooms-loaded'); } _removeRooms(accountPath) { - for (let room of this._rooms.values()) - if (accountPath == null || room.account.object_path == accountPath) + for (let room of this._rooms.values()) { + if (!accountPath || room.account.object_path === accountPath) this._removeRoom(room); + } } _findChannelIndex(channels, accountPath, channelName) { let matchName = channelName.toLowerCase(); - for (let i = 0; i < channels.length; i++) - if (channels[i].account.deep_unpack() == accountPath && - channels[i].channel.deep_unpack().toLowerCase() == matchName) - return i; - return -1; + return channels.findIndex(c => { + return c.account.deep_unpack() === accountPath && + c.channel.deep_unpack().toLowerCase() === matchName; + }); } _addSavedChannel(accountPath, channelName) { let channels = this._settings.get_value('saved-channel-list').deep_unpack(); - if (this._findChannelIndex(channels, accountPath, channelName) != -1) + if (this._findChannelIndex(channels, accountPath, channelName) !== -1) return; channels.push({ account: new GLib.Variant('s', accountPath), - channel: new GLib.Variant('s', channelName) + channel: new GLib.Variant('s', channelName), }); this._settings.set_value('saved-channel-list', - new GLib.Variant('aa{sv}', channels)); + new GLib.Variant('aa{sv}', channels)); } _removeSavedChannel(accountPath, channelName) { @@ -146,7 +145,7 @@ return; channels.splice(pos, 1); this._settings.set_value('saved-channel-list', - new GLib.Variant('aa{sv}', channels)); + new GLib.Variant('aa{sv}', channels)); } _removeSavedChannelsForAccount(accountPath) { @@ -155,7 +154,7 @@ channels = channels.filter(c => !c.account.equal(account)); this._settings.set_value('saved-channel-list', - new GLib.Variant('aa{sv}', channels)); + new GLib.Variant('aa{sv}', channels)); } _ensureRoom(accountPath, channelName, type, time) { @@ -173,9 +172,9 @@ let room = this._rooms.get(id); if (!room) { room = new Polari.Room({ - account: account, + account, channel_name: channelName, - type: type + type, }); this._rooms.set(room.id, room); this.emit('room-added', room); @@ -191,8 +190,8 @@ ensureRoomForChannel(channel, time) { let accountPath = channel.connection.get_account().object_path; let targetContact = channel.target_contact; - let channelName = targetContact ? - targetContact.alias : channel.identifier; + let channelName = targetContact + ? targetContact.alias : channel.identifier; let [, handleType] = channel.get_handle(); let room = this._ensureRoom(accountPath, channelName, handleType, time); room.channel = channel; diff -Nru polari-3.32.0/src/roomStack.js polari-3.34.0/src/roomStack.js --- polari-3.32.0/src/roomStack.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/roomStack.js 2019-09-09 18:44:11.000000000 +0000 @@ -1,20 +1,20 @@ /* exported RoomStack */ -const { Gio, GLib, GObject, Gtk, Pango, TelepathyGLib: Tp } = imports.gi; +const { Gio, GLib, GObject, Gtk, TelepathyGLib: Tp } = imports.gi; const { AccountsMonitor } = imports.accountsMonitor; const { ChatView } = imports.chatView; const { EntryArea } = imports.entryArea; +const { MessageInfoBar } = imports.appNotifications; const { RoomManager } = imports.roomManager; var RoomStack = GObject.registerClass({ Properties: { - 'entry-area-height': GObject.ParamSpec.uint('entry-area-height', - 'entry-area-height', - 'entry-area-height', - GObject.ParamFlags.READABLE, - 0, GLib.MAXUINT32, 0) - } + 'entry-area-height': GObject.ParamSpec.uint( + 'entry-area-height', 'entry-area-height', 'entry-area-height', + GObject.ParamFlags.READABLE, + 0, GLib.MAXUINT32, 0), + }, }, class RoomStack extends Gtk.Stack { _init(params) { super._init(params); @@ -50,9 +50,9 @@ let toplevel = this.get_toplevel(); toplevel.connect('notify::active-room', - this._activeRoomChanged.bind(this)); + this._activeRoomChanged.bind(this)); toplevel.connect('active-room-state-changed', - this._updateSensitivity.bind(this)); + this._updateSensitivity.bind(this)); this._activeRoomChanged(); this._updateSensitivity(); } @@ -91,69 +91,98 @@ }); const SavePasswordConfirmationBar = GObject.registerClass( -class SavePasswordConfirmationBar extends Gtk.Revealer { +class SavePasswordConfirmationBar extends MessageInfoBar { _init(room) { this._room = room; - super._init({ valign: Gtk.Align.START }); + let title = _('Should the password be saved?'); + let subtitle = _( + 'Identification will happen automatically the next time you connect to %s' + ).format(this._room.account.display_name); + super._init({ title, subtitle }); this.connect('destroy', this._onDestroy.bind(this)); - this._createWidget(); + this.add_button(_('_Save Password'), Gtk.ResponseType.ACCEPT).set({ + action_name: 'app.save-identify-password', + action_target: new GLib.Variant('o', this._room.account.object_path), + }); this._identifySentId = this._room.connect('identify-sent', () => { - this.reveal_child = true; - }); - this._infoBar.connect('response', (w, res) => { - if (res == Gtk.ResponseType.CLOSE) { - let app = Gio.Application.get_default(); - let target = new GLib.Variant('o', this._room.account.object_path); - app.lookup_action('discard-identify-password').activate(target); - } - this.reveal_child = false; + this.revealed = true; }); } - _createWidget() { - this._infoBar = new Gtk.InfoBar({ show_close_button: true }); - this.add(this._infoBar); + vfunc_response(response) { + super.vfunc_response(response); + + if (response === Gtk.ResponseType.ACCEPT) + return; + let app = Gio.Application.get_default(); let target = new GLib.Variant('o', this._room.account.object_path); - let button = new Gtk.Button({ - label: _('_Save Password'), - use_underline: true, - action_name: 'app.save-identify-password', - action_target: target - }); - this._infoBar.add_action_widget(button, Gtk.ResponseType.ACCEPT); + app.lookup_action('discard-identify-password').activate(target); + } - let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL }); - this._infoBar.get_content_area().add(box); + _onDestroy() { + if (this._identifySentId) + this._room.disconnect(this._identifySentId); + this._identifySentId = 0; + } +}); - let title = _('Should the password be saved?'); - this._titleLabel = new Gtk.Label({ - halign: Gtk.Align.START, - valign: Gtk.Align.CENTER, - wrap: true +const ChannelErrorBar = GObject.registerClass( +class ChannelErrorBar extends MessageInfoBar { + _init(room) { + this._room = room; + + super._init({ title: _('Failed to join the room') }); + + this.add_button(_('_Retry'), Gtk.ResponseType.ACCEPT).set({ + action_name: 'app.reconnect-room', + action_target: new GLib.Variant('s', this._room.id), }); - this._titleLabel.set_markup(`${title}`); - box.add(this._titleLabel); - let accountName = this._room.account.display_name; - let text = _('Identification will happen automatically the next time you connect to %s').format(accountName); - this._subtitleLabel = new Gtk.Label({ - label: text, - ellipsize: Pango.EllipsizeMode.END + + this.connect('destroy', this._onDestroy.bind(this)); + + this._identifyError = this._room.connect('notify::channel-error', () => { + if (this._room.channel_error === '') { + this.revealed = false; + return; + } + this._updateLabels(); + this.revealed = true; }); - box.add(this._subtitleLabel); - this._infoBar.show_all(); + } + + _updateLabels() { + let text; + + switch (this._room.channel_error) { + case Tp.error_get_dbus_name(Tp.Error.CHANNEL_FULL): + text = _('The room is full.'); + break; + case Tp.error_get_dbus_name(Tp.Error.CHANNEL_BANNED): + text = _('You have been banned from the room.'); + break; + case Tp.error_get_dbus_name(Tp.Error.CHANNEL_INVITE_ONLY): + text = _('The room is invite-only.'); + break; + case Tp.error_get_dbus_name(Tp.Error.CHANNEL_KICKED): + text = _('You have been kicked from the room.'); + break; + default: + text = _('It is not possible to join the room now, but you can retry later.'); + } + + this.subtitle = text; } _onDestroy() { - if (this._identifySentId) - this._room.disconnect(this._identifySentId); - this._identifySentId = 0; + if (this._identifyError) + this._room.disconnect(this._identifyError); } }); @@ -165,21 +194,21 @@ let image = new Gtk.Image({ icon_name: 'org.gnome.Polari-symbolic', pixel_size: 96, halign: Gtk.Align.END, - margin_end: 14 + margin_end: 14, }); let title = new Gtk.Label({ use_markup: true, halign: Gtk.Align.START, - margin_start: 14 + margin_start: 14, }); - title.label = `${_('Polari')}`; + title.label = `${_('Polari')}<${'/'}span>`; title.get_style_context().add_class('polari-background-title'); let description = new Gtk.Label({ label: _('Join a room using the + button.'), halign: Gtk.Align.CENTER, wrap: true, - margin_top: 24, use_markup: true + margin_top: 24, use_markup: true, }); description.get_style_context().add_class('polari-background-description'); @@ -193,7 +222,7 @@ column_spacing: 18, hexpand: true, vexpand: true, - valign: Gtk.Align.CENTER + valign: Gtk.Align.CENTER, }); grid.get_style_context().add_class('polari-background'); grid.attach(image, 0, 0, 1, 1); @@ -213,21 +242,23 @@ let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL }); this.add(box); - if (room.type == Tp.HandleType.CONTACT) + if (room.type === Tp.HandleType.CONTACT) this.add_overlay(new SavePasswordConfirmationBar(room)); + this.add_overlay(new ChannelErrorBar(room)); + this._view = new ChatView(room); box.add(this._view); this._entryArea = new EntryArea({ - room: room, - sensitive: false + room, + sensitive: false, }); box.add(this._entryArea); this._view.bind_property('max-nick-chars', - this._entryArea, 'max-nick-chars', - GObject.BindingFlags.SYNC_CREATE); + this._entryArea, 'max-nick-chars', + GObject.BindingFlags.SYNC_CREATE); sizeGroup.add_widget(this._entryArea); this._view.connect('text-dropped', (view, text) => { diff -Nru polari-3.32.0/src/serverRoomManager.js polari-3.34.0/src/serverRoomManager.js --- polari-3.32.0/src/serverRoomManager.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/serverRoomManager.js 2019-09-09 18:44:11.000000000 +0000 @@ -22,9 +22,9 @@ this._accountsMonitor = AccountsMonitor.getDefault(); this._accountsMonitor.connect('account-status-changed', - this._onAccountStatusChanged.bind(this)); + this._onAccountStatusChanged.bind(this)); this._accountsMonitor.connect('account-removed', - this._onAccountRemoved.bind(this)); + this._onAccountRemoved.bind(this)); this._accountsMonitor.prepare(() => { this._accountsMonitor.visibleAccounts.forEach(a => { this._onAccountStatusChanged(this._accountsMonitor, a); @@ -42,21 +42,21 @@ isLoading(account) { let roomList = this._roomLists.get(account); if (!roomList) - return account.connection_status == Tp.ConnectionStatus.CONNECTING; + return account.connection_status === Tp.ConnectionStatus.CONNECTING; return roomList.list.listing; } _onAccountStatusChanged(mon, account) { - if (account.connection_status == Tp.ConnectionStatus.CONNECTING) + if (account.connection_status === Tp.ConnectionStatus.CONNECTING) this.emit('loading-changed', account); - if (account.connection_status != Tp.ConnectionStatus.CONNECTED) + if (account.connection_status !== Tp.ConnectionStatus.CONNECTED) return; if (this._roomLists.has(account)) return; - let roomList = new Tp.RoomList({ account: account }); + let roomList = new Tp.RoomList({ account }); roomList.init_async(GLib.PRIORITY_DEFAULT, null, (o, res) => { try { roomList.init_finish(res); @@ -102,7 +102,7 @@ }; function _strBaseEqual(str1, str2) { - return str1.localeCompare(str2, {}, { sensitivity: 'base' }) == 0; + return str1.localeCompare(str2, {}, { sensitivity: 'base' }) === 0; } var ServerRoomList = GObject.registerClass({ @@ -112,15 +112,14 @@ 'list', 'spinner', 'store', - 'toggleRenderer' + 'toggleRenderer', ], Properties: { - 'can-join': GObject.ParamSpec.boolean('can-join', - 'can-join', - 'can-join', - GObject.ParamFlags.READABLE, - false) - } + 'can-join': GObject.ParamSpec.boolean( + 'can-join', 'can-join', 'can-join', + GObject.ParamFlags.READABLE, + false), + }, }, class ServerRoomList extends Gtk.Box { _init(params) { this._account = null; @@ -161,7 +160,7 @@ this.get_toplevel().response(Gtk.ResponseType.CANCEL); }); this._filterEntry.connect('activate', () => { - if (this._filterEntry.text.trim().length == 0) + if (this._filterEntry.text.trim().length === 0) return; let [selected, model_, iter] = this._list.get_selection().get_selected(); @@ -176,14 +175,14 @@ this._toggleRenderer.connect('toggled', (cell, pathStr) => { // For pointer devices, ::row-activated is emitted as well let dev = Gtk.get_current_event_device(); - if (dev && dev.input_source == Gdk.InputSource.KEYBOARD) + if (dev && dev.input_source === Gdk.InputSource.KEYBOARD) this._toggleChecked(Gtk.TreePath.new_from_string(pathStr)); }); this._manager = ServerRoomManager.getDefault(); let loadingChangedId = this._manager.connect('loading-changed', - this._onLoadingChanged.bind(this)); + this._onLoadingChanged.bind(this)); this.connect('destroy', () => { this.setAccount(null); @@ -216,7 +215,7 @@ } setAccount(account) { - if (this._account == account) + if (this._account === account) return; this._account = account; @@ -233,12 +232,12 @@ _isCustomRoomItem(iter) { let path = this._store.get_path(iter); let customPath = this._store.get_path(this._customRoomItem); - return path.compare(customPath) == 0; + return path.compare(customPath) === 0; } _updateCustomRoomName() { let newName = this._filterEntry.text.trim(); - if (newName.search(/\s/) != -1) + if (newName.search(/\s/) !== -1) newName = ''; if (newName) { @@ -248,7 +247,7 @@ return false; let name = model.get_value(iter, RoomListColumn.NAME); - return exactMatch = _strBaseEqual(newName, name); + return (exactMatch = _strBaseEqual(newName, name)); }); if (exactMatch) @@ -259,10 +258,10 @@ } _updateSelection() { - if (this._filterEntry.text.trim().length == 0) + if (this._filterEntry.text.trim().length === 0) return; - let model = this._list.model; + let { model } = this._list; let [valid, iter] = model.get_iter_first(); if (!valid) return; @@ -281,7 +280,7 @@ } _onLoadingChanged(mgr, account) { - if (account != this._account) + if (account !== this._account) return; this._checkSpinner(); @@ -301,7 +300,7 @@ roomInfos.sort((info1, info2) => { let count1 = info1.get_members_count(null); let count2 = info2.get_members_count(null); - if (count1 != count2) + if (count1 !== count2) return count2 - count1; return info1.get_name().localeCompare(info2.get_name()); }); @@ -312,34 +311,36 @@ let roomManager = RoomManager.getDefault(); this._idleId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => { - let customName = this._store.get_value(this._customRoomItem, - RoomListColumn.NAME); + let customName = this._store.get_value( + this._customRoomItem, + RoomListColumn.NAME); let store = this._store; let startTime = GLib.get_monotonic_time(); while (this._pendingInfos.length > 0) { let roomInfo = this._pendingInfos.shift(); let name = roomInfo.get_name(); - if (name[0] == '#') + if (name[0] === '#') name = name.substr(1, name.length); - if (_strBaseEqual(name, customName)) + if (_strBaseEqual(name, customName)) { store.set_value(this._customRoomItem, - RoomListColumn.NAME, customName = ''); + RoomListColumn.NAME, customName = ''); + } let room = roomManager.lookupRoomByName(roomInfo.get_name(), this._account); - let sensitive = room == null; + let sensitive = !room; let checked = !sensitive; let count = `${roomInfo.get_members_count(null)}`; let { CHECKED, NAME, COUNT, SENSITIVE } = RoomListColumn; let iter = store.insert_with_valuesv(-1, - [CHECKED, NAME, COUNT, SENSITIVE], - [checked, name, count, sensitive]); + [CHECKED, NAME, COUNT, SENSITIVE], + [checked, name, count, sensitive]); store.move_before(iter, this._customRoomItem); - let maxTime = this._filterTerms.length > 0 ? - MS_PER_FILTER_IDLE : MS_PER_IDLE; + let maxTime = this._filterTerms.length > 0 + ? MS_PER_FILTER_IDLE : MS_PER_IDLE; // Limit time spent in idle to leave room for drawing etc. if (GLib.get_monotonic_time() - startTime > 1000 * maxTime) return GLib.SOURCE_CONTINUE; @@ -353,7 +354,7 @@ _checkSpinner() { let loading = this._pendingInfos.length || - (this._account && this._manager.isLoading(this._account)); + this._account && this._manager.isLoading(this._account); this._spinner.active = loading; } diff -Nru polari-3.32.0/src/tabCompletion.js polari-3.34.0/src/tabCompletion.js --- polari-3.32.0/src/tabCompletion.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/tabCompletion.js 2019-09-09 18:44:11.000000000 +0000 @@ -45,7 +45,7 @@ label: row._text, halign: Gtk.Align.START, margin_start: 6, - margin_end: 6 + margin_end: 6, })); this._list.add(row); } @@ -67,8 +67,9 @@ let allocation = this._entry.get_allocation(); let [ret_, x, y] = win.get_origin(); - x += allocation.x + Math.min((layoutX + wordPos.x) / Pango.SCALE, - allocation.width - width); + x += allocation.x + Math.min( + (layoutX + wordPos.x) / Pango.SCALE, + allocation.width - width); y += allocation.y - height; this._popup.move(x, y); this._popup.show(); @@ -100,7 +101,7 @@ label: row._text, halign: Gtk.Align.START, margin_start: 6, - margin_end: 6 + margin_end: 6, })); widgetMap.set(nick, row); } @@ -124,8 +125,8 @@ _onKeyPress(w, event) { let [, keyval] = event.get_keyval(); - if (this._key.length == 0) { - if (keyval == Gdk.KEY_Tab) { + if (this._key.length === 0) { + if (keyval === Gdk.KEY_Tab) { this._start(); return Gdk.EVENT_STOP; } @@ -146,15 +147,15 @@ return Gdk.EVENT_STOP; } - if (Gdk.keyval_to_unicode(keyval) != 0) { + if (Gdk.keyval_to_unicode(keyval) !== 0) { let popupShown = this._popup.visible; this._stop(); // eat keys that would active the entry // when showing the popup return popupShown && - (keyval == Gdk.KEY_Return || - keyval == Gdk.KEY_KP_Enter || - keyval == Gdk.KEY_ISO_Enter); + (keyval === Gdk.KEY_Return || + keyval === Gdk.KEY_KP_Enter || + keyval === Gdk.KEY_ISO_Enter); } return Gdk.EVENT_PROPAGATE; } @@ -164,7 +165,7 @@ if (this._isCommand) return `${row._text} `; - if (this._startPos == 0 || this._isChained) + if (this._startPos === 0 || this._isChained) return `${row._text}: `; return row._text; } @@ -175,7 +176,7 @@ } _filter(row) { - if (this._key.length == 0) + if (this._key.length === 0) return false; return row._casefoldedText.startsWith(this._key); } @@ -205,12 +206,12 @@ this._isCommand = this._key.startsWith('/'); - if (this._startPos == 0) + if (this._startPos === 0) this._endPos = -1; // Chain completions if the current completion directly follows a previous one, // except when one of them was for an IRC command - let previousCompletion = (this._endPos == this._startPos); + let previousCompletion = this._endPos === this._startPos; this._isChained = previousCompletion && !this._isCommand && !this._previousWasCommand; this._list.invalidate_filter(); @@ -218,7 +219,7 @@ let visibleRows = this._list.get_children().filter(c => c.get_child_visible()); let nVisibleRows = visibleRows.length; - if (nVisibleRows == 0) + if (nVisibleRows === 0) return; if (this._isChained) @@ -233,7 +234,7 @@ _onKeynavFailed(w, dir) { if (this._inHandler) return Gdk.EVENT_PROPAGATE; - let count = dir == Gtk.DirectionType.DOWN ? -1 : 1; + let count = dir === Gtk.DirectionType.DOWN ? -1 : 1; this._inHandler = true; this._moveSelection(Gtk.MovementStep.BUFFER_ENDS, count); this._inHandler = false; @@ -247,7 +248,7 @@ } _stop() { - if (this._key.length == 0) + if (this._key.length === 0) return; this._popup.hide(); @@ -259,7 +260,7 @@ } _cancel() { - if (this._key.length == 0) + if (this._key.length === 0) return; if (this._isChained) this._setPreviousCompletionChained(false); diff -Nru polari-3.32.0/src/telepathyClient.js polari-3.34.0/src/telepathyClient.js --- polari-3.32.0/src/telepathyClient.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/telepathyClient.js 2019-09-09 18:44:11.000000000 +0000 @@ -6,6 +6,8 @@ const { RoomManager } = imports.roomManager; const Utils = imports.utils; +const SHELL_CLIENT_PREFIX = 'org.freedesktop.Telepathy.Client.GnomeShell'; + const SASLAuthenticationIface = ' \ \ \ @@ -33,45 +35,48 @@ CLIENT_ACCEPTED: 3, SUCCEEDED: 4, SERVER_FAILED: 5, - CLIENT_FAILED: 6 + CLIENT_FAILED: 6, }; const SASLAbortReason = { INVALID_CHALLENGE: 0, - USER_ABORT: 1 + USER_ABORT: 1, }; class SASLAuthHandler { constructor(channel) { this._channel = channel; - this._proxy = new SASLAuthProxy(Gio.DBus.session, - channel.bus_name, - channel.object_path, - this._onProxyReady.bind(this)); + this._proxy = new SASLAuthProxy( + Gio.DBus.session, + channel.bus_name, + channel.object_path, + this._onProxyReady.bind(this)); } _onProxyReady() { this._proxy.connectSignal('SASLStatusChanged', - this._onSASLStatusChanged.bind(this)); + this._onSASLStatusChanged.bind(this)); let account = this._channel.connection.get_account(); Utils.lookupAccountPassword(account, this._onPasswordReady.bind(this)); } _onPasswordReady(password) { - if (password) - this._proxy.StartMechanismWithDataRemote('X-TELEPATHY-PASSWORD', - password); - else - this._proxy.AbortSASLRemote(SASLAbortReason.USER_ABORT, - 'Password not available', - this._resetPrompt.bind(this)); + if (password) { + this._proxy.StartMechanismWithDataRemote( + 'X-TELEPATHY-PASSWORD', password); + } else { + this._proxy.AbortSASLRemote( + SASLAbortReason.USER_ABORT, + 'Password not available', + this._resetPrompt.bind(this)); + } } _onSASLStatusChanged(proxy, sender, [status]) { let name = this._channel.connection.get_account().display_name; - let statusString = (Object.keys(SASLStatus))[status]; - debug(`Auth status for server "${name}": ${statusString}`); + let statusString = Object.keys(SASLStatus)[status]; + debug(`Auth status for server ${name}: ${statusString}`); switch (status) { case SASLStatus.NOT_STARTED: @@ -98,7 +103,7 @@ account.update_parameters_vardict_async(params, [], (a, res) => { a.update_parameters_vardict_finish(res); account.request_presence_async(Tp.ConnectionPresenceType.AVAILABLE, - 'available', '', null); + 'available', '', null); }); } } @@ -122,7 +127,6 @@ this.set_handler_bypass_approval(false); this.set_observer_recover(true); - this._networkMonitor = Gio.NetworkMonitor.get_default(); this._roomManager = RoomManager.getDefault(); this._roomManager.connect('room-added', (mgr, room) => { if (room.account.connection) @@ -131,33 +135,80 @@ }); this._accountsMonitor = AccountsMonitor.getDefault(); this._accountsMonitor.prepare(this._onPrepared.bind(this)); + + this._shellHandlesPrivateChats = false; + this._monitorShellClient(); + } + + _monitorShellClient() { + // Track whether gnome-shell's built-in chat client is + // running; unfortunately it uses :uniquify-name, so + // we cannot simply use Gio.watch_bus_name() + let conn = this._app.get_dbus_connection(); + conn.signal_subscribe( + 'org.freedesktop.DBus', /* sender */ + 'org.freedesktop.DBus', /* iface */ + 'NameOwnerChanged', /* member */ + '/org/freedesktop/DBus', /* path */ + SHELL_CLIENT_PREFIX, /* arg0 */ + Gio.DBusSignalFlags.MATCH_ARG0_NAMESPACE, + (_conn, _sender, _path, _iface, _signal, params) => { + let [name_, oldOwner_, newOwner] = params.deep_unpack(); + this._shellHandlesPrivateChats = newOwner !== ''; + }); + + conn.call( + 'org.freedesktop.DBus', + '/org/freedesktop/DBus', + 'org.freedesktop.DBus', + 'ListNames', + null, /* params */ + new GLib.VariantType('(as)'), + Gio.DBusCallFlags.NONE, + -1, + null, /* cancellable */ + (_o, res) => { + let names = []; + + try { + [names] = conn.call_finish(res).deep_unpack(); + } catch (e) { + debug(`Failed to list bus names: ${e}`); + } + + this._shellHandlesPrivateChats = + names.some(n => n.startsWith(SHELL_CLIENT_PREFIX)); + }); } _onPrepared() { let actions = [{ name: 'message-user', - handler: this._onQueryActivated.bind(this) + handler: this._onQueryActivated.bind(this), }, { name: 'leave-room', - handler: this._onLeaveActivated.bind(this) + handler: this._onLeaveActivated.bind(this), + }, { + name: 'reconnect-room', + handler: this._onReconnectRoomActivated.bind(this), }, { name: 'connect-account', - handler: this._onConnectAccountActivated.bind(this) + handler: this._onConnectAccountActivated.bind(this), }, { name: 'disconnect-account', - handler: this._onDisconnectAccountActivated.bind(this) + handler: this._onDisconnectAccountActivated.bind(this), }, { name: 'reconnect-account', - handler: this._onReconnectAccountActivated.bind(this) + handler: this._onReconnectAccountActivated.bind(this), }, { name: 'authenticate-account', - handler: this._onAuthenticateAccountActivated.bind(this) + handler: this._onAuthenticateAccountActivated.bind(this), }, { name: 'save-identify-password', - handler: this._onSaveIdentifyPasswordActivated.bind(this) + handler: this._onSaveIdentifyPasswordActivated.bind(this), }, { name: 'discard-identify-password', - handler: this._onDiscardIdentifyPasswordActivated.bind(this) + handler: this._onDiscardIdentifyPasswordActivated.bind(this), }]; actions.forEach(a => { this._app.lookup_action(a.name).connect('activate', a.handler); @@ -187,40 +238,30 @@ this.register(); this._accountsMonitor.connect('account-status-changed', - this._onAccountStatusChanged.bind(this)); - this._accountsMonitor.connect('account-added', (mon, account) => { - this._connectAccount(account); - }); - this._accountsMonitor.connect('account-shown', (mon, account) => { - this._connectAccount(account); - }); + this._onAccountStatusChanged.bind(this)); + this._accountsMonitor.connect('account-reachable-changed', + this._onAccountReachableChanged.bind(this)); this._accountsMonitor.visibleAccounts.forEach(a => { this._onAccountStatusChanged(this._accountsMonitor, a); }); - - this._networkMonitor.connect('network-changed', - this._onNetworkChanged.bind(this)); - if (this._networkMonitor.state_valid) - this._onNetworkChanged(this._networkMonitor, - this._networkMonitor.network_available); } - _onNetworkChanged(mon, connected) { - let presence = connected ? - Tp.ConnectionPresenceType.AVAILABLE : - Tp.ConnectionPresenceType.OFFLINE; - debug(`Network changed to ${connected ? 'available' : 'unavailable'}`); + _onAccountReachableChanged(mon, account) { + let presence = account.reachable + ? Tp.ConnectionPresenceType.AVAILABLE + : Tp.ConnectionPresenceType.OFFLINE; + debug(`Account ${account.display_name} is now ${account.reachable + ? 'reachable' + : 'unreachable'}`); - this._accountsMonitor.visibleAccounts.forEach(a => { - this._setAccountPresence(a, presence); - }); + this._setAccountPresence(account, presence); } _onAccountStatusChanged(mon, account) { - if (account.connection_status != Tp.ConnectionStatus.CONNECTED) + if (account.connection_status !== Tp.ConnectionStatus.CONNECTED) return; - Utils.lookupIdentifyPassword(account, (password) => { + Utils.lookupIdentifyPassword(account, password => { if (password) this._sendIdentify(account, password); else @@ -255,7 +296,7 @@ _connectRooms(account) { this._roomManager.rooms.forEach(room => { - if (account == null || room.account == account) + if (!account || room.account === account) this._connectRoom(room); }); } @@ -286,10 +327,15 @@ req.ensure_and_observe_channel_async(preferredHandler, cancellable, (o, res) => { let channel = null; + let room = this._roomManager.lookupRoom(roomId); try { channel = req.ensure_and_observe_channel_finish(res); + room.channel_error = ''; } catch (e) { debug(`Failed to ensure channel: ${e.message}`); + + if (room) + room.channel_error = Tp.error_get_dbus_name(e.code); } if (callback) @@ -299,7 +345,7 @@ } _sendIdentify(account, password) { - let settings = this._accountsMonitor.getAccountSettings(account); + let { settings } = account; let params = account.dup_parameters_vardict().deep_unpack(); let username = settings.get_string('identify-username') || @@ -308,7 +354,7 @@ let contactName = settings.get_string('identify-botname'); let command = settings.get_string('identify-command'); this._requestChannel(account, Tp.HandleType.CONTACT, contactName, - (channel) => { + channel => { if (!channel) return; @@ -316,7 +362,7 @@ let activeNick = room.channel.connection.self_contact.alias; // Omit username parameter when it matches the default, to // support NickServ bots that don't support the parameter at all - if (!alwaysSendUsername && activeNick == username) + if (!alwaysSendUsername && activeNick === username) username = null; room.send_identify_message_async(command, username, password, (r, res) => { try { @@ -435,7 +481,7 @@ if (!data) return; - Utils.storeIdentifyPassword(account, data.password, (res) => { + Utils.storeIdentifyPassword(account, data.password, res => { if (res) this._saveIdentifySettings(account, data); @@ -444,14 +490,14 @@ } _saveIdentifySettings(account, data) { - let settings = this._accountsMonitor.getAccountSettings(account); + let { settings } = account; - if (data.botname == 'NickServ') + if (data.botname === 'NickServ') settings.reset('identify-botname'); else settings.set_string('identify-botname', data.botname); - if (data.command == 'identify') + if (data.command === 'identify') settings.reset('identify-command'); else settings.set_string('identify-command', data.command); @@ -470,17 +516,23 @@ this._app.withdraw_notification(this._getIdentifyNotificationID(accountPath)); } + _onReconnectRoomActivated(action, parameter) { + let roomId = parameter.deep_unpack(); + let room = this._roomManager.lookupRoom(roomId); + this._connectRoom(room); + } + _isAuthChannel(channel) { let channelType = channel.get_channel_type(); - return channelType == Tp.IFACE_CHANNEL_TYPE_SERVER_AUTHENTICATION; + return channelType === Tp.IFACE_CHANNEL_TYPE_SERVER_AUTHENTICATION; } _processRequest(context, connection, channels, processChannel) { - if (connection.protocol_name != 'irc') { + if (connection.protocol_name !== 'irc') { let message = 'Not implementing non-IRC protocols'; context.fail(new Tp.Error({ code: Tp.Error.NOT_IMPLEMENTED, - message: message + message, })); return; } @@ -489,7 +541,7 @@ let message = 'Only one authentication channel per connection allowed'; context.fail(new Tp.Error({ code: Tp.Error.INVALID_ARGUMENT, - message: message + message, })); return; } @@ -517,9 +569,9 @@ } channel.connect('message-received', - this._onMessageReceived.bind(this)); + this._onMessageReceived.bind(this)); channel.connect('pending-message-removed', - this._onPendingMessageRemoved.bind(this)); + this._onPendingMessageRemoved.bind(this)); this._roomManager.ensureRoomForChannel(channel, 0); }); @@ -539,7 +591,7 @@ this._app.activate(); this._roomManager.ensureRoomForChannel(channel, time); - //channel.join_async('', null); + // channel.join_async('', null); }); } @@ -559,11 +611,11 @@ let params = [ room.account.object_path, room.channel_name, - Utils.getTpEventTime() + Utils.getTpEventTime(), ]; let actionName, paramFormat; - if (room.type == Tp.HandleType.ROOM) { + if (room.type === Tp.HandleType.ROOM) { actionName = 'app.join-room'; paramFormat = '(ssu)'; } else { @@ -582,10 +634,10 @@ let data = { botname: room.channel.target_contact.alias, - command: command, + command, username: username || room.channel.connection.self_contact.alias, - usernameSupported: username != null, - password: password + usernameSupported: username !== null, + password, }; this._pendingBotPasswords.set(accountPath, data); @@ -599,8 +651,9 @@ let text = _('Identification will happen automatically the next time you connect to %s').format(accountName); let notification = this._createNotification(room, summary, text); - notification.add_button_with_target(_('Save'), 'app.save-identify-password', - new GLib.Variant('o', accountPath)); + notification.add_button_with_target(_('Save'), + 'app.save-identify-password', + new GLib.Variant('o', accountPath)); this._app.send_notification(this._getIdentifyNotificationID(accountPath), notification); } @@ -620,9 +673,19 @@ if (!room.should_highlight_message(nick, text)) return; - /* Translators: This is the title of the notification announcing a newly - received message, in the form "user-nickname in room-display-name" */ - let summary = _('%s in %s').format(nick, room.display_name); + if (this._shellHandlesPrivateChats && room.type === Tp.HandleType.CONTACT) + return; + + let summary; + + if (room.type === Tp.HandleType.CONTACT) { + summary = '%s'.format(nick); + } else { + /* Translators: This is the title of the notification announcing a newly + received message, in the form "user-nickname in room-display-name" */ + summary = _('%s in %s').format(nick, room.display_name); + } + let notification = this._createNotification(room, summary, text); this._app.send_notification(this._getPendingNotificationID(room, id), notification); } diff -Nru polari-3.32.0/src/userList.js polari-3.34.0/src/userList.js --- polari-3.32.0/src/userList.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/userList.js 2019-09-09 18:44:11.000000000 +0000 @@ -1,12 +1,10 @@ /* exported UserList UserListPopover UserDetails UserPopover */ const { - Gio, GLib, GObject, Gtk, Pango, Polari, TelepathyGLib: Tp + Gio, GLib, GObject, Gtk, Pango, Polari, TelepathyGLib: Tp, } = imports.gi; -const READWRITE = GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE; - -const MAX_USERS_SHOWN = 8; +const FILTER_ENTRY_THRESHOLD = 8; const MAX_USERS_WIDTH_CHARS = 17; var UserListPopover = GObject.registerClass( @@ -16,9 +14,10 @@ this._createWidget(); - this.connect('closed', () => this._entry.text = ''); + this.connect('closed', () => (this._entry.text = '')); this.connect('map', () => { this._revealer.transition_duration = 0; + this._updateContentHeight(); this._ensureUserList(); }); this._revealer.connect('notify::child-revealed', () => { @@ -31,24 +30,28 @@ let toplevel = this.get_toplevel(); toplevel.connect('notify::active-room', - this._activeRoomChanged.bind(this)); + this._activeRoomChanged.bind(this)); + toplevel.connect('notify::view-height', + this._updateContentHeight.bind(this)); } _createWidget() { this._box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, - spacing: 6 + spacing: 6, }); this.add(this._box); this._revealer = new Gtk.Revealer(); this._box.add(this._revealer); - this._userListBin = new Gtk.Frame({ shadow_type: Gtk.ShadowType.NONE }); + this._userListBin = new Gtk.Frame({ + shadow_type: Gtk.ShadowType.NONE, + }); this._box.add(this._userListBin); this._entry = new Gtk.SearchEntry({ - primary_icon_name: 'avatar-default-symbolic' + primary_icon_name: 'avatar-default-symbolic', }); this._entry.connect('search-changed', this._updateFilter.bind(this)); this._revealer.add(this._entry); @@ -64,28 +67,42 @@ this._userList = null; } + _updateContentHeight() { + if (!this._userList) + return; + if (!this.get_mapped()) + return; + + let viewHeight = this.get_toplevel().view_height; + let [popoverHeight] = this.get_preferred_height(); + let [userListHeight] = this._userList.get_preferred_height(); + let chromeHeight = popoverHeight - userListHeight; + this._userList.max_content_height = viewHeight - chromeHeight; + } + _ensureUserList() { if (this._userList) return; let room = this.get_toplevel().active_room; - if (!room || room.type != Tp.HandleType.ROOM) + if (!room || room.type !== Tp.HandleType.ROOM) return; this._userList = new UserList(room); this._userListBin.add(this._userList); this._userList.vadjustment.connect('changed', - this._updateEntryVisibility.bind(this)); + this._updateEntryVisibility.bind(this)); this._updateEntryVisibility(); + this._updateContentHeight(); } _updateEntryVisibility() { if (!this._userList) return; - let reveal = this._entry.text != '' || - this._userList.numRows > MAX_USERS_SHOWN; + let reveal = this._entry.text !== '' || + this._userList.numRows > FILTER_ENTRY_THRESHOLD; this._revealer.reveal_child = reveal; } @@ -105,23 +122,21 @@ 'fullnameLabel', 'lastLabel', 'notificationLabel', - 'messageButton' + 'messageButton', ], Properties: { - 'expanded': GObject.ParamSpec.boolean('expanded', - 'expanded', - 'expanded', - READWRITE, - false), - 'notifications-enabled': GObject.ParamSpec.boolean('notifications-enabled', - 'notifications-enabled', - 'notifications-enabled', - READWRITE, - false) - } + 'expanded': GObject.ParamSpec.boolean( + 'expanded', 'expanded', 'expanded', + GObject.ParamFlags.READWRITE, + false), + 'notifications-enabled': GObject.ParamSpec.boolean( + 'notifications-enabled', 'notifications-enabled', 'notifications-enabled', + GObject.ParamFlags.READWRITE, + false), + }, }, class UserDetails extends Gtk.Frame { _init(params = {}) { - let user = params.user; + let { user } = params; delete params.user; this._expanded = false; @@ -134,7 +149,7 @@ this.user = user; this._messageButton.connect('clicked', - this._onMessageButtonClicked.bind(this)); + this._onMessageButtonClicked.bind(this)); this._updateButtonVisibility(); this._detailsGrid.hide(); @@ -148,7 +163,7 @@ // eslint-disable-next-line camelcase set notifications_enabled(value) { - if (this._notificationsEnabled == value) + if (this._notificationsEnabled === value) return; this._notificationsEnabled = value; @@ -159,7 +174,7 @@ } set user(user) { - if (this._user == user) + if (this._user === user) return; if (this._user) @@ -168,17 +183,18 @@ this._user = user; - if (this._user) + if (this._user) { this._selfContactChangedId = this._user.connection.connect('notify::self-contact', - this._updateButtonVisibility.bind(this)); + this._updateButtonVisibility.bind(this)); + } if (this.expanded) this._expand(); this._updateButtonVisibility(); - this._notificationLabel.visible = this._user == null; - this._lastLabel.visible = this._user != null; + this._notificationLabel.visible = this._user === null; + this._lastLabel.visible = this._user !== null; } set nickname(nickname) { @@ -196,7 +212,7 @@ } set expanded(v) { - if (v == this._expanded) + if (v === this._expanded) return; this._expanded = v; @@ -216,12 +232,14 @@ this._cancellable = new Gio.Cancellable(); - if (this._user) - this._user.request_contact_info_async(this._cancellable, - this._onContactInfoReady.bind(this)); - //TODO: else use this._nickname to query tracker - else + if (this._user) { + this._user.request_contact_info_async( + this._cancellable, + this._onContactInfoReady.bind(this)); + } else { + // TODO: else use this._nickname to query tracker this._revealDetails(); + } } _unexpand() { @@ -233,33 +251,44 @@ } _formatLast(seconds) { - if (seconds < 60) - return ngettext('%d second ago', - '%d seconds ago', seconds).format(seconds); + if (seconds < 60) { + return ngettext( + '%d second ago', + '%d seconds ago', seconds).format(seconds); + } let minutes = seconds / 60; - if (minutes < 60) - return ngettext('%d minute ago', - '%d minutes ago', minutes).format(minutes); + if (minutes < 60) { + return ngettext( + '%d minute ago', + '%d minutes ago', minutes).format(minutes); + } let hours = minutes / 60; - if (hours < 24) - return ngettext('%d hour ago', - '%d hours ago', hours).format(hours); + if (hours < 24) { + return ngettext( + '%d hour ago', + '%d hours ago', hours).format(hours); + } let days = hours / 24; - if (days < 7) - return ngettext('%d day ago', - '%d days ago', days).format(days); + if (days < 7) { + return ngettext( + '%d day ago', + '%d days ago', days).format(days); + } let weeks = days / 7; - if (days < 30) - return ngettext('%d week ago', - '%d weeks ago', weeks).format(weeks); + if (days < 30) { + return ngettext( + '%d week ago', + '%d weeks ago', weeks).format(weeks); + } let months = days / 30; - return ngettext('%d month ago', - '%d months ago', months).format(months); + return ngettext( + '%d month ago', + '%d months ago', months).format(months); } _onContactInfoReady() { @@ -268,10 +297,10 @@ let fn, last; let info = this._user.get_contact_info(); for (let i = 0; i < info.length; i++) { - if (info[i].field_name == 'fn') - fn = info[i].field_value[0]; - else if (info[i].field_name == 'x-idle-time') - last = info[i].field_value[0]; + if (info[i].field_name === 'fn') + [fn] = info[i].field_value; + else if (info[i].field_name === 'x-idle-time') + [last] = info[i].field_value; } if (!fn) @@ -305,7 +334,7 @@ account.get_object_path(), this._user.alias, '', - time + time, ])); } @@ -316,7 +345,7 @@ return; } - if (this._user == this._user.connection.self_contact) { + if (this._user === this._user.connection.self_contact) { this._messageButton.visible = false; this._messageButton.sensitive = true; } else { @@ -332,8 +361,8 @@ 'nickLabel', 'statusLabel', 'notifyButton', - 'userDetails' - ] + 'userDetails', + ], }, class UserPopover extends Gtk.Popover { _init(params) { this._room = params.room; @@ -363,10 +392,10 @@ } set nickname(nickname) { - if (this._nickname == nickname) + if (this._nickname === nickname) return; - if (nickname == null) + if (nickname === null) return; this._nickname = nickname; @@ -380,22 +409,23 @@ } _setBasenick(basenick) { - if (this._basenick == basenick) + if (this._basenick === basenick) return; this._basenick = basenick; - if (this._roomStatusChangedId > 0) - this._userTracker.unwatchRoomStatus(this._room, this._roomStatusChangedId); - this._roomStatusChangedId = - this._userTracker.watchRoomStatus(this._room, this._basenick, - this._onStatusChanged.bind(this)); + if (this._roomStatusChangedId > 0) { + this._userTracker.unwatchRoomStatus( + this._room, this._roomStatusChangedId); + } + this._roomStatusChangedId = this._userTracker.watchRoomStatus( + this._room, this._basenick, this._onStatusChanged.bind(this)); if (this._globalStatusChangedId > 0) this._userTracker.disconnect(this._globalStatusChangedId); this._globalStatusChangedId = this._userTracker.connect(`status-changed::${basenick}`, - this._onStatusChanged.bind(this)); + this._onStatusChanged.bind(this)); if (this._contactsChangedId > 0) this._userTracker.disconnect(this._contactsChangedId); @@ -414,19 +444,19 @@ _onStatusChanged() { let status = this._userTracker.getNickStatus(this._nickname); - let roomStatus = this._userTracker.getNickRoomStatus(this._nickname, - this._room); + let roomStatus = this._userTracker.getNickRoomStatus( + this._nickname, this._room); let label; - if (status != roomStatus) + if (status !== roomStatus) label = _('Available in another room.'); - else if (status == Tp.ConnectionPresenceType.AVAILABLE) + else if (status === Tp.ConnectionPresenceType.AVAILABLE) label = _('Online'); else label = _('Offline'); this._statusLabel.label = label; - this._nickLabel.sensitive = (status == Tp.ConnectionPresenceType.AVAILABLE); + this._nickLabel.sensitive = status === Tp.ConnectionPresenceType.AVAILABLE; } _updateDetailsContact() { @@ -447,10 +477,10 @@ this._revealer.reveal_child = false; }); this.connect('state-flags-changed', - this._updateArrowVisibility.bind(this)); + this._updateArrowVisibility.bind(this)); this._revealer.connect('notify::reveal-child', - this._onExpandedChanged.bind(this)); + this._onExpandedChanged.bind(this)); } get user() { @@ -476,11 +506,11 @@ margin_start: 4, margin_top: 4, margin_bottom: 4, - spacing: 4 + spacing: 4, }); this._arrow = new Gtk.Arrow({ arrow_type: Gtk.ArrowType.RIGHT, - no_show_all: true + no_show_all: true, }); this._label = new Gtk.Label({ label: this._user.alias, @@ -488,7 +518,7 @@ hexpand: true, use_markup: true, ellipsize: Pango.EllipsizeMode.END, - max_width_chars: MAX_USERS_WIDTH_CHARS + max_width_chars: MAX_USERS_WIDTH_CHARS, }); hbox.add(this._label); hbox.add(this._arrow); @@ -529,8 +559,11 @@ this._label.label = this._user.alias; } else { let preMatch = this._user.alias.substring(0, filterIndex); - let theMatch = this._user.alias.substring(filterIndex, filterIndex + this._filter.length); - let postMatch = this._user.alias.substring(filterIndex + this._filter.length); + let theMatch = this._user.alias.substring( + filterIndex, + filterIndex + this._filter.length); + let postMatch = this._user.alias.substring( + filterIndex + this._filter.length); this._label.label = `${preMatch}${theMatch}<${'/'}b>${postMatch}`; } } @@ -561,36 +594,34 @@ hexpand: true, shadow_type: Gtk.ShadowType.ETCHED_IN, hscrollbar_policy: Gtk.PolicyType.NEVER, - propagate_natural_width: true + propagate_natural_height: true, + propagate_natural_width: true, }); this._list = new Gtk.ListBox({ vexpand: true }); this.add(this._list); - let placeholder = new Gtk.Box({ halign: Gtk.Align.CENTER, valign: Gtk.Align.CENTER, orientation: Gtk.Orientation.VERTICAL, - visible: true + margin: 32, + spacing: 6, + visible: true, }); placeholder.add(new Gtk.Image({ icon_name: 'edit-find-symbolic', pixel_size: 64, - visible: true + visible: true, })); placeholder.add(new Gtk.Label({ - label: _('No results'), - visible: true + label: _('No Results'), + visible: true, })); - placeholder.get_style_context().add_class('dim-label'); + placeholder.get_style_context().add_class('placeholder'); this._list.set_placeholder(placeholder); - this._updateHeightId = 0; - this._list.connect('size-allocate', - this._updateContentHeight.bind(this)); - this._list.set_selection_mode(Gtk.SelectionMode.NONE); this._filter = ''; this._list.set_filter_func(this._filterRows.bind(this)); @@ -605,25 +636,25 @@ let roomSignals = [{ name: 'member-renamed', - handler: this._onMemberRenamed.bind(this) + handler: this._onMemberRenamed.bind(this), }, { name: 'member-disconnected', - handler: this._onMemberRemoved.bind(this) + handler: this._onMemberRemoved.bind(this), }, { name: 'member-kicked', - handler: this._onMemberRemoved.bind(this) + handler: this._onMemberRemoved.bind(this), }, { name: 'member-banned', - handler: this._onMemberRemoved.bind(this) + handler: this._onMemberRemoved.bind(this), }, { name: 'member-left', - handler: this._onMemberRemoved.bind(this) + handler: this._onMemberRemoved.bind(this), }, { name: 'member-joined', - handler: this._onMemberJoined.bind(this) + handler: this._onMemberJoined.bind(this), }, { name: 'notify::channel', - handler: this._onChannelChanged.bind(this) + handler: this._onChannelChanged.bind(this), }]; this._roomSignals = []; roomSignals.forEach(signal => { @@ -639,8 +670,7 @@ } _onDestroy() { - for (let i = 0; i < this._roomSignals.length; i++) - this._room.disconnect(this._roomSignals[i]); + this._roomSignals.forEach(id => this._room.disconnect(id)); this._roomSignals = []; } @@ -649,30 +679,6 @@ this._list.invalidate_filter(); } - _updateContentHeight() { - if (this._updateHeightId != 0) - return; - - this._updateHeightId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => { - let topRow = this._list.get_row_at_y(this.vadjustment.value); - let membersShown = Math.min(this.numRows, MAX_USERS_SHOWN); - // topRow is unset when all rows are hidden due to filtering, - // base height on the first membersShown rows in that case - let index = 0; - if (topRow) - index = Math.min(topRow.get_index(), this.numRows - membersShown); - let height = 0; - - for (let i = 0; i < membersShown; i++) - height += this._list.get_row_at_index(index + i).get_allocated_height(); - - this.max_content_height = height; - this.propagate_natural_height = true; - this._updateHeightId = 0; - return GLib.SOURCE_REMOVE; - }); - } - _onMemberRenamed(room, oldMember, newMember) { this._removeMember(oldMember); this._addMember(newMember); @@ -712,7 +718,7 @@ } _setActiveRow(row) { - if (this._activeRow && this._activeRow != row) + if (this._activeRow && this._activeRow !== row) this._activeRow.expand = false; this._activeRow = row; } diff -Nru polari-3.32.0/src/userTracker.js polari-3.34.0/src/userTracker.js --- polari-3.32.0/src/userTracker.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/userTracker.js 2019-09-09 18:44:11.000000000 +0000 @@ -18,9 +18,9 @@ this._accountsMonitor = AccountsMonitor.getDefault(); this._accountsMonitor.connect('account-added', - this._onAccountAdded.bind(this)); + this._onAccountAdded.bind(this)); this._accountsMonitor.connect('account-removed', - this._onAccountRemoved.bind(this)); + this._onAccountRemoved.bind(this)); this._accountsMonitor.accounts.forEach(a => { this._onAccountAdded(this._accountsMonitor, a); @@ -48,13 +48,13 @@ Signals: { 'status-changed': { flags: GObject.SignalFlags.DETAILED, - param_types: [GObject.TYPE_STRING, GObject.TYPE_INT] + param_types: [GObject.TYPE_STRING, GObject.TYPE_INT], }, 'contacts-changed': { flags: GObject.SignalFlags.DETAILED, - param_types: [GObject.TYPE_STRING] - } - } + param_types: [GObject.TYPE_STRING], + }, + }, }, class UserTracker extends GObject.Object { _init(account) { super._init(); @@ -91,32 +91,32 @@ } _onRoomAdded(roomManager, room) { - if (room.account != this._account) + if (room.account !== this._account) return; this._ensureRoomMappingForRoom(room); let roomSignals = [{ name: 'notify::channel', - handler: this._onChannelChanged.bind(this) + handler: this._onChannelChanged.bind(this), }, { name: 'member-renamed', - handler: this._onMemberRenamed.bind(this) + handler: this._onMemberRenamed.bind(this), }, { name: 'member-disconnected', - handler: this._onMemberLeft.bind(this) + handler: this._onMemberLeft.bind(this), }, { name: 'member-kicked', - handler: this._onMemberLeft.bind(this) + handler: this._onMemberLeft.bind(this), }, { name: 'member-banned', - handler: this._onMemberLeft.bind(this) + handler: this._onMemberLeft.bind(this), }, { name: 'member-joined', - handler: this._onMemberJoined.bind(this) + handler: this._onMemberJoined.bind(this), }, { name: 'member-left', - handler: this._onMemberLeft.bind(this) + handler: this._onMemberLeft.bind(this), }]; let signalIds = this._getRoomSignals(room); @@ -141,12 +141,12 @@ } let members; - if (room.type == Tp.HandleType.ROOM) + if (room.type === Tp.HandleType.ROOM) members = room.channel.group_dup_members_contacts(); else members = [room.channel.connection.self_contact, room.channel.target_contact]; - /*keep track of initial members in the room, both locally and + /* keep track of initial members in the room, both locally and globally*/ members.forEach(m => this._trackMember(m, room)); } @@ -154,7 +154,7 @@ _clearUsersFromRoom(room) { let map = this._getRoomContacts(room); for (let [, contacts] of map) - contacts.slice().forEach((m) => this._untrackMember(m, room)); + contacts.slice().forEach(m => this._untrackMember(m, room)); } _ensureRoomMappingForRoom(room) { @@ -163,7 +163,7 @@ this._roomData.set(room, { contactMapping: new Map(), handlerMapping: new Map(), - roomSignals: [] + roomSignals: [], }); } @@ -183,9 +183,10 @@ _runHandlers(room, member, status) { let baseNick = Polari.util_get_basenick(member.alias); let roomHandlers = this._getRoomHandlers(room); - for (let [, info] of roomHandlers) - if (!info.nickName || info.nickName == baseNick) + for (let [, info] of roomHandlers) { + if (!info.nickName || info.nickName === baseNick) info.handler(baseNick, status); + } } _pushMember(map, baseNick, member) { @@ -200,16 +201,16 @@ let status = Tp.ConnectionPresenceType.AVAILABLE; let roomMap = this._getRoomContacts(room); - if (this._pushMember(roomMap, baseNick, member) == 1) + if (this._pushMember(roomMap, baseNick, member) === 1) this._runHandlers(room, member, status); // HACK: Telepathy doesn't notify on member changes for private chats, // so approximate the online status in this case by not adding // the contact to the global map, and removing it from the room // map when the global count drops to 0 (see _untrackMember) - if (room.type == Tp.HandleType.ROOM) { + if (room.type === Tp.HandleType.ROOM) { let map = this._baseNickContacts; - if (this._pushMember(map, baseNick, member) == 1) { + if (this._pushMember(map, baseNick, member) === 1) { this.emit(`status-changed::${baseNick}`, baseNick, status); if (this._shouldNotifyNick(member.alias)) @@ -237,13 +238,13 @@ let roomMap = this._getRoomContacts(room); let [found, nContacts] = this._popMember(roomMap, baseNick, member); - if (found && nContacts == 0) + if (found && nContacts === 0) this._runHandlers(room, member, status); let map = this._baseNickContacts; [found, nContacts] = this._popMember(map, baseNick, member); if (found) { - if (nContacts == 0) { + if (nContacts === 0) { this.emit(`status-changed::${baseNick}`, member.alias, status); this._setNotifyActionEnabled(member.alias, true); @@ -263,9 +264,9 @@ let baseNick = Polari.util_get_basenick(nickName); let contacts = this._baseNickContacts.get(baseNick) || []; - return contacts.length == 0 ? - Tp.ConnectionPresenceType.OFFLINE : - Tp.ConnectionPresenceType.AVAILABLE; + return contacts.length === 0 + ? Tp.ConnectionPresenceType.OFFLINE + : Tp.ConnectionPresenceType.AVAILABLE; } getNickRoomStatus(nickName, room) { @@ -274,9 +275,9 @@ this._ensureRoomMappingForRoom(room); let contacts = this._getRoomContacts(room).get(baseNick) || []; - return contacts.length == 0 ? - Tp.ConnectionPresenceType.OFFLINE : - Tp.ConnectionPresenceType.AVAILABLE; + return contacts.length === 0 + ? Tp.ConnectionPresenceType.OFFLINE + : Tp.ConnectionPresenceType.AVAILABLE; } lookupContact(nickName) { @@ -286,11 +287,7 @@ if (!contacts.length) return null; - for (let i = 0; i < contacts.length; i++) - if (contacts[i].alias == nickName) - return contacts[i]; - - return contacts[0]; + return contacts.find(c => c.alias === nickName) || contacts[0]; } watchRoomStatus(room, baseNick, callback) { @@ -298,7 +295,7 @@ this._getRoomHandlers(room).set(++this._handlerCounter, { nickName: baseNick, - handler: callback + handler: callback, }); return this._handlerCounter; @@ -310,7 +307,7 @@ this._getRoomHandlers(room).delete(handlerID); } - _notifyNickAvailable (member, room) { + _notifyNickAvailable(member, room) { let notification = new Gio.Notification(); notification.set_title(_('User is online')); notification.set_body(_('User %s is now online.').format(member.alias)); @@ -318,7 +315,7 @@ let param = GLib.Variant.new('(ssu)', [ this._account.get_object_path(), room.channel_name, - Utils.getTpEventTime() + Utils.getTpEventTime(), ]); notification.set_default_action_and_target('app.join-room', param); @@ -349,13 +346,13 @@ if (!this._app.lookup_action(name)) { let status = this.getNickStatus(nickName); - let enabled = status == Tp.ConnectionPresenceType.OFFLINE; + let enabled = status === Tp.ConnectionPresenceType.OFFLINE; let state = new GLib.Variant('b', false); let action = new Gio.SimpleAction({ - name: name, - enabled: enabled, - state: state + name, + enabled, + state, }); action.connect('notify::enabled', () => { diff -Nru polari-3.32.0/src/utils.js polari-3.34.0/src/utils.js --- polari-3.32.0/src/utils.js 2019-03-11 23:17:51.000000000 +0000 +++ polari-3.34.0/src/utils.js 2019-09-09 18:44:11.000000000 +0000 @@ -55,15 +55,14 @@ // a lot of false positives, so whitelist some useful ones and hope nobody complains :-) const _schemeWhitelist = ['geo', 'mailto', 'man', 'info', 'ghelp', 'help']; -/* eslint-disable prefer-template */ const _urlRegexp = new RegExp( - '(^|' + _leadingJunk + ')' + + `(^|${_leadingJunk})` + '(' + '(?:' + '(?:[a-z]+)://' + // scheme:// '|' + '(?:' + - _schemeWhitelist.join('|') + // scheme: + `${_schemeWhitelist.join('|')}` + // scheme: '):' + '|' + 'www\\d{0,3}[.]' + // www. @@ -73,21 +72,20 @@ '(?:' + // one or more: '[^\\s()<>]+' + // run of non-space non-() '|' + // or - _balancedParens + // balanced parens + `${_balancedParens}` + // balanced parens ')+' + '(?:' + // end with: - _balancedParens + // balanced parens + `${_balancedParens}` + // balanced parens '|' + // or - _notTrailingJunk + // last non-junk char + `${_notTrailingJunk}` + // last non-junk char ')' + ')', 'gi'); -/* eslint-enable prefer-template */ const _channelRegexp = new RegExp('(^| )#([\\w\\+\\.-]+)', 'g'); -let _gpasteExpire = undefined; +let _gpasteExpire; -let _inFlatpakSandbox = undefined; +let _inFlatpakSandbox; function isFlatpakSandbox() { if (_inFlatpakSandbox === undefined) @@ -96,10 +94,10 @@ } function getTpEventTime() { - let time = Gtk.get_current_event_time (); - if (time == 0) + let time = Gtk.get_current_event_time(); + if (time === 0) return GLib.MAXUINT32; - return Tp.user_action_time_from_x11 (time); + return Tp.user_action_time_from_x11(time); } function storeAccountPassword(account, password, callback) { @@ -121,7 +119,7 @@ callback(success); } catch (e) { let name = account.display_name; - log(`Failed to store password for account "${name}": ${e.message}`); + log(`Failed to store password for account ${name}: ${e.message}`); callback(false); } }); @@ -166,12 +164,13 @@ function findChannels(str, server) { let res = [], match; - while ((match = _channelRegexp.exec(str))) + while ((match = _channelRegexp.exec(str))) { res.push({ url: `irc://${server}/${match[2]}`, name: `#${match[2]}`, - pos: match.index + match[1].length + pos: match.index + match[1].length, }); + } return res; } @@ -179,9 +178,9 @@ let app = Gio.Application.get_default(); try { if (app.active_window) - Gtk.show_uri_on_window (app.active_window, url, timestamp); + Gtk.show_uri_on_window(app.active_window, url, timestamp); else - Gtk.show_uri (Gdk.Screen.get_default(), url, timestamp); + Gtk.show_uri(Gdk.Screen.get_default(), url, timestamp); } catch (e) { let n = new AppNotifications.SimpleOutput(_('Failed to open link')); app.notificationQueue.addNotification(n); @@ -193,12 +192,12 @@ let normalized = str.trim().toLowerCase().replace(/\s+/g, ' '); let newTerms = normalized ? normalized.split(' ') : []; - let changed = newTerms.length != terms.length; + let changed = newTerms.length !== terms.length; for (let i = 0; i < terms.length && !changed; i++) - changed = terms[i] != newTerms[i]; + changed = terms[i] !== newTerms[i]; if (changed) - terms.splice.apply(terms, [0, terms.length, ...newTerms]); + terms.splice(0, terms.length, ...newTerms); return changed; } @@ -207,8 +206,8 @@ let session = new Soup.Session(); let paramUrl = `${GPASTE_BASEURL}api/json/parameter/expire`; let message = Soup.form_request_new_from_hash('GET', paramUrl, {}); - session.queue_message(message, (s, message) => { - if (message.status_code != Soup.KnownStatusCode.OK) { + session.queue_message(message, () => { + if (message.status_code !== Soup.KnownStatusCode.OK) { callback(false); return; } @@ -233,7 +232,7 @@ } function gpaste(text, title, callback) { - if (_gpasteExpire == undefined) { + if (_gpasteExpire === undefined) { _getGpasteExpire(success => { if (success) gpaste(text, title, callback); @@ -247,17 +246,17 @@ title = `${title.substr(0, MAX_PASTE_TITLE_LENGTH - 1)}…`; let params = { - title: title, + title, data: text, expire: _gpasteExpire, - language: 'text' + language: 'text', }; let session = new Soup.Session(); let createUrl = `${GPASTE_BASEURL}api/json/create`; let message = Soup.form_request_new_from_hash('POST', createUrl, params); - session.queue_message(message, (s, message) => { - if (message.status_code != Soup.KnownStatusCode.OK) { + session.queue_message(message, () => { + if (message.status_code !== Soup.KnownStatusCode.OK) { callback(null); return; } @@ -283,8 +282,8 @@ } let params = { - title: title, - image: GLib.base64_encode(buffer) + title, + image: GLib.base64_encode(buffer), }; let session = new Soup.Session(); @@ -293,8 +292,8 @@ let requestHeaders = message.request_headers; requestHeaders.append('Authorization', `Client-ID ${IMGUR_CLIENT_ID}`); - session.queue_message(message, (s, message) => { - if (message.status_code != Soup.KnownStatusCode.OK) { + session.queue_message(message, () => { + if (message.status_code !== Soup.KnownStatusCode.OK) { callback(null); return; }