Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/majn/telegram-purple.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2019-03-02 03:36:26 +0300
committerBen Wiederhake <BenWiederhake.GitHub@gmx.de>2019-03-02 03:36:26 +0300
commitd3d090917df22876fad6088ab53c4c914bee2acf (patch)
treeba3f75b0b9f66b7ad93c82cfb2b292c5cbc31fd9
parent811a5d1fc5d00e3a97dbfd06edde5c613f3a4dee (diff)
parent42f9e9a3f72365579ecdec3c0fc95a6d79c896fb (diff)
Merge branch 'dev-1.4.0'v1.4.1
-rw-r--r--.gitignore3
-rw-r--r--.travis.yml31
-rw-r--r--AUTHORS4
-rw-r--r--CHANGELOG.md16
-rw-r--r--HACKING.md46
-rw-r--r--Makefile.in146
-rw-r--r--Makefile.mingw173
-rw-r--r--Makefile.tgl.mingw116
-rw-r--r--README.md118
-rwxr-xr-xautogen.sh24
-rw-r--r--config.h.in9
-rw-r--r--config.h.mingw116
-rw-r--r--config.h.tgl.mingw185
-rwxr-xr-xconfigure259
-rw-r--r--configure.ac35
-rw-r--r--debian/.gitignore8
-rw-r--r--debian/README.source121
-rw-r--r--debian/changelog27
-rw-r--r--debian/compat1
-rw-r--r--debian/control44
-rw-r--r--debian/copyright102
-rw-r--r--debian/docs1
-rwxr-xr-xdebian/rules22
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/options1
-rw-r--r--debian/upstream/metadata29
-rw-r--r--debian/watch17
-rwxr-xr-xgen-origtar10
-rwxr-xr-xmkwindows.sh281
-rw-r--r--po/.gitignore6
-rw-r--r--po/LINGUAS10
-rw-r--r--po/LINGUAS.BAD3
-rw-r--r--po/bg.po264
-rw-r--r--po/cs_CZ.po270
-rw-r--r--po/da.po284
-rw-r--r--po/de_DE.po264
-rw-r--r--po/es.po441
-rw-r--r--po/es_AR.po274
-rw-r--r--po/fr.po268
-rw-r--r--po/it_IT.po268
-rw-r--r--po/nl.po267
-rw-r--r--po/pl_PL.po267
-rw-r--r--po/pot_header.new17
-rw-r--r--po/pot_header.old19
-rw-r--r--po/pt_BR.po319
-rw-r--r--po/ru_RU.po261
-rw-r--r--po/sq.po264
-rw-r--r--po/telegram-purple.pot238
-rw-r--r--po/uk.po273
-rw-r--r--rpm/purple-telegram.spec1
-rw-r--r--telegram-adium/TelegramPlugin.m1
-rw-r--r--telegram-adium/telegram-adium.xcodeproj/project.pbxproj2
-rw-r--r--telegram-base.c116
-rw-r--r--telegram-base.h9
-rw-r--r--telegram-purple.c112
-rw-r--r--telegram-purple.h10
-rw-r--r--telegram-purple.nsi130
-rw-r--r--telegram-purple.nsi.awk15
-rw-r--r--telegram-purple.nsi.awk-in14
-rw-r--r--test/Makefile1
-rw-r--r--tg-server.tglpubbin264 -> 0 bytes
m---------tgl0
-rw-r--r--tgp-2prpl.c93
-rw-r--r--tgp-2prpl.h4
-rw-r--r--tgp-chat.c49
-rw-r--r--tgp-chat.h1
-rw-r--r--tgp-info.c2
-rw-r--r--tgp-msg.c315
-rw-r--r--tgp-utils.c3
69 files changed, 4189 insertions, 2912 deletions
diff --git a/.gitignore b/.gitignore
index 9825d0e..2bc2a87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,6 @@
/config.status
/Makefile
/commit.h
+/telegram-purple.nsi
+/win32/
+/contrib/
diff --git a/.travis.yml b/.travis.yml
index df7bdf6..354cdf6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,9 @@ script:
- ./configure $CONFIGURE_FLAGS
- make -j2
- make check
+# Test both installation routines:
+ - sudo make install
+ - make local_install
compiler:
- clang
- gcc
@@ -27,6 +30,14 @@ env:
# - CONFIGURE_FLAGS="--disable-gcrypt --disable-translation"
# - CONFIGURE_FLAGS=" --disable-libwebp --disable-translation"
- CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp --disable-translation"
+ - CONFIGURE_FLAGS="--disable-png"
+# - CONFIGURE_FLAGS="--disable-png --disable-gcrypt"
+ - CONFIGURE_FLAGS="--disable-png --disable-libwebp"
+# - CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-libwebp"
+# - CONFIGURE_FLAGS="--disable-png --disable-translation"
+# - CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-translation"
+# - CONFIGURE_FLAGS="--disable-png --disable-libwebp --disable-translation"
+# - CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-libwebp --disable-translation"
matrix:
# Be even nicer by excluding half of the combinations
exclude:
@@ -40,9 +51,25 @@ matrix:
# env: CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp"
- compiler: gcc
env: CONFIGURE_FLAGS=" --disable-translation"
-# - compiler: clang
+# - compiler: XXX
# env: CONFIGURE_FLAGS="--disable-gcrypt --disable-translation"
-# - compiler: gcc
+# - compiler: XXX
# env: CONFIGURE_FLAGS=" --disable-libwebp --disable-translation"
- compiler: clang
env: CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp --disable-translation"
+ - compiler: clang
+ env: CONFIGURE_FLAGS="--disable-png"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-gcrypt"
+ - compiler: gcc
+ env: CONFIGURE_FLAGS="--disable-png --disable-libwebp"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-libwebp"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-translation"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-translation"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-libwebp --disable-translation"
+# - compiler: XXX
+# env: CONFIGURE_FLAGS="--disable-png --disable-gcrypt --disable-libwebp --disable-translation"
diff --git a/AUTHORS b/AUTHORS
index b04c05d..0298c5e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,4 @@
Matthias Jentsch <mtthsjntsch@gmail.com>
-Ben Wiederhake <Ben.Wiederhake@gmail.com>
+Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
Vitaly Valtman <vvaltman@aurum>
-Christopher Althaus <althaus.christopher@gmail.com> \ No newline at end of file
+Christopher Althaus <althaus.christopher@gmail.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0071d1b..b699cdb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,22 @@
Changelog
---------
+##### 1.4.1
+
+- *REMOVED* active support for Adium. We just don't know how! Help wanted!
+- Had to skip 1.4.0 as someone distributed an intermediate version as "1.4.0"
+- Import awesomeness from kenorb's mega-merge:
+ * Support for pinned and other action types.
+ * Stability improvements in general
+- Better build support:
+ * No `-Werror`
+ * Compatibility with LibreSSL
+ * Compatibility with C++
+- Simplify: Only one level of submodules
+- Add support for replies/forwarded messages
+- Add support for IPv6-only
+- Add windows cross-compilation script
+
##### 1.3.1
- Stability improvements
diff --git a/HACKING.md b/HACKING.md
index eb11f08..95a591b 100644
--- a/HACKING.md
+++ b/HACKING.md
@@ -18,3 +18,49 @@ Here's a few places to start:
## How to contribute
Write [an issue](https://github.com/majn/telegram-purple/issues/new), shoot us a mail (scrape the address from the git history), or contact us in dev chat (changing URL, see README for that).
+
+## How to release
+
+#### Translations
+
+Make sure that the string freeze has already happened.
+
+Go to the [translation site](https://www.transifex.com/telegram-purple-developers/telegram-purple/content/),
+and close the current resource for new translations. Rename and re-prioritize it appropriately.
+Download the zip-file, extract it, remove the annoying prefix. Move all files to `po/`.
+
+Run `make po/*.po` to fix the filenames. Do not delete any files. Rationale see `Makefile`.
+
+Adjust `po/LINGUAS*` as you see fit.
+
+#### Increment version
+
+Attempt to use semver.
+
+Adjust `configure.ac`, in macro `AC_INIT`. Remember to run `autoreconf`.
+
+Update `CHANGELOG.md`.
+
+#### Run some tests
+
+First locally, then on Travis.
+Also, install it locally. Don't forget to `./configure` first.
+
+#### Prepare release files
+
+Make a tag: `git tag v1.something`
+Remember to push the tag to github.
+
+Make a dist-bundle: `make dist`
+Keep the resulting `telegram-purple_1.something.orig.tar.gz` safe.
+
+Make the windows installer: `./mkwindows.sh`
+Keep the resulting `telegram-purple-1.something+gcafebabe5.exe` safe.
+
+#### Create release on github
+
+FIXME
+
+#### Close associated issues
+
+All relevant issues are marked with `in-pipeline`, but sadly too many are marked this way.
diff --git a/Makefile.in b/Makefile.in
index fdeddb4..52cc457 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
#
-# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres 2014-2015
+# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres 2014-2017
srcdir=@srcdir@
prefix=@prefix@
@@ -22,8 +22,42 @@ datarootdir=@datarootdir@
localedir=@localedir@
gettext_package=@GETTEXT_PACKAGE@
-CFLAGS=@CFLAGS@ @PURPLE_CFLAGS@ @DEFS@ -DENABLE_NLS -DLOCALEDIR='"$(localedir)"' -Wall -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I${srcdir} -I. -fno-strict-aliasing -fPIC -D_FORTIFY_SOURCE=2
-LDFLAGS=@LDFLAGS@ @OPENSSL_LIBS@ @PURPLE_LIBS@ @LIBS@ -rdynamic -ggdb
+PIDGIN_VERSION=2.12.0
+WIN32_GTK_BUNDLE_DIR=win32/gtk+-bundle_2.24.10-20120208_win32
+WIN32_GTK_BUNDLE_URL=http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
+WIN32_GTK_BUNDLE_FILE=win32/gtk+-bundle_2.24.10-20120208_win32.zip
+WIN32_PIDGIN_SRC_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}.tar.gz/download
+WIN32_PIDGIN_SRC_FILE=win32/pidgin-${PIDGIN_VERSION}.tar.gz
+WIN32_PIDGIN_SRC_DIR=win32/pidgin-${PIDGIN_VERSION}
+WIN32_PIDGIN_BIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}-win32-bin.zip/download
+WIN32_PIDGIN_BIN_FILE=win32/pidgin-${PIDGIN_VERSION}-win32-bin.zip
+WIN32_PIDGIN_BIN_DIR=win32/pidgin-${PIDGIN_VERSION}-win32bin
+WIN32_WEBP_URL=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-0.6.1.tar.gz
+WIN32_WEBP_FILE=win32/libwebp-0.6.1.tar.gz
+WIN32_WEBP_DIR=win32/libwebp-0.6.1
+WIN32_DIRS=${WIN32_GTK_BUNDLE_DIR} ${WIN32_PIDGIN_SRC_DIR} ${WIN32_PIDGIN_BIN_DIR} ${WIN32_WEBP_DIR}
+# Not directly used here, but the usage will be injected via the CFLAGS configure var.
+# Note on webp: locally cross-built! That's why it violates the pattern.
+WIN32_INC=-I${WIN32_PIDGIN_SRC_DIR}/pidgin \
+ -I${WIN32_PIDGIN_SRC_DIR}/pidgin/win32 \
+ -I${WIN32_PIDGIN_SRC_DIR}/libpurple \
+ -I${WIN32_PIDGIN_SRC_DIR}/libpurple/win32 \
+ -I${WIN32_GTK_BUNDLE_DIR}/include \
+ -I${WIN32_GTK_BUNDLE_DIR}/include/glib-2.0 \
+ -I${WIN32_GTK_BUNDLE_DIR}/lib/glib-2.0/include \
+ -I${WIN32_GTK_BUNDLE_DIR}/include/gtk-2.0 \
+ -I${WIN32_GTK_BUNDLE_DIR}/lib/gtk-2.0/include \
+ -Iobjs/webp-install/include
+WIN32_CONTRIB_FILES=contrib/libgcrypt-20.dll contrib/libgpg-error-0.dll contrib/libgcc_s_sjlj-1.dll
+
+CFLAGS_INTL=-DENABLE_NLS -DLOCALEDIR='"$(localedir)"'
+CFLAGS_WARN=-Wall -Wextra -Wno-deprecated-declarations -Wno-unused-parameter
+CFLAGS_EXTRA=-I${srcdir} -I. -fno-strict-aliasing -fPIC -D_FORTIFY_SOURCE=2
+CFLAGS=@CFLAGS@ @PURPLE_CFLAGS@ @DEFS@ ${CFLAGS_INTL} ${CFLAGS_WARN} ${CFLAGS_EXTRA}
+
+LDFLAGS_EXTRA=-rdynamic -ggdb
+LDFLAGS=@LDFLAGS@ @OPENSSL_LIBS@ @PURPLE_LIBS@ @LIBS@ ${LDFLAGS_EXTRA}
+
DIR_PERM=0755
FILE_PERM=0644
@@ -40,10 +74,10 @@ endif
DEP=dep
EXE=bin
OBJ=objs
-DIR_LIST=${DEP} ${EXE} ${OBJ}
+DIR_LIST=${DEP} ${EXE} ${OBJ} contrib
PLUGIN_OBJECTS=${OBJ}/tgp-net.o ${OBJ}/tgp-timers.o ${OBJ}/msglog.o ${OBJ}/telegram-base.o ${OBJ}/telegram-purple.o ${OBJ}/tgp-2prpl.o ${OBJ}/tgp-structs.o ${OBJ}/tgp-utils.o ${OBJ}/tgp-chat.o ${OBJ}/tgp-ft.o ${OBJ}/tgp-msg.o ${OBJ}/tgp-request.o ${OBJ}/tgp-blist.o ${OBJ}/tgp-info.o
-ALL_OBJS=${PLUGIN_OBJECTS}
+ALL_OBJS=${PLUGIN_OBJECTS} ${EXTRA_OBJECTS}
ifdef MSGFMT_PATH
LOCALES=$(shell cat po/LINGUAS)
@@ -64,8 +98,8 @@ CRYPTO_FLAG=@CRYPTO_FLAG@
### == 'Magic' targets and infrastructure. == ###
-# Here be dragons! See https://github.com/majn/telegram-purple/issues/242
-# For the full list of requirements, goals, and rationale.
+# Here be dragons! See HACKING.BUILD.md
+# for the full list of requirements, goals, and rationale.
.PHONY: create_dirs
create_dirs: ${DIR_LIST}
@@ -110,10 +144,30 @@ ${PLUGIN_OBJECTS}: ${OBJ}/%.o: ${srcdir}/%.c tgl/libs/libtgl.a | create_dirs
po/%.mo: po/%.po
${MSGFMT_PATH} -cf -o $@ $< >/dev/null 2>&1
-${PRPL_LIBNAME}: ${PLUGIN_OBJECTS} tgl/libs/libtgl.a | create_dirs
+${PRPL_LIBNAME}: ${ALL_OBJS} tgl/libs/libtgl.a | create_dirs
${CC} -shared -o $@ $^ ${LDFLAGS}
+### == Translation fixes == ###
+# I fucked up some of the language codes.
+# Fixing it in Transifex would require me to recreate these groups,
+# deleting all old translations and potentially losing the translators.
+# This is ugly, but better than losing translators.
+# The space in the matching pattern excludes the "Language-Team:" field.
+
+po/de.po: po/de_DE.po
+ sed -re 's/ de_DE/ de/' $< > $@
+
+po/it.po: po/it_IT.po
+ sed -re 's/ it_IT/ it/' $< > $@
+
+po/pl.po: po/pl_PL.po
+ sed -re 's/ pl_PL/ pl/' $< > $@
+
+po/ru.po: po/ru_RU.po
+ sed -re 's/ru_RU/ru/' $< > $@
+
+
### == noicon_{,un}install targets. Use only if you know that you don't need icons. Note that pidgin uses those files. == ###
.PHONY: noicon_install
@@ -121,7 +175,6 @@ noicon_install: $(PRPL_LIBNAME) $(LOCALE_MOS)
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(PLUGIN_DIR_PURPLE)
install -m $(FILE_PERM) $(PRPL_LIBNAME) $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(PRPL_NAME)
mkdir -m $(DIR_PERM) -p $(DESTDIR)/etc/telegram-purple
- install -m $(FILE_PERM) tg-server.tglpub $(DESTDIR)/etc/telegram-purple/server.tglpub
# Assume that the user does not use AppStream if she doesn't want icons
@for lang in $(LOCALES); do \
mkdir -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
@@ -133,7 +186,7 @@ noicon_install: $(PRPL_LIBNAME) $(LOCALE_MOS)
noicon_uninstall:
rm -f $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(PRPL_NAME)
rm -f $(DESTDIR)/etc/telegram-purple/server.pub # TODO: Remove this in later versions
- rm -f $(DESTDIR)/etc/telegram-purple/server.tglpub
+ rm -f $(DESTDIR)/etc/telegram-purple/server.tglpub # TODO: Remove this in later versions
# TODO: Delete all installed .mo's, no matter what LINGUAS says.
@for lang in $(LOCALES); do \
echo "removing $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo"; \
@@ -168,14 +221,68 @@ uninstall: noicon_uninstall
local_install:
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(HOME)/.purple/plugins
install -m $(FILE_PERM) $(PRPL_LIBNAME) $(DESTDIR)$(HOME)/.purple/plugins/$(PRPL_NAME)
-# See telegram-base.c, function get_user_pk_path for justification:
- mkdir -m $(DIR_PERM) -p $(DESTDIR)$(HOME)/.purple/telegram-purple
- install -m $(FILE_PERM) tg-server.tglpub $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub
.PHONY: local_uninstall
local_uninstall:
rm -f $(DESTDIR)$(HOME)/.purple/plugins/$(PRPL_NAME)
- rm -f $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub
+ rm -f $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub # TODO: Remove this in later versions
+
+
+### == Windows sources downloads == ###
+
+.PHONY: download_win32_sources
+download_win32_sources: | ${WIN32_DIRS}
+
+win32:
+ @mkdir -p $@
+
+${WIN32_GTK_BUNDLE_DIR}: | ${WIN32_GTK_BUNDLE_FILE}
+ unzip -q $| -d $@
+
+${WIN32_GTK_BUNDLE_FILE}: | win32
+ wget -q -O $@ ${WIN32_GTK_BUNDLE_URL}
+
+${WIN32_PIDGIN_SRC_DIR}: | ${WIN32_PIDGIN_SRC_FILE}
+ tar xf $| -C win32/
+
+${WIN32_PIDGIN_SRC_FILE}: | win32
+ wget -q -O $@ ${WIN32_PIDGIN_SRC_URL}
+
+${WIN32_PIDGIN_BIN_DIR}: | ${WIN32_PIDGIN_BIN_FILE}
+ unzip -q $| -d win32/
+
+${WIN32_PIDGIN_BIN_FILE}: | win32
+ wget -q -O $@ ${WIN32_PIDGIN_BIN_URL}
+
+${WIN32_WEBP_DIR}: | ${WIN32_WEBP_FILE}
+ tar xf $| -C win32/
+
+${WIN32_WEBP_FILE}: | win32
+ wget -q -O $@ ${WIN32_WEBP_URL}
+
+.PHONY: win-installer-deps
+win-installer-deps: telegram-purple.nsi $(PRPL_LIBNAME) $(LOCALE_MOS) ${WIN32_CONTRIB_FILES}
+ @[ "x${PRPL_NAME}" = "xlibtelegram.dll" ] || { \
+ echo "WARNING: Bad PRPL_NAME. This probably won't work." ; \
+ echo " (The DLL file cannot be just renamed!)" ; }
+
+/usr/%:
+ @echo "You're missing the file $@"
+ @echo "Try installing the appropriate of the following packages:"
+ @echo " libgcrypt-mingw-w64-dev"
+ @echo " libgpg-error-mingw-w64-dev"
+ @echo " gcc-mingw-w64-i686"
+ @echo "Also, please file a bug report *EVEN IF THIS SOLVES THE ISSUE*,"
+ @echo "as it should have been detected earlier."
+
+contrib/libgcrypt-20.dll: /usr/i686-w64-mingw32/bin/libgcrypt-20.dll | contrib
+ cp $< "$@"
+
+contrib/libgpg-error-0.dll: /usr/i686-w64-mingw32/bin/libgpg-error-0.dll | contrib
+ cp $< "$@"
+
+contrib/libgcc_s_sjlj-1.dll: /usr/lib/gcc/i686-w64-mingw32/*-win32/libgcc_s_sjlj-1.dll | contrib
+ cp $< "$@"
### == Handling and maintenance. Subject to rapid change, shouldn't be used in scripts. == ###
@@ -188,7 +295,14 @@ strip: $(PRPL_LIBNAME)
$(STRIP) --strip-unneeded $(PRPL_LIBNAME)
.PHONY: build-nsi
-build-nsi: telegram-purple.nsi.awk telegram-purple.nsi.awk-in
+build-nsi: telegram-purple.nsi
+
+config.h:
+ @echo "How did you manage to do that?"
+ @echo "You probably want to call ./config.status first."
+ @exit 1
+
+telegram-purple.nsi: telegram-purple.nsi.awk telegram-purple.nsi.awk-in po/LINGUAS config.h
awk -f telegram-purple.nsi.awk telegram-purple.nsi.awk-in > telegram-purple.nsi
.PHONY: run
@@ -225,7 +339,7 @@ dist: check-clean commit.h .git create_dirs
.PHONY: clean-here
clean-here:
- rm -rf ${DIR_LIST} $(PRPL_LIBNAME) po/*.mo autom4te.cache AppStream/po/*.mo
+ rm -rf ${DIR_LIST} $(PRPL_LIBNAME) telegram-purple.nsi po/*.mo autom4te.cache AppStream/po/*.mo
-include test/Makefile
diff --git a/Makefile.mingw b/Makefile.mingw
deleted file mode 100644
index 8306261..0000000
--- a/Makefile.mingw
+++ /dev/null
@@ -1,173 +0,0 @@
-# This file is part of telegram-purple
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#
-# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres, Eion Robb 2014-2015
-
-srcdir=.
-gettext_package=telegram-purple
-
-PURPLE_VERSION = 2.10.11
-PIDGIN_TREE_TOP := ../pidgin-$(PURPLE_VERSION)
-WIN32_DEV_TOP = $(PIDGIN_TREE_TOP)/../win32-dev
-MAKENSIS ?= "$(PROGRAMFILES)/NSIS/makensis.exe"
-PLUGIN_VERSION ?= 1.2.2
-GMSGFMT ?= $(WIN32_DEV_TOP)/gettext-0.17/bin/msgfmt
-
-CFLAGS=-I$(WIN32_DEV_TOP)/libgcrypt-1.6.3/include -I$(WIN32_DEV_TOP)/libgpg-error-1.12-2/include -I$(WIN32_DEV_TOP)/glib-2.28.8/include -I$(WIN32_DEV_TOP)/glib-2.28.8/include/glib-2.0 -I$(WIN32_DEV_TOP)/glib-2.28.8/lib/glib-2.0/include -I$(PIDGIN_TREE_TOP)/libpurple -I$(WIN32_DEV_TOP)/libwebp-0.4.3-1/include -DHAVE_CONFIG_H -DENABLE_NLS -DPACKAGE_VERSION='"$(PLUGIN_VERSION)"' -Wall -Wextra -Werror -Wno-deprecated-declarations -Wno-unused-parameter -I${srcdir} -I. -fno-strict-aliasing
-LDFLAGS=-L$(WIN32_DEV_TOP)/libgcrypt-1.6.3/lib -L$(WIN32_DEV_TOP)/libwebp-0.4.3-1/lib -L$(WIN32_DEV_TOP)/gettext-0.18/bin -L$(PIDGIN_TREE_TOP)/libpurple -L$(WIN32_DEV_TOP)/glib-2.28.8/lib -lpurple -lintl -lglib-2.0 -lwebp -lz -lgcrypt -Wl,--export-all-symbols -ggdb -lws2_32 -static-libgcc
-DIR_PERM=0755
-FILE_PERM=0644
-
-CC = $(WIN32_DEV_TOP)/mingw/bin/gcc
-PKG_CONFIG=
-
-DEP=dep
-EXE=bin
-OBJ=objs
-LIB=libs
-DIR_LIST=${DEP} ${EXE} ${OBJ} ${LIB} ${DEP}/lodepng ${OBJ}/lodepng
-
-PLUGIN_OBJECTS=${OBJ}/tgp-net.o ${OBJ}/tgp-timers.o ${OBJ}/msglog.o ${OBJ}/telegram-base.o ${OBJ}/telegram-purple.o ${OBJ}/tgp-2prpl.o ${OBJ}/tgp-structs.o ${OBJ}/tgp-utils.o ${OBJ}/tgp-chat.o ${OBJ}/tgp-ft.o ${OBJ}/tgp-msg.o ${OBJ}/tgp-request.o ${OBJ}/tgp-blist.o ${OBJ}/lodepng/lodepng.o
-ALL_OBJS=${PLUGIN_OBJECTS} ${OBJ}/tgp-info.o
-
-LOCALES=$(patsubst %.po, %.mo, $(wildcard po/*.po))
-
-.SUFFIXES:
-
-.SUFFIXES: .c .h .o
-
-PRPL_NAME=libtelegram.dll
-PRPL_LIBNAME=${EXE}/${PRPL_NAME}
-all: ${PRPL_LIBNAME} ${LOCALES}
-
-PLUGIN_DIR_PURPLE="$(PROGRAMFILES)/Pidgin/plugins"
-DATA_ROOT_DIR_PURPLE="$(PROGRAMFILES)/Pidgin"
-COPY_ICONS=yes
-localedir=$(DATA_ROOT_DIR_PURPLE)/locale
-
-create_dirs: ${DIR_LIST}
-
-${DIR_LIST}:
- @test -d $@ || mkdir -p $@
-
-DEPENDENCE=$(subst ${OBJ}/,${DEP}/,$(patsubst %.o,%.d,${ALL_OBJS}))
-DEPENDENCE_LIST=${DEPENDENCE}
--include ${DEPENDENCE_LIST}
-
-
-# The dependency on tgl/libs/libtgl.a ensures that "make -C tgl" was called,
-# and most importantly: It ensures that all automatic headers exist.
-${PLUGIN_OBJECTS}: ${OBJ}/%.o: ${srcdir}/%.c ${LIB}/libtgl.a | create_dirs
- echo $@ && ${CC} ${CFLAGS} ${CPPFLAGS} -I ${srcdir}/tgl -I ${srcdir}/lodepng -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
-
-tgl/Makefile.mingw: ${srcdir}/Makefile.tgl.mingw
- cp $< $@
-
-tgl/libs/libtgl.a: tgl/Makefile.mingw
- +make -C tgl -f Makefile.mingw
-
-tgl/config.h: ${srcdir}/config.h.tgl.mingw
- cp $< $@
-
-config.h: ${srcdir}/config.h.mingw
- cp $< $@
-
-po/%.mo: po/%.po
- $(GMSGFMT) -cf -o $@ $<
-
-${LIB}/libtgl.a: tgl/libs/libtgl.a | create_dirs
- cp $< $@
-
-${PRPL_LIBNAME}: ${PLUGIN_OBJECTS} ${LIB}/libtgl.a | create_dirs
- ${CC} -shared -o $@ $^ ${LDFLAGS}
-
-.PHONY: plugin
-plugin: $(PRPL_LIBNAME)
-
-
-.PHONY: strip
-strip: $(PRPL_LIBNAME)
- $(STRIP) --strip-unneeded $(PRPL_LIBNAME)
-
-.PHONY: install
-install: $(PRPL_LIBNAME) $(LOCALES)
- mkdir -m $(DIR_PERM) -p $(PLUGIN_DIR_PURPLE)
- install -m $(FILE_PERM) $(PRPL_LIBNAME) $(PLUGIN_DIR_PURPLE)/$(PRPL_NAME)
- install -m $(FILE_PERM) tg-server.tglpub $(DATA_ROOT_DIR_PURPLE)/server.tglpub
-ifeq ($(COPY_ICONS),no)
- @echo "Not copying icons due to configure-option --disable-icons."
- @echo " If you're using Finch, Empathy, or Telepathy, then this is a good idea."
- @echo " If you're using Pidgin, then this is a bad idea."
- @echo " If you're using Adium, read the README.md: You're using the wrong build system!"
-else
- mkdir -m $(DIR_PERM) -p $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16
- install -m $(FILE_PERM) imgs/telegram16.png $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
- mkdir -m $(DIR_PERM) -p $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22
- install -m $(FILE_PERM) imgs/telegram22.png $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
- mkdir -m $(DIR_PERM) -p $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48
- install -m $(FILE_PERM) imgs/telegram48.png $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
-endif
- @for lang in $(shell cat po/LINGUAS); do \
- mkdir -p $(localedir)/$$lang/LC_MESSAGES; \
- echo "installing po/$$lang.mo to $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo"; \
- install -m $(FILE_PERM) po/$$lang.mo $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo; \
- done
-
-.PHONY: uninstall
-uninstall:
- rm -f $(PLUGIN_DIR_PURPLE)/$(PRPL_NAME)
- rm -f $(DATA_ROOT_DIR_PURPLE)/server.tglpub
- rm -f $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
- rm -f $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
- rm -f $(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
-# TODO: Delete all installed .mo's, no matter what LINGUAS says.
- @for lang in $(shell cat po/LINGUAS); do \
- echo "removing $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo"; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo; \
- done
-
-.PHONY: local_install
-local_install:
- mkdir -m $(DIR_PERM) -p $(DESTDIR)$(HOME)/.purple/plugins
- install -m $(FILE_PERM) $(PRPL_LIBNAME) $(DESTDIR)$(HOME)/.purple/plugins/$(PRPL_NAME)
-# See telegram-base.c, function get_user_pk_path for justification:
- mkdir -m $(DIR_PERM) -p $(DESTDIR)$(HOME)/.purple/telegram-purple
- install -m $(FILE_PERM) tg-server.tglpub $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub
-
-.PHONY: local_uninstall
-local_uninstall:
- rm -f $(DESTDIR)$(HOME)/.purple/plugins/$(PRPL_NAME)
- rm -f $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub
-
-.PHONY: run
-run:
- pidgin -d | grep 'telegram\|plugin\|proxy'
-
-.PHONY: debug
-debug: install
- ddd pidgin
-
-.PHONY: clean-here
-clean-here:
- rm -rf ${DIR_LIST} $(PRPL_C_OBJS) $(PRPL_LIBNAME) po/*.mo
-
-.PHONY: clean
-clean: clean-here tgl/Makefile.mingw
- +make -C tgl -f Makefile.mingw clean
-
-.PHONY: installer
-installer: telegram-purple.nsi $(PRPL_LIBNAME) $(LOCALES)
- $(MAKENSIS) -DPLUGIN_VERSION="$(PLUGIN_VERSION)" -DPRPL_NAME="$(PRPL_NAME)" -DWIN32_DEV_TOP="$(WIN32_DEV_TOP)" telegram-purple.nsi
diff --git a/Makefile.tgl.mingw b/Makefile.tgl.mingw
deleted file mode 100644
index 6ec90aa..0000000
--- a/Makefile.tgl.mingw
+++ /dev/null
@@ -1,116 +0,0 @@
-# This file is part of telegram-purple
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#
-# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres, Eion Robb 2014-2015
-
-srcdir=.
-
-
-WIN32_DEV_TOP ?= ../../win32-dev
-
-CFLAGS=-I$(WIN32_DEV_TOP)/libgcrypt-1.6.3/include -I$(WIN32_DEV_TOP)/libgpg-error-1.12-2/include -I$(WIN32_DEV_TOP)/glib-2.28.8/include -DHAVE_CONFIG_H
-LDFLAGS=-L$(WIN32_DEV_TOP)/libgcrypt-1.6.3/lib -I$(WIN32_DEV_TOP)/libgpg-error-1.12-2/lib -L$(WIN32_DEV_TOP)/libwebp-0.4.3-1/lib -L$(WIN32_DEV_TOP)/glib-2.28.8/lib -lwebp -lz -lgcrypt -Wl,--export-all-symbols -ggdb
-CPPFLAGS=
-DEFS=-DHAVE_CONFIG_H
-COMPILE_FLAGS=${CFLAGS} ${CPFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb -Wno-unused-parameter
-
-EXTRA_LIBS=-lz -lgcrypt
-LOCAL_LDFLAGS=-ggdb ${EXTRA_LIBS}
-LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
-
-DEP=dep
-AUTO=auto
-OBJ=objs
-LIB=libs
-EXE=bin
-DIR_LIST=${DEP} ${DEP}/crypto ${AUTO} ${EXE} ${OBJ} ${OBJ}/crypto ${LIB} ${DEP}/auto ${OBJ}/auto
-
-LIB_LIST=${LIB}/libtgl.a ${LIB}/libtgl.dll
-
-TGL_OBJECTS=${OBJ}/mtproto-common.o ${OBJ}/mtproto-client.o ${OBJ}/mtproto-key.o ${OBJ}/queries.o ${OBJ}/structures.o ${OBJ}/binlog.o ${OBJ}/tgl.o ${OBJ}/updates.o ${OBJ}/tg-mime-types.o ${OBJ}/mtproto-utils.o ${OBJ}/crypto/bn_openssl.o ${OBJ}/crypto/bn_altern.o ${OBJ}/crypto/rsa_pem_openssl.o ${OBJ}/crypto/rsa_pem_altern.o ${OBJ}/crypto/md5_openssl.o ${OBJ}/crypto/md5_altern.o ${OBJ}/crypto/sha_openssl.o ${OBJ}/crypto/sha_altern.o ${OBJ}/crypto/aes_openssl.o ${OBJ}/crypto/aes_altern.o
-TGL_OBJECTS_AUTO=${OBJ}/auto/auto-skip.o ${OBJ}/auto/auto-fetch.o ${OBJ}/auto/auto-store.o ${OBJ}/auto/auto-autocomplete.o ${OBJ}/auto/auto-types.o ${OBJ}/auto/auto-fetch-ds.o ${OBJ}/auto/auto-free-ds.o ${OBJ}/auto/auto-store-ds.o ${OBJ}/auto/auto-print-ds.o
-TLD_OBJECTS=${OBJ}/dump-tl-file.o
-GENERATE_OBJECTS=${OBJ}/generate.o
-COMMON_OBJECTS=${OBJ}/tools.o ${OBJ}/crypto/rand_openssl.o ${OBJ}/crypto/rand_altern.o ${OBJ}/crypto/err_openssl.o ${OBJ}/crypto/err_altern.o
-OBJ_C=${GENERATE_OBJECTS} ${COMMON_OBJECTS} ${TGL_OBJECTS} ${TLD_OBJECTS}
-
-DEPENDENCE=$(subst ${OBJ}/,${DEP}/,$(patsubst %.o,%.d,${OBJ_C}))
-DEPENDENCE_LIST=${DEPENDENCE}
-
-INCLUDE=-I. -I${srcdir}
-CC=$(WIN32_DEV_TOP)/mingw/bin/gcc
-
-.SUFFIXES:
-
-.SUFFIXES: .c .h .o
-
-all: ${LIB_LIST}
-create_dirs_and_headers: ${DIR_LIST} ${AUTO}/auto-skip.h ${AUTO}/auto-fetch.h ${AUTO}/auto-store.h ${AUTO}/auto-autocomplete.h ${AUTO}/auto-types.h
-create_dirs: ${DIR_LIST}
-dump-tl: ${EXE}/dump-tl-file
-
-#include ${srcdir}/Makefile.tl-parser
-
-${DIR_LIST}:
- @test -d $@ || mkdir -p $@
-
--include ${DEPENDENCE_LIST}
-
-${TGL_OBJECTS}: ${AUTO}/constants.h ${AUTO}/auto-skip.h ${AUTO}/auto-fetch.h ${AUTO}/auto-store.h ${AUTO}/auto-autocomplete.h ${AUTO}/auto-types.h ${AUTO}/auto-fetch-ds.h ${AUTO}/auto-free-ds.h ${AUTO}/auto-store-ds.h ${AUTO}/auto-print-ds.h
-
-${OBJ_C}: ${OBJ}/%.o: ${srcdir}/%.c | create_dirs
- ${CC} ${INCLUDE} ${COMPILE_FLAGS} -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
-
-${TGL_OBJECTS_AUTO}: ${OBJ}/auto/%.o: ${AUTO}/%.c | create_dirs
- ${CC} ${INCLUDE} ${COMPILE_FLAGS} -iquote ${srcdir}/tgl -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
-
-${LIB}/libtgl.a: ${TGL_OBJECTS} ${COMMON_OBJECTS} ${TGL_OBJECTS_AUTO}
- rm -f $@ && ar ruv $@ $^
-
-${LIB}/libtgl.dll: ${TGL_OBJECTS} ${COMMON_OBJECTS} ${TGL_OBJECTS_AUTO}
- ${CC} -shared -o $@ $^ ${LINK_FLAGS}
-
-${EXE}/generate: ${GENERATE_OBJECTS} ${COMMON_OBJECTS}
- ${CC} ${GENERATE_OBJECTS} ${COMMON_OBJECTS} ${LINK_FLAGS} -o $@
-
-${AUTO}/scheme.tlo: ${AUTO}/scheme.tl ${EXE}/tl-parser
- ${EXE}/tl-parser -e $@ ${AUTO}/scheme.tl
-
-${AUTO}/scheme.tl: ${srcdir}/scheme.tl ${srcdir}/encrypted_scheme.tl ${srcdir}/binlog.tl ${srcdir}/mtproto.tl ${srcdir}/append.tl | ${AUTO}
- cat $^ > $@
-
-${AUTO}/scheme2.tl: ${AUTO}/scheme.tl ${EXE}/tl-parser
- ${EXE}/tl-parser -E ${AUTO}/scheme.tl 2> $@ || ( cat $@ && rm $@ && false )
-
-${AUTO}/auto.c: ${AUTO}/scheme.tlo ${EXE}/generate
- ${EXE}/generate ${AUTO}/scheme.tlo > $@
-
-${AUTO}/auto-%.c: ${AUTO}/scheme.tlo ${EXE}/generate auto/constants.h ${AUTO}/auto-%.h | create_dirs_and_headers
- ${EXE}/generate -g $(patsubst ${AUTO}/auto-%.c,%,$@) ${AUTO}/scheme.tlo > $@ || ( rm $@ && false )
-
-${AUTO}/auto-%.h: ${AUTO}/scheme.tlo ${EXE}/generate
- ${EXE}/generate -g $(patsubst ${AUTO}/auto-%.h,%-header,$@) ${AUTO}/scheme.tlo > $@ || ( rm $@ && false )
-
-
-${AUTO}/constants.h: ${AUTO}/scheme2.tl ${srcdir}/gen_constants_h.awk
- awk -f ${srcdir}/gen_constants_h.awk < $< > $@
-
-${EXE}/dump-tl-file: ${OBJ}/auto/auto.o ${TLD_OBJECTS}
- ${CC} ${OBJ}/auto/auto.o ${TLD_OBJECTS} ${LINK_FLAGS} -o $@
-
-clean:
- rm -rf ${DIR_LIST}
-
diff --git a/README.md b/README.md
index 8a24c6c..203cf7c 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,22 @@ If your platform is not supported or you want to contribute by testing or develo
#### Windows
-Eion Robb provides a binary for Windows users:
+We provide an installer for Windows users:
-1. Download and execute the setup from http://eion.robbmob.com/telegram/
+1. Download and execute the corresponding setup from https://github.com/majn/telegram-purple/releases
2. Restart Pidgin
+3. If not detected, restart pidgin again
+
+This installer is built in a different way than previous builds
+(specifically, by Eion Robb http://eion.robbmob.com/telegram/),
+and may still have some issues.
+
+Specifically, the installer is compressed, so if you have an overzealous anti-virus installed,
+the installer may get flagged.
+
+The build is 32-bit, so connecting with Telegram for the first time may take a few moments.
+
+Alternatively, see "Building the Windows Installer" below.
#### Fedora (22, 23)
@@ -41,7 +53,8 @@ https://aur.archlinux.org/packages/telegram-purple/
#### Debian
-You have to build it from source. For more information, see the dev-1.4.0 branch.
+You can build it from source (see following section) or build a `.deb` file
+for your package manager.
Building From Source
@@ -82,7 +95,7 @@ this indicates that this version is in fact much further than just
##### Debian / Ubuntu
-Please see the dev-1.4.0 branch.
+ sudo apt-get install libgcrypt20-dev libpurple-dev libwebp-dev gettext build-essential
##### OpenSUSE
@@ -176,6 +189,8 @@ Since 1.3.0 it is possible to write messages in monospaced fonts using the markd
Building the Adium Plugin
-------------------------
+(This part may be a little outdated.)
+
Compiling with XCode is a little bit problematic, since it requires you to compile Adium first to get the necessary framework files. My advice is to just use the [prebuilt bundle](https://github.com/majn/telegram-purple/releases), but if you really want to do it, follow these steps:
1. Get the Adium source, compile it with XCode and copy the build output into telegram-adium/Frameworks/Adium. It should contain at least Adium.framework, AdiumLibpurple.framework and AIUitilies.framework
@@ -211,7 +226,71 @@ Compiling with XCode is a little bit problematic, since it requires you to compi
Building the Debian Package
---------------------------
-See https://github.com/majn/telegram-purple/tree/dev-1.4.0#building-the-debian-package
+If you just need a `.deb`, simply do:
+
+ sudo apt-get install debhelper
+ fakeroot ./debian/rules binary
+
+And you're done! The `telegram-purple_….deb` and `telegram-purple-dbgsym_….deb` files
+are in the parent directory.
+To show some info about it, try this:
+
+ dpkg --info telegram-purple_*.deb
+
+Please note that installing the debugging symbols (`dbgsym`)
+help a lot in troubleshooting, so please do install them, too!
+
+#### Debian Maintainers ####
+
+If you're a maintainer (if you're not sure, then you aren't a
+maintainer), you need to produce a lot more files than that.
+
+Here's how you can generate a `.orig.tar.gz`:
+
+ make dist
+
+The following command requires the original tar to exist,
+and will build all further files,
+specifically `.debian.tar.xz`, `.dsc`, `.deb`, and `.changes`:
+
+ dpkg-buildpackage
+
+If this fails with a cryptic error message,
+first make sure that the `….orig.tar` really is in place.
+
+For the upload, you should use `pbuilder` and similar to build the package
+in a more minimalistic environment. That covers the official part of the work-flow.
+
+Of course, you can call small parts of the build process directly, in order to avoid
+overhead like rebuilding. For example, if you only need the `.debian.tar.xz`
+and `.dsc` files, do this:
+
+ make dist
+ false # Move tar to parent directory, by hand
+ dpkg-source -b .
+
+Note that we no longer actively try to get it into the Debian repository.
+
+Building the Windows Installer
+---------------------------
+
+You will need a Debian-ish operating system, and the following packages:
+
+```
+apt-get install build-essentials gcc-mingw-w64-i686 libgcrypt-mingw-w64-dev \
+ libgpg-error-mingw-w64-dev libz-mingw-w64-dev \
+ gettext libgcrypt20-dev libpurple-dev libwebp-dev \
+ nsis
+```
+
+After that, run the build script:
+
+```
+./mkwindows.sh
+```
+
+This generates a file like `telegram-purple-1.3.1+gcb96ff77aa.exe`,
+which contains everything the Windows users need.
Discussion / Help
@@ -221,19 +300,30 @@ Discussion / Help
As we want to avoid OpenSSL, it has become necessary to replace the PEM file format. This means that if you use a custom pubkey (which you really REALLY shouldn't be doing), you have to adapt, sorry.
-We no longer ship `tg-server.pub` (old format), but instead `tg-server.tglpub` (new format). If you have a `.pub` and want to continue using telegram-purple, please use this (hopefully highly portable) tool: [pem2bignum](https://github.com/BenWiederhake/pem2bignum)
+We no longer read the public key of the Telegram servers from a file.
+If you really need a different public key, and know what you're doing
+(e.g., connecting to some kind of test environment internal to Telegram,
+which also is a very bad idea), you need to find the call to `tgl_set_rsa_key_direct` in `telegram-purple.c`,
+and provide the key directly by yourself.
+
+
+FAQ
+---
-You can also write your own conversion tool if you prefer. The format is really simple:
+- How do I set telegram-purple up with Bitlbee?
+ * A (easy): Use bitlbee-telegram instead. It is made for bitlbee.
+ * A (hard): Mainly just followed the wiki steps:
+ - First install bitlbee with purple enabled. In Arch, use the bitlbee-libpurple aur package.
+ - Started the Bitlbee daemon, which runs with the bitlbee user:
-1. `e`, the public exponent, encoded as big endian 32 bit fixed length (e.g. `0x00 01 00 01` for 65537)
-2. `n_len`, the length of `n` in bytes, encoded as big endian 32 bit fixed length (e.g. `0x00 00 01 00` for a 2048-bit = 256-byte key)
-3. `n_raw`, the raw modulus, encoded as big endian, using the previously indicated length (e.g. `0xC1 50 02 3E [248 bytes omitted] 21 79 25 1F` in the case of telegram's public RSA key.)
+ # systemctl start bitlbee.service
-If you are interested in developing a non-OpenSSL-licensed converter, look into [insane-triangle-banana](https://github.com/BenWiederhake/insane-triangle-banana).
+ - With any IRC client (e.g., irssi), connect to localhost with `/connect localhost`, then create the account with the commands:
+ account add telegram <phone_number_with_region_prefix>
+ account telegram on
-FAQ
----
+ This was adapted from https://github.com/majn/telegram-purple/issues/461 . Thanks!
- I receive pictures in a chat, but they aren't showing up
* A: Make sure that you don't have a plugin like "Conversation Colors" that strips HTML from messages and removes the pictures.
@@ -278,7 +368,7 @@ Telegram-Purple was written by:
- Matthias Jentsch <mtthsjntsch@gmail.com>
- Vitaly Valtman
- - Ben Wiederhake <Ben.Wiederhake@gmail.com>
+ - Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
- Christopher Althaus <althaus.christopher@gmail.com>
Acknowledgements
diff --git a/autogen.sh b/autogen.sh
index 8097d44..cd258f9 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -10,6 +10,30 @@ export XGETTEXT="xgettext -kP_:1,2"
intltool-update --pot
## Translations are managed at https://www.transifex.com/telegram-purple-developers/telegram-purple/
## To update the .po files, download it from there, since intltool, msginit, and transifex produce slightly different files, and I'd like to avoid gigantic git diffs that only change indentation or similar things.
+
+## Also, for some reason, the header generated by GNU intltool does not conform to
+## What GNU.org says the header should look like. So, let's fix it.
+
+## First, check whether the header is exactly as expected.
+oldlines=20
+tmpfile=$(mktemp)
+head -n ${oldlines} telegram-purple.pot | grep -v '^"POT-Creation-Date:' > ${tmpfile}
+if ! diff -u ${tmpfile} pot_header.old
+then
+ echo "Unexpected header of telegram-purple.pot! Please check by hand."
+ rm ${tmpfile}
+ exit 2
+fi
+rm ${tmpfile}
+
+## Great, now replace the header by what we want it to be.
+tmpfile=$(mktemp)
+cat pot_header.new >> ${tmpfile} # Off by one: missing newline at end
+tail -n +${oldlines} telegram-purple.pot >> ${tmpfile} # Off-by-one: extra newline at beginning
+# Together, this works out exaclty, and saves me from computing $oldlines+1
+cp ${tmpfile} telegram-purple.pot
+rm ${tmpfile}
+
)
test -r Makefile || (echo "Autoreconf didn't create Makefile?!"; exit 1)
diff --git a/config.h.in b/config.h.in
index 71bfb4f..c631e01 100644
--- a/config.h.in
+++ b/config.h.in
@@ -15,6 +15,9 @@
/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
#undef HAVE_LIBGCRYPT
+/* Define to 1 if you have the `png' library (-lpng). */
+#undef HAVE_LIBPNG
+
/* Define to 1 if you have the `rt' library (-lrt). */
#undef HAVE_LIBRT
@@ -24,8 +27,7 @@
/* Define to 1 if you have `z' library (-lz) */
#undef HAVE_LIBZ
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
+/* Define to 1 if you have the `malloc' function. */
#undef HAVE_MALLOC
/* Define to 1 if you have the <memory.h> header file. */
@@ -91,8 +93,5 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
diff --git a/config.h.mingw b/config.h.mingw
deleted file mode 100644
index 5ead13d..0000000
--- a/config.h.mingw
+++ /dev/null
@@ -1,116 +0,0 @@
-# This file is part of telegram-purple
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#
-# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres, Eion Robb 2014-2015
-
-/* config.h. Generated from config.h.in by configure. */
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define the gettext package to be used */
-#define GETTEXT_PACKAGE "telegram-purple"
-
-#define ENABLE_NLS 1
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-/* #undef HAVE_ARPA_INET_H */
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
-#define HAVE_LIBGCRYPT 1
-
-/* Define to 1 if you have the `rt' library (-lrt). */
-/* #undef HAVE_LIBRT */
-
-/* Define to 1 if you have the `webp' library (-lwebp). */
-#define HAVE_LIBWEBP 1
-
-/* Define to 1 if you have `z' library (-lz) */
-#define HAVE_LIBZ 1
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#define HAVE_MALLOC 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to 1 if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-/* #undef HAVE_SYS_SOCKET_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "telegram-purple"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME PACKAGE_NAME
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to rpl_malloc if the replacement function should be used. */
-/* #undef malloc */
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */
diff --git a/config.h.tgl.mingw b/config.h.tgl.mingw
deleted file mode 100644
index f0cc84f..0000000
--- a/config.h.tgl.mingw
+++ /dev/null
@@ -1,185 +0,0 @@
-# This file is part of telegram-purple
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#
-# Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres, Eion Robb 2014-2015
-
-/* config.h. Generated from config.h.in by configure. */
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* disable extf queries */
-/* #undef DISABLE_EXTF */
-
-/* Use libevent v1 */
-/* #undef EVENT_V1 */
-
-/* Use libevent v2 */
-/* #undef EVENT_V2 */
-
-/* Define to 1 if you have the `alarm' function. */
-#define HAVE_ALARM 1
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-/* #undef HAVE_ARPA_INET_H */
-
-/* Define to 1 if you have the `endpwent' function. */
-/* #undef HAVE_ENDPWENT */
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-/* #undef HAVE_EXECINFO_H */
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `event' library (-levent). */
-/* #undef HAVE_LIBEVENT */
-
-/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
-#define HAVE_LIBGCRYPT 1
-
-/* Define to 1 if you have `z' library (-lz) */
-#define HAVE_LIBZ 1
-
-/* Define to 1 if you have the <mach/mach.h> header file. */
-/* #undef HAVE_MACH_MACH_H */
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#define HAVE_MALLOC 1
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#define HAVE_MALLOC_H 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to 1 if you have the `mkdir' function. */
-#define HAVE_MKDIR 1
-
-/* Define to 1 if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
- and to 0 otherwise. */
-#define HAVE_REALLOC 1
-
-/* Define to 1 if you have the `select' function. */
-/* #undef HAVE_SELECT */
-
-/* Define to 1 if you have the `socket' function. */
-/* #undef HAVE_SOCKET */
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strndup' function. */
-/* #undef HAVE_STRNDUP */
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-/* #undef HAVE_SYS_SOCKET_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <termios.h> header file. */
-/* #undef HAVE_TERMIOS_H */
-
-/* Define to 1 if you have the `uname' function. */
-/* #undef HAVE_UNAME */
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if the system has the `__builtin_bswap32' built-in function */
-#define HAVE___BUILTIN_BSWAP32 1
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "telegram-cli"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "telegram-cli 1.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "telegram-cli"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0"
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* avoid OpenSSL entirely, use libgcrypt instead (this can't read *.pub files,
- though.) */
-#define TGL_AVOID_OPENSSL 1
-
-/* fixed for correct valgrind work */
-/* #undef VALGRIND_FIXES */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#define gid_t int
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to rpl_malloc if the replacement function should be used. */
-/* #undef malloc */
-
-/* Define to rpl_realloc if the replacement function should be used. */
-/* #undef realloc */
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#define uid_t int
diff --git a/configure b/configure
index eb4d751..bea5c6a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for telegram-purple 1.3.1.
+# Generated by GNU Autoconf 2.69 for telegram-purple 1.4.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='telegram-purple'
PACKAGE_TARNAME='telegram-purple'
-PACKAGE_VERSION='1.3.1'
-PACKAGE_STRING='telegram-purple 1.3.1'
+PACKAGE_VERSION='1.4.1'
+PACKAGE_STRING='telegram-purple 1.4.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -620,11 +620,11 @@ ac_includes_default="\
#endif"
ac_subst_vars='LTLIBOBJS
+LIBOBJS
GETTEXT_PACKAGE
MSGFMT_PATH
CHECK_GETTEXT
PURPLE_CPPFLAGS
-LIBOBJS
PURPLE_LIBS
PURPLE_CFLAGS
PKG_CONFIG_LIBDIR
@@ -666,6 +666,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -692,6 +693,7 @@ enable_gcrypt
with_openssl
with_zlib
enable_libwebp
+enable_libpng
enable_icons
enable_translation
'
@@ -747,6 +749,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -999,6 +1002,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1136,7 +1148,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1249,7 +1261,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures telegram-purple 1.3.1 to adapt to many kinds of systems.
+\`configure' configures telegram-purple 1.4.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1289,6 +1301,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1310,7 +1323,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of telegram-purple 1.3.1:";;
+ short | recursive ) echo "Configuration of telegram-purple 1.4.1:";;
esac
cat <<\_ACEOF
@@ -1322,6 +1335,7 @@ Optional Features:
DISTRIBUTE BINARIES!
--disable-libwebp Disable libwebp, stickers won't be displayed in the
chat
+ --disable-libpng Disable libpng, stickers won't be converted
--disable-icons Unsupported option. Use 'make noicon_install'
instead.
--disable-translation Disable gettext translation
@@ -1418,7 +1432,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-telegram-purple configure 1.3.1
+telegram-purple configure 1.4.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1837,7 +1851,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by telegram-purple $as_me 1.3.1, which was
+It was created by telegram-purple $as_me 1.4.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3334,6 +3348,28 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifdef NDEBUG
+#error "NDEBUG detected"
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ as_fn_error $? "The macro NDEBUG cannot work. All writes and reads are wrapped in asserts.
+For more info, see https://github.com/majn/telegram-purple/issues/429" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
$as_echo_n "checking for clock_gettime in -lrt... " >&6; }
if ${ac_cv_lib_rt_clock_gettime+:} false; then :
@@ -3434,8 +3470,9 @@ _ACEOF
else
- echo "no libgcrypt >= 1.60 found. If its not available try --disable-gcrypt to link against openssl, but in that case YOU MAY NOT REDISTRIBUTE THE BINARY due to licensing restrictions."
- exit -1
+ as_fn_error $? "no libgcrypt >= 1.60 found.
+ If its not available try --disable-gcrypt to link against openssl, but in that case
+ YOU MAY NOT REDISTRIBUTE THE BINARY due to licensing restrictions." "$LINENO" 5
fi
@@ -4398,9 +4435,136 @@ _ACEOF
LIBS="-lwebp $LIBS"
else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing WebPDecodeRGBA" >&5
+$as_echo_n "checking for library containing WebPDecodeRGBA... " >&6; }
+if ${ac_cv_search_WebPDecodeRGBA+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char WebPDecodeRGBA ();
+int
+main ()
+{
+return WebPDecodeRGBA ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' webp-7; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_WebPDecodeRGBA=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_WebPDecodeRGBA+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_WebPDecodeRGBA+:} false; then :
+
+else
+ ac_cv_search_WebPDecodeRGBA=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_WebPDecodeRGBA" >&5
+$as_echo "$ac_cv_search_WebPDecodeRGBA" >&6; }
+ac_res=$ac_cv_search_WebPDecodeRGBA
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
as_fn_error $? "no libwebp found, try --disable-libwebp, but stickers won't be displayed in the chat" "$LINENO" 5
fi
+ # If we get here, then it's one of the special-case scenarios.
+ # So we *do* want to set 'HAVE_LIBWEBP' to 1. But because the primary check
+ # failed, it would now go to "undefined".
+ # Therefore, override it:
+ $as_echo "#define HAVE_LIBWEBP 1" >>confdefs.h
+
+
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpng" >&5
+$as_echo_n "checking for libpng... " >&6; }
+# Check whether --enable-libpng was given.
+if test "${enable_libpng+set}" = set; then :
+ enableval=$enable_libpng;
+fi
+
+
+if test "x$enable_libpng" != "xno"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled" >&5
+$as_echo "enabled" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_write_png in -lpng" >&5
+$as_echo_n "checking for png_write_png in -lpng... " >&6; }
+if ${ac_cv_lib_png_png_write_png+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpng $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char png_write_png ();
+int
+main ()
+{
+return png_write_png ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_png_png_write_png=yes
+else
+ ac_cv_lib_png_png_write_png=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_write_png" >&5
+$as_echo "$ac_cv_lib_png_png_write_png" >&6; }
+if test "x$ac_cv_lib_png_png_write_png" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPNG 1
+_ACEOF
+
+ LIBS="-lpng $LIBS"
+
+else
+ as_fn_error $? "no libpng found, try --disable-libpng" "$LINENO" 5
+fi
+
fi
@@ -4444,74 +4608,7 @@ fi
# Checks for library functions.
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
-fi
-
-
-for ac_func in memset strdup
+for ac_func in malloc memset strdup
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -5098,7 +5195,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by telegram-purple $as_me 1.3.1, which was
+This file was extended by telegram-purple $as_me 1.4.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5160,7 +5257,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-telegram-purple config.status 1.3.1
+telegram-purple config.status 1.4.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 5f230fd..2c25ba6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT([telegram-purple], [1.3.1])
+AC_INIT([telegram-purple], [1.4.1])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
@@ -32,6 +32,13 @@ m4_include([m4_ax_pkg_config.m4])
AC_PROG_CC
AC_PROG_INSTALL
+AC_TRY_COMPILE([], [
+#ifdef NDEBUG
+#error "NDEBUG detected"
+#endif], [],
+[AC_MSG_ERROR([The macro NDEBUG cannot work. All writes and reads are wrapped in asserts.
+For more info, see https://github.com/majn/telegram-purple/issues/429])])
+
AC_CHECK_LIB([rt], [clock_gettime])
AC_ARG_ENABLE([gcrypt],
@@ -40,8 +47,9 @@ AC_ARG_ENABLE([gcrypt],
AS_IF([test "x$enable_gcrypt" != "xno"], [
# Even though tgl/configure will do this too, still call our own libgcrypt check to assure that -lgcrypt is added to our makefile
AC_CHECK_LIB([gcrypt], [gcry_mpi_snatch], [], [
- echo "no libgcrypt >= 1.60 found. If its not available try --disable-gcrypt to link against openssl, but in that case YOU MAY NOT REDISTRIBUTE THE BINARY due to licensing restrictions."
- exit -1
+ AC_MSG_ERROR([no libgcrypt >= 1.60 found.
+ If its not available try --disable-gcrypt to link against openssl, but in that case
+ YOU MAY NOT REDISTRIBUTE THE BINARY due to licensing restrictions.])
])
AC_SUBST([CRYPTO_FLAG], [--disable-openssl])
], [
@@ -59,7 +67,23 @@ AC_ARG_ENABLE([libwebp],
AS_IF([test "x$enable_libwebp" != "xno"], [
AC_MSG_RESULT([enabled])
- AC_CHECK_LIB([webp], [WebPDecodeRGBA], [], [AC_MSG_ERROR([no libwebp found, try --disable-libwebp, but stickers won't be displayed in the chat])])
+ AC_CHECK_LIB([webp], [WebPDecodeRGBA], [], [
+ AC_SEARCH_LIBS([WebPDecodeRGBA], [webp-7], [], [AC_MSG_ERROR([no libwebp found, try --disable-libwebp, but stickers won't be displayed in the chat])])
+ # If we get here, then it's one of the special-case scenarios.
+ # So we *do* want to set 'HAVE_LIBWEBP' to 1. But because the primary check
+ # failed, it would now go to "undefined".
+ # Therefore, override it:
+ AC_DEFINE(HAVE_LIBWEBP, 1)
+ ])
+ ])
+
+AC_MSG_CHECKING([for libpng])
+AC_ARG_ENABLE([libpng],
+ AS_HELP_STRING([--disable-libpng], [Disable libpng, stickers won't be converted]))
+
+AS_IF([test "x$enable_libpng" != "xno"], [
+ AC_MSG_RESULT([enabled])
+ AC_CHECK_LIB([png], [png_write_png], [], [AC_MSG_ERROR([no libpng found, try --disable-libpng])])
])
AC_ARG_ENABLE([icons],
@@ -75,8 +99,7 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys
AC_TYPE_SIZE_T
# Checks for library functions.
-AC_FUNC_MALLOC
-AC_CHECK_FUNCS([memset strdup])
+AC_CHECK_FUNCS([malloc memset strdup])
AC_SUBST(PURPLE_CFLAGS)
AC_SUBST(PURPLE_CPPFLAGS)
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..4e08d2e
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1,8 @@
+/files
+/telegram-purple/
+/telegram-purple.*
+
+/.debhelper/
+/autoreconf.after
+/autoreconf.before
+/debhelper-build-stamp
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..f8ad3a9
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,121 @@
+Packing, unpacking, and modifying (as per §4.14)
+================================================
+
+1. Generate the fully patched source, in a form ready for editing, that
+ would be built to create Debian packages.
+
+This step does not need any special attention. The standard invocation
+of "dpkg-source -x" does exactly what is needed.
+
+2. Modify the source and save those modifications so that they will be
+ applied when building the package.
+ == AND ==
+3. Remove source modifications that are currently being applied when
+building the package.
+
+There is no standard procedure for this package. Please note that:
+- quilt seems to be the default tool for this kind of work.
+- git-buildpackage (gbp) might not work as expected, so I refrained
+ from trying it for this task. See below.
+
+So far, issues reported against the project have been resolved quickly
+enough to avoid scenarios that usually need the d/patches/ directory.
+
+4. Generate a *.orig.tar.gz from the git repository, e.g., upgrade the
+ Debian source package to a new upstream version.
+
+Easy way:
+ use the provided orig-tars, e.g., 'telegram-purple_1.2.6.orig.tar.gz'
+
+Hard way (the procedure used to create these files):
+ $ git clone --recursive --branch debian-master \
+ https://github.com/majn/telegram-purple.git
+ $ cd telegram-purple
+ ...$ make dist
+
+The output should look like this:
+ Refresh commit.h
+ ./gen-origtar
+ mv -f bin/result.tar.gz telegram-purple_deb-v1.2.4-2-161-gb5272d4.orig.tar.gz
+
+The following approaches do NOT work:
+- Github's "download source tar", as this leaves out submodules.
+- git-buildpackage (gpb). No support for submodules-within-submodules.
+
+The file README.md of the project contains some hints about how to
+build packages, so here's a cheat sheet:
+- Just build a *.deb, ideal for local use:
+ fakeroot ./debian/rules binary
+- Build the package for analysis, e.g. lintian:
+ dpkg-buildpackage
+- Only produce a *.dsc and *.debian.tar.xz file:
+ ( cd .. && dpkg-source -b telegram-purple )
+- Run pbuilder (needs the previous step):
+ ( cd .. && sudo pbuilder --build telegram-purple_*.dsc )
+
+
+
+Package name
+============
+
+At the time of writing (2016-01-03), the Debian repository contained
+the following libpurple-backends:
+- pidgin-encryption
+- pidgin-latex
+- pidgin-otr
+- pidgin-plugin-pack
+- pidgin-privacy-please
+So following that tradition, this package would be called "pidgin-telegram".
+
+However, this would have a lot of disadvantages:
+- This is a frontend-agnostic backend that works with Adium, pidgin,
+ and Finch. We hope that it works nicely with all other frontends, too.
+ Calling it "pidgin-something" would be highly misleading.
+- All error messages and their translations would need to be adapted
+- paths would need to change that aren't configurable
+- some users are expecting the name to be "telegram-purple"
+ (at least initially)
+
+Overall, we consider this a needlessly confusing convention, and
+intentionally break with it.
+
+
+
+Packaging libtgl separately (as per §4.13)
+==========================================
+
+No.
+
+So far, ABI-compatibility was broken between virtually every other
+commit to libtgl, and the library is still under development. The
+latest "stable" release is heavily outdated and can no longer be used
+productively (missing features, known breaking bugs, etc.), so if we were to
+package tgl we would need to repackage it constantly, with no defined
+concept of version, soname, or anything reliable. No other program
+(*including* tg-cli) can be expected to use the same version of libtgl
+as telegram-purple does. (This might happen every now and then, but
+that would be random chance. Finally, it's highly unlikely that someone
+installs and uses both telegram-purple and tg-cli.)
+
+Packaging "tl-parser" or the intermediate "generate" program is also a
+bad idea: One *could* do that, but it's only useful for libtgl. So
+there is a significant lack of users.
+
+Note that tl-parser is a relatively (in comparison to the rest of
+libtgl) stable, portable application (not library). The output format
+hasn't changed in a over a year. If you believe that these six files
+will be used by a lot of people, I'll be happy to package tl-parser for
+you. However, please note that this would require at least two
+packages: tl-parser (binary), tl-parser-dev (headers), and possibly
+libtl-parser (common object files).
+
+In short: there's no set of component that could be packaged in a more
+clever way.
+
+
+
+About this document
+===================
+
+This is not written in Markdown. All formatting is in the hope of
+making it easy to read.
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..552f164
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,27 @@
+telegram-purple (1.4.0-1) UNRELEASED; urgency=medium
+
+ * New upstream release
+ * No longer actively try to push it into Debian: too unstable.
+ If you really want a .deb file, see README.md in the toplevel directory.
+
+ -- Ben Wiederhake <Ben.Wiederhake@gmail.com> Mon, 10 Apr 2017 23:31:32 +0200
+
+telegram-purple (1.3.0-1) unstable; urgency=medium
+
+ [ Hugues Morisset ]
+ * Initial Release (Closes: #833793)
+
+ [ Ben Wiederhake ]
+ * Please note that due to the format-switch in 1.2.6, the file
+ /etc/telegram-purple/server.pub is obsolete for all version after it.
+ It is ignored to allow for smooth transition from old, manual
+ installations, and may be removed in future versions.
+ * New upstream release
+ - Add translations and plural support
+ - Fix lots of bugs around secret chats (still not perfect, though)
+ - Fix behavior around hibernation
+ - Fix display errors and false warnings
+ - Fix crash on 'unsupported' media
+ - Support supergroups and channels
+
+ -- Ben Wiederhake <Ben.Wiederhake@gmail.com> Mon, 22 Aug 2016 20:59:47 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..d4f8a89
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,44 @@
+Source: telegram-purple
+Section: net
+Priority: optional
+Maintainer: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
+Uploaders:
+ Hugues Morisset <morisset.hugues@gmail.com>
+Build-Depends:
+ autotools-dev,
+ debhelper (>= 9),
+ dh-autoreconf,
+ libgcrypt20-dev,
+ libglib2.0-dev,
+ libpurple-dev,
+ libwebp-dev,
+ pkg-config,
+ zlib1g-dev,
+ libpng-dev,
+ git
+Standards-Version: 3.9.8
+Homepage: https://github.com/majn/telegram-purple
+Vcs-Git: https://github.com/majn/telegram-purple.git
+Vcs-Browser: https://github.com/majn/telegram-purple
+
+Package: telegram-purple
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Suggests:
+ pidgin | finch
+Description: Purple plugin to support Telegram
+ Plugin for purple which lets you use and manage your Telegram account
+ like any other account in purple. Some features like self-destruct
+ messages are currently in development.
+X-Comment: Traditionally, this plugin should be named "telegram-pidgin".
+ However, this plugin is also designed to work with at least Adium,
+ Finch, and hopefully all other libpurple-frontends, so this name would
+ be highly misleading. Furthermore, the plugin refers to itself as
+ "telegram-purple", and changing this (e.g. via a patch) would be highly
+ non-trivial and fragile. Finally, several users know this plugin under
+ the name telegram-purple only, so naming the Debian package differently
+ would be another source of confusion. Thus we intentionally break with
+ this tradition, and re-used the name telegram-purple from the original
+ project.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..f26d67e
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,102 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: pidgin-telegram
+Source: https://github.com/majn/telegram-purple
+
+Files: *
+Copyright: 2014-2015 Matthias Jentsch <mtthsjntsch@gmail.com>
+ 2014 Vitaly Valtman <mail@vysheng.ru>
+ 2014 Christopher Althaus <althaus.christopher@gmail.com>
+ 2014 Markus Endres <endresma45241@th-nuernberg.de>
+License: GPL-2+
+
+Files: AppStream/telegram-purple.metainfo.untranslated.xml
+Copyright: 2015 Jiri Eischmann <eischmann@redhat.com>
+License: GFDL-NIV
+License-Grant:
+ <metadata_license>GFDL-1.3</metadata_license>
+
+Files: debian/*
+Copyright: 2015 Hugues Morisset <morisset.hugues@gmail.com>
+ 2015 Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
+License: GPL-2+
+
+Files: tgl/*
+Copyright: 2013-2015 Vitaly Valtman <mail@vysheng.ru>
+ 2015 Matthias Jentsch <mtthsjntsch@gmail.com>
+ 2015 Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
+License: LGPL-2.1+
+
+Files: tgl/tl-parser/*
+Copyright: 2015 Matthias Jentsch <mtthsjntsch@gmail.com>
+ 2015 Vitaly Valtman <mail@vysheng.ru>
+ 2015 Christopher Althaus <althaus.christopher@gmail.com>
+ 2015 Markus Endres <endresma45241@th-nuernberg.de>
+License: GPL-2+
+
+Files: tgl/tl-parser/portable_endian.h
+Copyright: 2013-2014 Mathias Panzenböck <grosser.meister.morti@gmx.net>
+ 2015 PkmX <pkmx.tw@gmail.com>
+License: BSD-3-clause or Expat or Apache-2
+License-Grant:
+ I, Mathias Panzenböck, place this file hereby into the public domain.
+ Use it at your own risk for whatever you like. In case there are
+ jurisdictions that don't support putting things in the public domain
+ you can also consider it to be "dual licensed" under the BSD, MIT and
+ Apache licenses, if you want to. This code is trivial anyway. Consider
+ it an example on how to get the endian conversion functions on
+ different platforms.
+FIXME:
+ This is a tag for the sole purpose and hope that one day, someone
+ searches for "Fixme" (possibly case-sensitive). Thus, the issue in the
+ following "Comment" field can be found in both the Debian archive and
+ the original project.
+Comment:
+ This is a comment from the person who wrote this debian/copyright file.
+ .
+ The licensing was obviously meant to be "use whatever". However, we
+ have to mirror it precisely, and verbatim. I took the freedom to
+ interprete the terms "the MIT licenses" as "Expat"; "the BSD licenses"
+ as BSD 3-clause; and "the Apache licenses" as Apache 2.0. I do this
+ in order to keep the list reasonably small and close enough. However,
+ someone who understands the legal implications should take a close
+ look at this.
+
+License: LGPL-2.1+
+ On Debian systems, the complete text of the GNU Lesser General
+ Public License can be found in "/usr/share/common-licenses/LGPL-2.1".
+
+License: GPL-2+
+ On Debian systems, the complete text of the GNU General Public License
+ version 2 can be found in "/usr/share/common-licenses/GPL-2".
+
+License: BSD-3-clause
+ On Debian systems, the complete text of the Revised BSD License
+ (3-clause) can be found in "/usr/share/common-licenses/GPL-3".
+
+License: Apache-2
+ On Debian systems, the complete text of version 2.0 of the Apache License
+ can be found in ‘/usr/share/common-licenses/Apache-2.0’.
+
+License: GFDL-NIV
+ On Debian systems, the complete text of version 1.3 of the GNU Free
+ Document License ‘/usr/share/common-licenses/GFDL-1.3’.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..62deb04
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+AUTHORS
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..e817abb
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,22 @@
+#!/usr/bin/make -f
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+
+%:
+ dh $@ --parallel --with autoreconf
+
+# dh_auto_clean tries to "make distclean", but we don't have that target.
+override_dh_auto_clean:
+ test ! -e Makefile || $(MAKE) clean
+
+## http://wiki.debian.org/onlyjob/get-orig-source
+PKD := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
+PKG := $(shell dpkg-parsechangelog -l$(PKD)/changelog --show-field=Source)
+VER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog --show-field=Version | cut -d- -f1)
+.PHONY: get-orig-source
+get-orig-source: $(info I: $(PKG)_$(VER))
+ @echo "# Downloading for ${PKD}"
+ uscan --noconf --verbose --rename --destdir=$(CURDIR) \
+ --check-dirname-level=0 --force-download --download-version "$(VER)" $(PKD)
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..16100bc
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1 @@
+extend-diff-ignore = "(^|/)(config\.(h|log|status)|Makefile)$"
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644
index 0000000..84798a7
--- /dev/null
+++ b/debian/upstream/metadata
@@ -0,0 +1,29 @@
+Bug-Database: https://github.com/majn/telegram-purple/issues/
+Bug-Submit: https://github.com/majn/telegram-purple/issues/new
+#Cite-As: <a href="https://github.com/majn/telegram-purple">telegram-purple</ a>
+## Intentionally left out, to make sure that we don't accidentally break someone's
+## workflow. We err on the side of not prescribing anyone how to cite this work.
+#Changelog: https://github.com/majn/telegram-purple/blob/master/CHANGELOG.md
+## Intentionally left out as it's already outdated at the time of writing.
+#Contact: https://bit.ly/2S539ia
+## The old goo.gl link is not in use anymore.
+## The development chat group.
+## Intentionally left out as the link changes constantly.
+## https://github.com/majn/telegram-purple#group-chat
+## for a recent link.
+#Donation: See 'Contact'
+#FAQ: https://github.com/majn/telegram-purple/#faq
+## Intentionally left out: no real content yet.
+Name: telegram-purple
+## Might be superfluous, but I want to confirm that the upstream name is
+## indeed telegram-purple, hence the package name in Debian.
+Repository: https://github.com/majn/telegram-purple/
+Repository-Browse: https://github.com/majn/telegram-purple/
+Security-Contact:
+ Main developer: Matthias Jentch <mtthsjntsch AT gmail DOT com>
+ Debian packager: Ben Wiederhake <Ben Wiederhake DOT GitHub AT gmx DOT de>
+# Development channel (public): https://bit.ly/2S539ia
+## The old goo.gl link is not in use anymore.
+## Intentionally left out as the link changes constantly.
+## https://github.com/majn/telegram-purple#group-chat
+## for a recent link.
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..35a2049
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,17 @@
+version=4
+opts="\
+ downloadurlmangle=s/tag\/v(.*)$/download\/v$1\/telegram-purple_$1.orig.tar.gz/,\
+ filenamemangle=s/.*tag\/v(.*)$/telegram-purple_$1.orig.tar.gz/,\
+ uversionmangle=s/-(beta\d*)$/~$1/,\
+ " \
+ https://github.com/majn/telegram-purple/releases \
+ /tag/v([\d\.]*(?:-beta\d*)?) \
+ debian \
+ uupdate
+
+# Rationales (from bottom up):
+# - There will always be tags of the style "v1.2.5", so search for that
+# - The "beta" group must be non-capturing, otherwise uscan tries to concatenate them (e.g. "1.2.3-beta.-beta")
+# - Github tars are unusable; use the (hopefully attached) origtar
+# - Beta-releases should be ordered before the "main" release (was never relevant so far)
+# - Spacing in order to have exactly one rule per line
diff --git a/gen-origtar b/gen-origtar
index 99217e6..8ba3f1f 100755
--- a/gen-origtar
+++ b/gen-origtar
@@ -21,11 +21,14 @@
set -e
# -- Cleanup possibly left-over artifacts
-rm -f bin/tgl_tl-parser.tar bin/tgl.tar bin/commit.h.tar bin/result.tar bin/result.tar.gz
+rm -f bin/tgl.tar bin/commit.h.tar bin/result.tar bin/result.tar.gz
+# Very old artifact
+rm -f bin/tgl_tl-parser.tar
+# Setup
+mkdir -p bin
# -- Create parts
# Abuse the "bin" dir for temporary files.
-( cd tgl/tl-parser && git archive --prefix=telegram-purple/tgl/tl-parser/ --output=../../bin/tgl_tl-parser.tar HEAD )
( cd tgl && git archive --prefix=telegram-purple/tgl/ --output=../bin/tgl.tar HEAD )
git archive --prefix=telegram-purple/ --output=bin/result.tar HEAD
# This is a lot of options. Here's why.
@@ -39,7 +42,6 @@ tar --sort=name --mtime="1970-01-01 00:00Z" --owner=root --group=root --transfor
# -- Concatenate it all
tar --concatenate -f bin/result.tar bin/tgl.tar
-tar --concatenate -f bin/result.tar bin/tgl_tl-parser.tar
tar --concatenate -f bin/result.tar bin/commit.h.tar
gzip -n bin/result.tar
@@ -50,4 +52,4 @@ echo mv -f bin/result.tar.gz $TARNAME
mv -f bin/result.tar.gz $TARNAME
# -- Cleanup (never fail)
-rm -f bin/tgl_tl-parser.tar bin/tgl.tar bin/commit.h.tar bin/result.tar bin/result.tar.gz || true
+rm -f bin/tgl.tar bin/commit.h.tar bin/result.tar bin/result.tar.gz || true
diff --git a/mkwindows.sh b/mkwindows.sh
new file mode 100755
index 0000000..4e10452
--- /dev/null
+++ b/mkwindows.sh
@@ -0,0 +1,281 @@
+#!/bin/sh
+
+# This file is part of telegram-purple
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+#
+# Copyright Ben Wiederhake 2017-2018
+
+set -e
+
+
+# === What flavor? ===
+
+if [ -z "${USE_WEBP}" ]
+then
+ USE_WEBP=y
+ # Otherwise:
+ # USE_WEBP=n
+fi
+if [ -z "${USE_VERSIONINFO}" ]
+then
+ USE_VERSIONINFO=y
+ # Otherwise:
+ # USE_VERSIONINFO=n
+fi
+
+# Other flags go here, i.e., libpng
+
+
+# === Set up environment. ===
+
+# If you want to run parts by hand, these might be helpful.
+# These are *all* variables used anywhere in the script.
+
+# Sigh.
+HOST_MACHINE="$(uname -m)"
+HOST="${HOST_MACHINE}-linux-gnu"
+
+# MinGW
+MINGW_MACHINE="i686"
+MINGW_TARGET="${MINGW_MACHINE}-w64-mingw32"
+MINGW_BASE=/usr/${MINGW_TARGET}
+MINGW_INCLUDEDIR=/usr/share/mingw-w64/include
+
+# WebP compilation
+WEBP_INSTALL_DIR="objs/webp-install/"
+mkdir -p ${WEBP_INSTALL_DIR}
+WEBP_INSTALL_DIR_FULL="$(realpath ${WEBP_INSTALL_DIR})"
+WEBP_BUILD_DIR="objs/webp-build/"
+
+# Win32 references
+# Sadly, the library paths must be resolved *now* already.
+# AND, they must be absolute. Sigh.
+mkdir -p win32
+WIN32_GTK_DEV_DIR=`realpath win32/gtk+-bundle_2.24.10-20120208_win32`
+WIN32_PIDGIN_DIR=`realpath win32/pidgin-2.12.0`
+WIN32_WEBP_PRISTINE="win32/libwebp-0.6.1/"
+
+# Versioning information
+./configure -q
+make commit.h
+VERSION=`grep -E 'PACKAGE_VERSION' config.h | sed -re 's/^.*"(.*)".*$/\1/'`
+COMMIT=`grep -E 'define' commit.h | sed -re 's/^.*"(.*)".*$/\1/'`
+
+
+# === Ensure that all tools are available. ===
+
+# Commands
+for cmd in file make makensis "${MINGW_TARGET}-gcc" realpath sed tar unzip ; do
+ if ! command -v "$cmd" >/dev/null 2>&1 ; then
+ echo "No '$cmd' available. Are you sure you know what you're doing?"
+ exit 1
+ fi
+done
+
+# Fail-early for some obvious dependencies:
+if [ ! -r "${MINGW_BASE}/bin/libgcrypt-20.dll" ] ; then
+ echo "You're probably missing libgcrypt-mingw-w64-dev or so."
+ echo "Expected file: ${MINGW_BASE}/bin/libgcrypt-20.dll"
+ echo "For non-Debian systems, this could be a false positive, though."
+ exit 1
+fi
+if [ ! -r "${MINGW_BASE}/include/gpg-error.h" ] ; then
+ echo "You're probably missing libgpg-error-mingw-w64-dev or so."
+ echo "Expected file: ${MINGW_BASE}/include/gpg-error.h"
+ echo "For non-Debian systems, this could be a false positive, though."
+ exit 1
+fi
+if [ ! -r "${MINGW_BASE}/lib/zlib1.dll" ] ; then
+ echo "You're probably missing libz-mingw-w64 or so."
+ echo "Expected file: ${MINGW_BASE}/lib/zlib1.dll"
+ echo "For non-Debian systems, this could be a false positive, though."
+ exit 1
+fi
+if [ ! -r "${MINGW_BASE}/include/zlib.h" ] ; then
+ echo "You're probably missing libz-mingw-w64-dev or so."
+ echo "Expected file: ${MINGW_BASE}/include/zlib.h"
+ echo "For non-Debian systems, this could be a false positive, though."
+ exit 1
+fi
+
+
+# === Download all sources ===
+
+echo "===== 01: Prepare sources"
+make clean download_win32_sources
+
+
+# === Build libpng and libwebp ===
+
+# Sadly, we cannot use the pre-built binaries from Google,
+# as they are built with MVSC and that seems to be incompatible with MinGW.
+# Specifically, reading their libwebp.lib (requires special linker flags to
+# find that file) fails with the error "corrupt .drectve at end of def file".
+# GCC version 6.3.0 20170516 (GCC)
+echo "===== 02: Cross-compile libpng, libwebp"
+if [ "n" = "${USE_WEBP}" ]
+then
+ echo " Skipping webp"
+else
+ mkdir -p "${WEBP_INSTALL_DIR}"
+ # -a to (hopefully) preserve some timestamps
+ cp -ar "${WIN32_WEBP_PRISTINE}" "${WEBP_BUILD_DIR}"
+ cd "${WEBP_BUILD_DIR}"
+ # ./configure && make
+
+ # Disable linking against PNG, JPEG, TIFF, GIF, WIC,
+ # as those would either need cross-compilation, too, or some other magic.
+ ./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
+ --disable-dependency-tracking --prefix="${WEBP_INSTALL_DIR_FULL}/" \
+ --disable-static --enable-shared \
+ --enable-swap-16bit-csp --enable-experimental \
+ --disable-libwebpmux --disable-libwebpdemux \
+ --disable-libwebpdecoder --disable-libwebpextras \
+ --disable-png --disable-jpeg --disable-tiff --disable-gif --disable-wic
+ # The warning
+ # "configure: WARNING: using cross tools not prefixed with host triplet"
+ # stems from the fact that 'mt' (magnetic tape control) is not available
+ # for i686-w64-mingw32, so the x86_64 version is used. We can ignore that.
+ #
+ # Try to avoid too extreme autotools overhead:
+ touch Makefile.in
+ #
+ # Finally.
+ make --quiet -j4 install
+ cd ../..
+ if ! [ -r ${WEBP_INSTALL_DIR}/include/webp/decode.h -a -r ${WEBP_INSTALL_DIR}/bin/libwebp-7.dll ] ; then
+ # I expect that cross-compiling webp is going to be very fragile,
+ # so print a nice error in case this happens.
+ echo "Cross-compilation apparently failed:"
+ echo "Some files in ${WEBP_INSTALL_DIR} are missing."
+ echo "Please submit a bugreport."
+ exit 1
+ fi
+ mkdir -p contrib
+ cp ${WEBP_INSTALL_DIR}/bin/libwebp-7.dll contrib
+fi
+
+
+# === Build auto-gen files ===
+
+# Create and backup all auto/ files
+echo "===== 03: Create those precious executables"
+make tgl/Makefile
+cd tgl && git checkout tl-parser/tl-parser.c tl-parser/tlc.c && cd ..
+make -C tgl -j4 bin/generate bin/tl-parser
+make bin
+tar cf bin/tgl-bin.tar tgl/bin/
+
+
+# === Cross-compilation itself ===
+
+# Clean tgl only (do not touch bin/ with the auto-gen files!)
+echo "===== 04: Cleanup tgl"
+make -C tgl clean
+
+# Reconfigure
+echo "===== 05: Configure for cross-compilation"
+# Must first configure telegram-purple, otherwise it thinks tgl/Makefile is outdated.
+if [ "y" = "${USE_WEBP}" ]
+then
+ LDFLAGS_WEBP="-L${WEBP_INSTALL_DIR_FULL}/bin"
+ CONFFLAGS_WEBP="--enable-libwebp"
+fi
+./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
+ --disable-libpng --disable-libwebp \
+ --with-zlib="${MINGW_BASE}" \
+ PURPLE_CFLAGS="\${WIN32_INC}" \
+ PURPLE_LIBS="-lpurple -lglib-2.0" \
+ LDFLAGS="-L${WIN32_GTK_DEV_DIR}/lib -L${WIN32_PIDGIN_DIR}-win32bin ${LDFLAGS_WEBP}" \
+ LIBS="-lssp -lintl -lws2_32" \
+ ${CONFFLAGS_WEBP}
+cd tgl
+./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
+ --disable-openssl --disable-extf \
+ --with-zlib="${MINGW_BASE}" \
+ LIBS="-lssp"
+cd ..
+
+# Pretend we're building up the preliminaries for auto/
+echo "===== 06: Compile tgl, pre-'generate' files"
+# Need to override LOCAL_LDFLAGS to remove '-rdynamic'.
+echo " In case this fails mysteriously with some 'file stubs-32.h not found':"
+echo " You're probably missing libc6-dev-i386 or some other dev files."
+# Don't care about unportability of tl-parser
+echo 'int main(){return 1;}' > tgl/tl-parser/tl-parser.c
+echo ' ' > tgl/tl-parser/tlc.c
+make -C tgl -j4 LOCAL_LDFLAGS="-lz -lgcrypt -lssp -ggdb" bin/generate bin/tl-parser
+
+# Surprise! Don't use the host bin/generate and bin/tl-parser to create the autogen files,
+# but instead use the *build* versions. The advantage: we can actually run them!
+echo "===== 07: Inject binaries"
+tar xf bin/tgl-bin.tar --touch
+
+# Just DO IT!
+echo "===== 08: Compile tgl, post-'generate' files"
+make -C tgl -j4 LOCAL_LDFLAGS="-lz -lgcrypt -lssp -ggdb" libs/libtgl.a
+
+# Don't let your DREAMS stay DREAMS!
+echo "===== 09: Compile telegram-purple"
+# Optionally, prepare and add the "resources" file.
+VERSIONINFO_OBJECTS=""
+if [ "y" = "${USE_VERSIONINFO}" ]
+then
+ mkdir -p objs
+ cat <<EOFRC > objs/info.rc
+#include "../commit.h"
+1 VERSIONINFO
+FILEVERSION MAGIC_SED_VERSION
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "0409"
+ BEGIN
+ VALUE "FileDescription", "Telegram protocol plug-in for libpurple"
+ VALUE "FileVersion", GIT_COMMIT
+ END
+ END
+END
+EOFRC
+ COMMA_VERSION=`grep -E 'PACKAGE_VERSION' config.h | sed -re 's/^.*"(.*)".*$/\1/' -e 's/\./,/g'`
+ sed -i -re "s/MAGIC_SED_VERSION/${COMMA_VERSION}/" objs/info.rc
+ ${MINGW_TARGET}-windres objs/info.rc -O coff -o objs/info.res
+ VERSIONINFO_OBJECTS="objs/info.res"
+fi
+# CFLAGS: Remove LOCALEDIR definition.
+# PRPL_NAME: Assign Windows-specific name.
+# (Baked into the file, so we can't just rename it.)
+# LDFLAGS: Remove -rdynamic flag.
+make -j4 bin/libtelegram.dll \
+ CFLAGS_INTL=-DENABLE_NLS \
+ PRPL_NAME=libtelegram.dll \
+ EXTRA_OBJECTS="${VERSIONINFO_OBJECTS}" \
+ LDFLAGS_EXTRA=-ggdb
+
+# Package it up
+echo "===== 10: Create installer"
+VERSION=`grep -E 'PACKAGE_VERSION' config.h | sed -re 's/^.*"(.*)".*$/\1/'`
+COMMIT=`grep -E 'define' commit.h | sed -re 's/^.*"(.*)".*$/\1/'`
+make PRPL_NAME=libtelegram.dll win-installer-deps
+makensis -DPLUGIN_VERSION="${VERSION}+g${COMMIT}" -DPRPL_NAME=libtelegram.dll \
+ -DWIN32_DEV_TOP=contrib telegram-purple.nsi
+
+# There's no monster under your bed, I swear.
+echo "===== 11: Unspoof files"
+# Stealth cleanup
+cd tgl && git checkout tl-parser/tl-parser.c tl-parser/tlc.c && cd ..
+
+echo "===== COMPLETE: All done. Installer executable is in top directory."
diff --git a/po/.gitignore b/po/.gitignore
index 85ebba8..7f142c5 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -1 +1,7 @@
/*.mo
+
+# See Makefile, section "Translation fixes":
+/de.po
+/it.po
+/pl.po
+/ru.po
diff --git a/po/LINGUAS b/po/LINGUAS
index f1a8116..b82edf4 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,11 +1,13 @@
bg
cs_CZ
-de_DE
+de
+es
es_AR
fr
-it_IT
+it
nl
-pl_PL
-ru_RU
+pl
+pt_BR
+ru
sq
uk
diff --git a/po/LINGUAS.BAD b/po/LINGUAS.BAD
index 67ba222..7491249 100644
--- a/po/LINGUAS.BAD
+++ b/po/LINGUAS.BAD
@@ -2,5 +2,4 @@
# If you would like to improve the state of this, please see the translation page:
# https://www.transifex.com/telegram-purple-developers/telegram-purple/
-da # < 55% complete
-pt_BR # < 75% complete
+da # < 48% complete
diff --git a/po/bg.po b/po/bg.po
index a4bd729..7eb5d98 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,108 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Любомир Василев, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Любомир Василев <lyubomirv@abv.bg>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Любомир Василев, 2018\n"
"Language-Team: Bulgarian (https://www.transifex.com/telegram-purple-developers/teams/53149/bg/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Неуспешно създаване на група"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Моля, изберете поне един друг потребител:"
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Заявката беше неуспешна"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Тайният разговор е готов."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Тайният разговор беше приключен."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Съобщението е отбелязано като прочетено."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Връзка за покана: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Създаването на връзка беше неуспешно"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Само администраторите на групата могат да правят това."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Присъединихте се към разговора"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Разговорът беше добавен към списъка от стаи за разговори."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Започване на таен разговор…"
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Покана на потребители чрез връзка…"
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Изтриване и изход…"
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Неуспешно вписване като %s: файлът (публичният ключ) не беше открит."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Уверете се, че „telegram-purple“ е инсталирано правилно,\n"
-"включително файлът „.tglpub“.\n"
-"Ако използвате SELinux (наприбер при използване на „Tails“),\n"
-"опитайте „make local_install“ или просто копирайте\n"
-"%1$s в %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -111,12 +93,12 @@ msgstr ""
"Неуспешно вписване като %s: има проблем с вътрешната библиотека „tgl“. Моля,"
" изпратете доклад за грешката, заедно с журнала."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Проблем в „tgl“"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -126,40 +108,44 @@ msgstr ""
"Номерата трябва да започват с пълния международен телефонен код на страната,"
" например +359 за България."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Непълен телефонен номер"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Тайният разговор вече е изтрит"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Тайният разговор не е готов"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Само създателят на канала може да публикува съобщения."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Неуспешно канене на приятел в разговора"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Посоченият потребител не съществува."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "тел. номер (+ код на страната)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "kick <потребител>: Изритване на потребител от стаята."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Парола (двустепенно удостоверяване)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -167,27 +153,31 @@ msgstr ""
"Резервно удостоверяване чрез КС\n"
"(Помага, когато не използвате „Pidgin“ и от Вас не се изисква кода)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "винаги"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Винаги"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "никога"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Никога"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "питане всеки път"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Питане всеки път"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Приемане на тайни разговори"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Показване на приятелите извън линия след (брой дни)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -195,26 +185,44 @@ msgstr ""
"Да не се изтегля историята, по-стара от (брой дни)\n"
"(0 = неограничено)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Размер за авто. зареждане на медийни файлове (кбит)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Отхвърляне"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Автоматично зареждане"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Авт. зареждане на файлови прехвърляния до (КБ)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Прехвърляния на по-големи файлове"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Добавяне на всички групови разговори в списъка с приятели"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Показване на уведомления за получаване"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Изпращане на уведомления за получаване при присъствие"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Да се използва IPv6 за свързавне (нужно е рестартиране)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Добавка за протокола „Telegram“."
@@ -287,52 +295,90 @@ msgid "Channel %1$s created"
msgstr "Каналът „%1$s“ беше създаден"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Канали в Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Неуспешно изпращане на съобщението."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Неуспешно изпращане на изображениео."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s изпрати стикер."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "неуспешно зареждане на съобщение"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[анимация]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[снимка]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[звук]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[видео]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[документ]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[местоположение]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[контакт]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[уеб-страница]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[неподдържан формат]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Препратено съобщение от: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; %s написа:</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Препратено съобщение:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Неизвестен потребител написа:</b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "неуспешно зареждане на съобщение"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "документ"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "звук"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "анимация"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "видео"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "неуспешно зареждане на документ или изображение"
@@ -573,7 +619,7 @@ msgstr "последния месец"
msgid "unknown"
msgstr "неизвестно"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Разговори в Telegram"
@@ -581,34 +627,34 @@ msgstr "Разговори в Telegram"
msgid "You have already left this chat."
msgstr "Вече сте напуснали този разговор"
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Тема:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Връзка за покана:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Ид. на разговора:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Надгрупа"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Канал"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Група"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Потребители в разговора"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Вид"
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 3dff3b9..89ab8d7 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -1,108 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Jan Breuer <j123b567@jaybee.cz>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Jiri Eischmann <jiri@eischmann.cz>, 2017\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018\n"
"Language-Team: Czech (Czech Republic) (https://www.transifex.com/telegram-purple-developers/teams/53149/cs_CZ/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs_CZ\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Nelze vytvořit skupinu"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Prosím vyberte alespoň jednoho dalšího uživatele."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Dotaz selhal"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Tajný chat připraven."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Tajný chat ukončen."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Zpráva označena jako přečtená."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Odkaz pozvánky: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Vytváření odkazu pro chat selhalo"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "K tomuto úkonu potřebujete být administrátorem skupiny."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Připojeno k chatu"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Chat přidán do seznamu chatovacích místností"
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Začít tajný chat..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Pozvat uživatele odkazem..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Smazat a ukončit..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Nelze se přihlásit jako %s: soubor (veřejný klíč) nenalezen."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Ověřte, jestli je telegram-purple nainstalován správně\n"
-"včetně souboru .tglpub.\n"
-"Pokud používáte SELinux (například při použití Tails),\n"
-"zkuste 'make local_install', nebo jen nakopírujte\n"
-"%1$s do %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -111,12 +93,12 @@ msgstr ""
"Nelze se přihlásit jako %s: problém v použité knihovně \"tgl\". Prosím "
"nahlaste chybu včetně chybového protokolu."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problém v tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -126,40 +108,44 @@ msgstr ""
"musí začínat s plným mezinárodním předčíslím, např. +420 pro Českou "
"republiku."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Nekompletní telefonní číslo"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Tajný chat byl již smazán"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Tajný chat není připraven"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Pouze tvůrce kanálu může zasílat zprávy."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Nelze pozvat kamaráda do chatu"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Zadaný uživatel neexistuje."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "telefonní číslo (+ předčíslí země)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "vykopnout <user>: Vykopnout uživatele z místnosti."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Heslo (dvoufaktorová autentizace)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -167,27 +153,31 @@ msgstr ""
"Záložní ověřovací SMS\n"
"(Pomáhá, když nepoužíváte Pidgin a nejste vyzváni k zadání kódu)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "vždy"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Vždy"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nikdy"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nikdy"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "zeptat se"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Zeptat se"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Přijímat tajné chaty"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Zobrazit odpojené kamarády po (dny)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -195,26 +185,44 @@ msgstr ""
"Nestahovat historii starší než (dny)\n"
"(0 pro neomezeně)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Velikost automaticky nahraných médií (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Vyřadit"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Automatické načtení"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Automatické přenášení souborů do (kb)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Přenosy větších souborů"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Přidat všechny chatovací skupiny do seznamu kamarádů"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Zobrazit oznámení o doručení"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "V přítomnosti zasílat oznámení o doručení"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Pro připojení použít IPv6 (vyžaduje restart)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Zásuvný modul protokolu Telegram."
@@ -260,6 +268,7 @@ msgid_plural "%2$s set self destruction timer to %1$d seconds."
msgstr[0] "%2$s nastavil(a) sebedestrukční časovač na %1$d sekundu."
msgstr[1] "%2$s nastavil(a) sebedestrukční časovač na %1$d sekundy."
msgstr[2] "%2$s nastavil(a) sebedestrukční časovač na %1$d sekund."
+msgstr[3] "%2$s nastavil(a) sebedestrukční časovač na %1$d sekund."
#: ../tgp-msg.c:144
#, c-format
@@ -268,6 +277,7 @@ msgid_plural "%2$s marked %1$d messages read."
msgstr[0] "%2$s označil(a) %1$d zprávu jako přečtenou."
msgstr[1] "%2$s označil(a) %1$d zprávy jako přečtené."
msgstr[2] "%2$s označil(a) %1$d zpráv jako přečtené."
+msgstr[3] "%2$s označil(a) %1$d zpráv jako přečtené."
#: ../tgp-msg.c:150
#, c-format
@@ -276,6 +286,7 @@ msgid_plural "%2$s deleted %1$d messages."
msgstr[0] "%2$s smazal(a) %1$d zprávu."
msgstr[1] "%2$s smazal(a) %1$d zprávy."
msgstr[2] "%2$s smazal(a) %1$d zpráv."
+msgstr[3] "%2$s smazal(a) %1$d zpráv."
#: ../tgp-msg.c:156
#, c-format
@@ -284,6 +295,7 @@ msgid_plural "%2$s made a screenshot of %1$d messages."
msgstr[0] "%2$s vytvořil(a) screenshot %1$d zprávy."
msgstr[1] "%2$s vytvořil(a) screenshot %1$d zpráv."
msgstr[2] "%2$s vytvořil(a) screenshot %1$d zpráv."
+msgstr[3] "%2$s vytvořil(a) screenshot %1$d zpráv."
#: ../tgp-msg.c:162
#, c-format
@@ -291,52 +303,90 @@ msgid "Channel %1$s created"
msgstr "Kanál %1$s vytvořen"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Kanály Telegramu"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Odeslání zprávy selhalo."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Odeslání obrázku selhalo."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s odeslal nálepku."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "selhalo načítání zprávy"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animace]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[fotka]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[audio]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[video]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[dokument]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[pozice]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[kontakt]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[webová stránka]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Zpráva přeposlaná od:%s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; %s napsal(a):</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Přeposlaná zpráva:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Neznámý uživatel napsal:</b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "selhalo načítání zprávy"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "dokument"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animace"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "video"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "nahrávání dokumentu nebo obrázku sehlalo"
@@ -575,7 +625,7 @@ msgstr "poslední měsíc"
msgid "unknown"
msgstr "neznámé"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Chaty Telegramu"
@@ -583,34 +633,34 @@ msgstr "Chaty Telegramu"
msgid "You have already left this chat."
msgstr "Již jste tento chat opistili."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Předmět:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Odkaz pozvánky:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "ID Chatu:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Superskupina"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Kanál"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Skupina"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Uživatelé v chatu"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Typ"
diff --git a/po/da.po b/po/da.po
index 60b62a6..44d5c20 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,208 +1,220 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# TitanusEramius <titanus@aptget.dk>, 2017
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: TitanusEramius <titanus@aptget.dk>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: TitanusEramius <titanus@aptget.dk>, 2017\n"
"Language-Team: Danish (https://www.transifex.com/telegram-purple-developers/teams/53149/da/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Kunne ikke lave gruppe"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
-msgstr "Vælg mindst én anden bruger."
+msgstr "Vælg mindst én anden bruger."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
-msgstr "Forespørgsel fejlede"
+msgstr "Forespørgsel fejlede"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Hemmelig chat klar."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Hemmelig chat afsluttet."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
-msgstr "Besked markeret som læst."
+msgstr "Besked markeret som læst."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Invitationslink: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Oprettelse af chatlink fejlede"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
-msgstr ""
+msgstr "Du skal være admin af gruppen for at kunne gøre det."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Chat tilsluttet"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
-msgstr "Chat tilføjet listen af chatrum."
+msgstr "Chat tilføjet listen af chatrum."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Start hemmelig chat..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
-msgstr "Invitér brugere med link..."
+msgstr "Invitér brugere med link..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Slet og afslut..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problem i tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
"start with the full international prefix code, e.g. +1 for USA."
msgstr ""
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Ugyldigt telefonnummer"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Hemmelig chat er allerede slettet"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Hemmelig chat er ikke klar"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Kun den der opretter en kanal kan skrive beskeder."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Kan ikke invitere ven til chat"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Angivet bruger eksisterer ikke."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "Telefon nr. (+ landekode)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Kodeord (to-vejs godkendelse)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
msgstr ""
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "altid"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "aldrig"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "spørg"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
-msgstr "Acceptér hemmelige chats"
+msgstr "Acceptér hemmelige chats"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Vis venner som offline efter (dage)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
msgstr ""
-"Hent ikke historie ældre end (dage)\n"
-"(0 for ubegrænset)"
+"Hent ikke historie ældre end (dage)\n"
+"(0 for ubegrænset)"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr ""
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Vis modtagelseskvittering"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr ""
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr ""
@@ -214,12 +226,12 @@ msgstr "%2$s oprettede chat %1$s."
#: ../tgp-msg.c:61
#, c-format
msgid "%2$s changed title to %1$s."
-msgstr "%2$s ændrede titel til %1$s."
+msgstr "%2$s ændrede titel til %1$s."
#: ../tgp-msg.c:64
#, c-format
msgid "%s changed photo."
-msgstr "%s ændrede foto."
+msgstr "%s ændrede foto."
#: ../tgp-msg.c:67
#, c-format
@@ -229,12 +241,12 @@ msgstr "%s slettede foto."
#: ../tgp-msg.c:75
#, c-format
msgid "%1$s added user %2$s by link."
-msgstr "%1$s tilføjede bruger %2$s med link."
+msgstr "%1$s tilføjede bruger %2$s med link."
#: ../tgp-msg.c:90
#, c-format
msgid "%2$s added user %1$s."
-msgstr "%2$s tilføjede bruger %1$s."
+msgstr "%2$s tilføjede bruger %1$s."
#: ../tgp-msg.c:114 ../tgp-msg.c:131
#, c-format
@@ -275,52 +287,90 @@ msgid "Channel %1$s created"
msgstr ""
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr ""
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr ""
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Afsendelse af billede fejlede."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr ""
-#: ../tgp-msg.c:463
-msgid "failed loading message"
+#: ../tgp-msg.c:483
+msgid "[photo]"
msgstr ""
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr ""
-
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr ""
@@ -378,11 +428,11 @@ msgstr "Efternavn"
#: ../tgp-request.c:103
msgid "Register"
-msgstr "Registrér"
+msgstr "Registrér"
#: ../tgp-request.c:103
msgid "Please register your phone number."
-msgstr "Registrér venligst dit telefonnummer"
+msgstr "Registrér venligst dit telefonnummer"
#. purple_request API not available
#: ../tgp-request.c:108
@@ -452,7 +502,7 @@ msgstr "Lav gruppechat"
#: ../tgp-request.c:198
msgid "Invite users"
-msgstr "Invitér brugere"
+msgstr "Invitér brugere"
#: ../tgp-request.c:217 ../tgp-request.c:232
msgid "Change password"
@@ -540,14 +590,14 @@ msgstr "sidste uge"
#. This is preceded by a colon.
#: ../tgp-utils.c:56
msgid "last month"
-msgstr "sidste måned"
+msgstr "sidste måned"
#. This is preceded by a colon. It refers to a point on time.
#: ../tgp-utils.c:60
msgid "unknown"
msgstr "ukendt"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr ""
@@ -555,34 +605,34 @@ msgstr ""
msgid "You have already left this chat."
msgstr "Du har allerede forladt denne chat."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Emne:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Invitationslink:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Chat ID:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr ""
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr ""
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr ""
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr ""
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr ""
diff --git a/po/de_DE.po b/po/de_DE.po
index 0241d8a..565866e 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1,109 +1,89 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018\n"
"Language-Team: German (Germany) (https://www.transifex.com/telegram-purple-developers/teams/53149/de_DE/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Konnte Gruppe nicht erstellen."
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Wählen Sie mindestens einen weiteren Benutzer."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Anfrage fehlgeschlagen"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Geheimer Chat ist bereit."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Geheimer Chat wurde beendet."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Nachricht als gelesen markiert."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Einladungslink: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Konnte keinen Link zum Chat erstellen"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Sie müssen Gruppenadmin sein, um das zu tun."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Chat beigetreten"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Chat der Liste von Chat-Räumen hinzugefügt."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Beginne geheimen Chat ..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Nutzer per Link einladen ..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Löschen und verlassen ..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-"Konnte nicht als %s einloggen: Datei (öffentlichen Schlüssel) nicht gefunden"
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Stellen Sie eine korrekte Installation sicher,\n"
-"inklusive der .tglpub-Datei.\n"
-"Falls Sie SELinux benutzen (z.B. innerhalb von Tails),\n"
-"versuchen Sie 'make local_install', oder kopieren Sie einfach\n"
-"%1$s nach %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -112,12 +92,12 @@ msgstr ""
"Konnte nicht als %s einloggen: Problem in der Bibliothek 'tgl'. Bitte "
"erstelle einen Bigreport mit Debug-Log."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problem in tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -127,40 +107,44 @@ msgstr ""
" müssen mit dem vollen internationalen Präfix-Code starten, z.B. +49 für "
"Deutschland."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Unvollständige Telefonnummer"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Geheimer Chat wurde bereits gelöscht."
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Geheimer Chat ist noch nicht bereit."
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Nur der Ersteller eines Kanals kann Nachrichten senden."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Kann den Freund nicht zum Chat einladen"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Angegebener Benutzer existiert nicht."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "Telefonnummer (+ Länder-Präfix)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "kick <Benutzer>: Entferne <Benutzer> aus dem Raum."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Passwort (Zwei-Faktor-Authentifizierung)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -169,27 +153,31 @@ msgstr ""
"(Hilfreich wenn Sie nicht Pidgin verwenden, und die Frage\n"
"nach dem SMS-Code aus bleibt)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "immer"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Immer"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nie"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nie"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "nachfragen"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Nachfragen"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Geheime Chats akzeptieren"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Freunde als offline anzeigen nach (Tage)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -197,26 +185,44 @@ msgstr ""
"Abrufen des Verlaufs begrenzen auf (Tage)\n"
"(0 für unbegrenzt)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Lade automatisch ab Größe (KB)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Verwerfen"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Immer laden"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Lade Dateien automatisch bis zu (kb)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Größere Dateitransfers"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Alle Gruppenchats in die Freundesliste einfügen"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Empfangsbestätigungen anzeigen"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Empfangsbestätigungen senden wenn anwesend"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Benutze IPv6 (Neustart notwendig)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Plugin für das Telegram Protokoll."
@@ -289,52 +295,90 @@ msgid "Channel %1$s created"
msgstr "Kanal %1$s erstellt"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Telegram Kanäle"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Absenden der Nachricht fehlgeschlagen."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Absenden des Bilds fehlgeschlagen."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s hat einen Sticker gesendet."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "konnte Nachricht nicht laden."
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[Foto]"
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[Animation]"
-
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[Audio]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[Video]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[Dokumenŧ]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[Position]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[Kontakt]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[Webseite]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[nicht unterstütztes Format]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Weitergeleitet von: %s</b> %s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; %s schrieb:</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Weitergeleitete Nachricht:</b> %s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Unbekannter Benutzer schrieb:</b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "konnte Nachricht nicht laden."
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "Dokument"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "Audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "Animation"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "Video"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "konnte Dokument oder Datei nicht laden"
@@ -576,7 +620,7 @@ msgstr "Letzten Monat"
msgid "unknown"
msgstr "Unbekannt"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Telegram Unterhaltugen"
@@ -584,34 +628,34 @@ msgstr "Telegram Unterhaltugen"
msgid "You have already left this chat."
msgstr "Du hast diesen Chat bereits verlassen."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Thema:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Einladungslink:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Chat ID:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Über-Gruppe"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Kanal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Gruppe"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Benutzer im Chat"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Typ"
diff --git a/po/es.po b/po/es.po
index 45d283b..d56099e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,287 +1,293 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# aguador <waterbearer54@gmx.com>, 2017
+# C0D3C <gomezgleonardob@gmail.com>, 2019
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: aguador <aguador@openmailbox.org>, 2017\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: C0D3C <gomezgleonardob@gmail.com>, 2019\n"
"Language-Team: Spanish (https://www.transifex.com/telegram-purple-developers/teams/53149/es/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "No se pudo crear el grupo"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
-msgstr "Por favor, seleccioná al menos otro usuario."
+msgstr "Por favor, seleccioná al menos otro usuario."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
-msgstr "Falló la consulta"
+msgstr "Falló la consulta"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
-msgstr "Conversación secreta lista."
+msgstr "Conversación secreta lista."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
-msgstr "Finalizó la conversación secreta."
+msgstr "Finalizó la conversación secreta."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
-msgstr "Mensaje marcado como leído."
+msgstr "Mensaje marcado como leído."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
-msgstr "Enlace de invitación: %s"
+msgstr "Enlace de invitación: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
-msgstr "Falló la creación del enlace de converesación"
+msgstr "Falló la creación del enlace de converesación"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Necesite ser administrador del grupo para hacer eso."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
-msgstr "Unido a la conversación"
+msgstr "Unido a la conversación"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
-msgstr "Conversación agregada a la lista de salas de conversaciones."
+msgstr "Conversación agregada a la lista de salas de conversaciones."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
-msgstr "Iniciar conversación secreta..."
+msgstr "Iniciar conversación secreta..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Invitar a usuarios por enlace..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Eliminar y salir..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-"No se pudo iniciar sesión como %s: no se encontró el archivo (clave "
-"pública)."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Asegurarse de que telegram-purple está instalado apropiadamente,\n"
-"incluyendo el archivo .tglpub.\n"
-"Si esta ejecutando SELinux (por ejemplo, al usar Tails),\n"
-"intente probar 'make local_install', o simplemente copie\n"
-"%1$s a %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
-"No se pudo iniciar sesión como %s: problema con la biblioteca 'tgl'. Por "
-"favor, envíe un informe de error con el registro de depuración."
+"No se pudo iniciar sesión como %s: problema con la biblioteca 'tgl'. Por "
+"favor, envíe un informe de error con el registro de depuración."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problema en tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
"start with the full international prefix code, e.g. +1 for USA."
msgstr ""
-"No se pudo iniciar sesión como %s: al número de teléfono le falta el prefijo"
-" del país. Los números deben comenzar con el código de prefijo "
-"internacional, por ejemplo: +34 para España."
+"No se pudo iniciar sesión como %s: al número de teléfono le falta el "
+"prefijo del país. Los números deben comenzar con el código de prefijo "
+"internacional, por ejemplo: +34 para España."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
-msgstr "Número de teléfono incompleto"
+msgstr "Número de teléfono incompleto"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
-msgstr "Ya se eliminó la conversación secreta"
+msgstr "Ya se eliminó la conversación secreta"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
-msgstr "La conversación secreta no está lista"
+msgstr "La conversación secreta no está lista"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
-msgstr "Sólo el creador de un canal puede publicar mensajes."
+msgstr "Sólo el creador de un canal puede publicar mensajes."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
-msgstr "No se pudo invitar al contacto a la conversación"
+msgstr "No se pudo invitar al contacto a la conversación"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "El usuario especificado no existe."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
-msgstr "Núm. tlf. (+ prefijo país)"
+msgstr "Núm. tlf. (+ prefijo país)"
+
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "Echar <usuario>: Echar al usuario de la sala."
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
-msgstr "Contraseña (autenticación de dos pasos)"
+msgstr "Contraseña (autenticación de dos pasos)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
msgstr ""
-"Verificación por mensaje de texto\n"
-"(Sirve para cuando no está usando Pidgin y no se le pido el código)"
+"Verificación por mensaje de texto\n"
+"(Sirve para cuando no está usando Pidgin y no se le pido el código)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "siempre"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Siempre"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nunca"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nunca"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "pedir"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Preguntar"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Aceptar conversaciones secretas"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
-msgstr "Mostrar contactos desconectados después de (días)"
+msgstr "Mostrar contactos desconectados después de (días)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
msgstr ""
-"No recuperar el historial anterior a (días)\n"
-"(introducir '0' para no aplicar límites)"
+"No recuperar el historial anterior a (días)\n"
+"(introducir '0' para no aplicar límites)"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Deshacer"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Tamaño del medio de carga automático (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Cargar automáticamente"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Cargar automático archivos hasta (kb)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Transferencias más grandes"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Agregar todas las conversaciones grupales a la lista del contacto"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Mostrar acuses de recibo"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Enviar acuses de recibo al estar presente"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Usar IPV6 para conectarse (reinicio es requerido)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Plugin de protocolo de Telegram."
#: ../tgp-msg.c:58
#, c-format
msgid "%2$s created chat %1$s."
-msgstr "%2$s creó la conversación %1$s."
+msgstr "%2$s creó la conversación %1$s."
#: ../tgp-msg.c:61
#, c-format
msgid "%2$s changed title to %1$s."
-msgstr "%2$s cambió el título a %1$s."
+msgstr "%2$s cambió el título a %1$s."
#: ../tgp-msg.c:64
#, c-format
msgid "%s changed photo."
-msgstr "%s cambió la foto."
+msgstr "%s cambió la foto."
#: ../tgp-msg.c:67
#, c-format
msgid "%s deleted photo."
-msgstr "%s eliminó la foto."
+msgstr "%s eliminó la foto."
#: ../tgp-msg.c:75
#, c-format
msgid "%1$s added user %2$s by link."
-msgstr "%1$s agregó al usuario %2$s mediante un enlace."
+msgstr "%1$s agregó al usuario %2$s mediante un enlace."
#: ../tgp-msg.c:90
#, c-format
msgid "%2$s added user %1$s."
-msgstr "%2$s agregó al usuario %1$s."
+msgstr "%2$s agregó al usuario %1$s."
#: ../tgp-msg.c:114 ../tgp-msg.c:131
#, c-format
msgid "%2$s deleted user %1$s."
-msgstr "%2$s eliminó al usuario %1$s."
+msgstr "%2$s eliminó al usuario %1$s."
#: ../tgp-msg.c:138
#, c-format
msgid "%2$s set self destruction timer to %1$d second."
msgid_plural "%2$s set self destruction timer to %1$d seconds."
-msgstr[0] "%2$s estableció un temporizador autodestructivo a %1$d segundo."
-msgstr[1] "%2$s estableció un temporizador autodestructivo a %1$d segundos."
+msgstr[0] "%2$s estableció un temporizador autodestructivo a %1$d segundo."
+msgstr[1] "%2$s estableció un temporizador autodestructivo a %1$d segundos."
#: ../tgp-msg.c:144
#, c-format
msgid "%2$s marked %1$d message read."
msgid_plural "%2$s marked %1$d messages read."
-msgstr[0] "%2$s marcó %1$d mensaje como leído."
-msgstr[1] "%2$s marcó %1$d mensajes como leídos."
+msgstr[0] "%2$s marcó %1$d mensaje como leído."
+msgstr[1] "%2$s marcó %1$d mensajes como leídos."
#: ../tgp-msg.c:150
#, c-format
msgid "%2$s deleted %1$d message."
msgid_plural "%2$s deleted %1$d messages."
-msgstr[0] "%2$s eliminó %1$d mensaje."
-msgstr[1] "%2$s eliminó %1$d mensajes."
+msgstr[0] "%2$s eliminó %1$d mensaje."
+msgstr[1] "%2$s eliminó %1$d mensajes."
#: ../tgp-msg.c:156
#, c-format
msgid "%2$s made a screenshot of %1$d message."
msgid_plural "%2$s made a screenshot of %1$d messages."
-msgstr[0] "%2$s tomó una captura de pantalla de %1$d mensaje."
-msgstr[1] "%2$s tomó una captura de pantalla de %1$d mensajes."
+msgstr[0] "%2$s tomó una captura de pantalla de %1$d mensaje."
+msgstr[1] "%2$s tomó una captura de pantalla de %1$d mensajes."
#: ../tgp-msg.c:162
#, c-format
@@ -289,54 +295,92 @@ msgid "Channel %1$s created"
msgstr "Canal %1$s creado"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Canales de Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
-msgstr "Falló el envío de mensajes."
+msgstr "Falló el envío de mensajes."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
-msgstr "Falló el envío de imágenes."
+msgstr "Falló el envío de imágenes."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
-msgstr "%s envió un sticker."
-
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "falló la carga del mensaje"
+msgstr "%s envió un sticker."
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animación]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[audio]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[vídeo]"
+msgstr ""
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Mensaje reenviado de: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Mensaje reenviado:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "falló la carga del mensaje"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "documento"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animación"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "vídeo"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
-msgstr "falló la carga del documento o imagen"
+msgstr "falló la carga del documento o imagen"
#: ../tgp-net.c:281
msgid "Cannot connect to main server"
@@ -348,27 +392,27 @@ msgstr "No se puede conectar al servidor: tiempo de espera agotado."
#: ../tgp-net.c:365
msgid "Lost connection to the server..."
-msgstr "Se perdió la conexión con el servidor..."
+msgstr "Se perdió la conexión con el servidor..."
#: ../tgp-request.c:51
msgid ""
"Telegram wants to verify your identity. Please enter the login code that you"
" have received via SMS."
msgstr ""
-"Telegram quiere verificar su identidad. Por favor, introduce el código que "
-"recibió en un mensaje de texto."
+"Telegram quiere verificar su identidad. Por favor, introduce el código que "
+"recibió en un mensaje de texto."
#: ../tgp-request.c:54
msgid "Login code"
-msgstr "Código de inicio de sesión"
+msgstr "Código de inicio de sesión"
#: ../tgp-request.c:54
msgid "Enter login code"
-msgstr "Intoducir código de inicio de sesión"
+msgstr "Intoducir código de inicio de sesión"
#: ../tgp-request.c:54
msgid "the code"
-msgstr "el código"
+msgstr "el código"
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
#: ../tgp-request.c:233 ../tgp-request.c:263
@@ -398,7 +442,7 @@ msgstr "Registrar"
#: ../tgp-request.c:103
msgid "Please register your phone number."
-msgstr "Por favor, registre su número de teléfono."
+msgstr "Por favor, registre su número de teléfono."
#. purple_request API not available
#: ../tgp-request.c:108
@@ -406,8 +450,8 @@ msgid ""
"Phone number is not registered. Please register your phone on a different "
"client."
msgstr ""
-"No se registró el número de teléfono. Por favor, registre su teléfono en un "
-"cliente diferente."
+"No se registró el número de teléfono. Por favor, registre su teléfono en"
+" un cliente diferente."
#: ../tgp-request.c:110
msgid "Not registered"
@@ -415,11 +459,11 @@ msgstr "No registrado"
#: ../tgp-request.c:122
msgid "Password needed"
-msgstr "Se necesita la contraseña"
+msgstr "Se necesita la contraseña"
#: ../tgp-request.c:122
msgid "Enter password for two factor authentication"
-msgstr "Introducir contraseña para la autenticación de dos pasos"
+msgstr "Introducir contraseña para la autenticación de dos pasos"
#: ../tgp-request.c:123
msgid "Ok"
@@ -430,21 +474,21 @@ msgid ""
"No password set for two factor authentication. Please enter it in the "
"extended settings."
msgstr ""
-"No se estableció contraseña para la autenticación de dos pasos. Por favor, "
-"introdúcela en la configuración extendida."
+"No se estableció contraseña para la autenticación de dos pasos. Por "
+"favor, introdúcela en la configuración extendida."
#: ../tgp-request.c:127
msgid "Password invalid"
-msgstr "Contraseña no válida"
+msgstr "Contraseña no válida"
#: ../tgp-request.c:150
#, c-format
msgid "Accept secret chat '%s' on this device?"
-msgstr "¿Acepte la conversación secreta '%s' en este dispositivo?"
+msgstr "¿Acepte la conversación secreta '%s' en este dispositivo?"
#: ../tgp-request.c:151
msgid "Secret chat"
-msgstr "Conversación secreta"
+msgstr "Conversación secreta"
#: ../tgp-request.c:151
msgid ""
@@ -452,9 +496,9 @@ msgid ""
"this device, its messages will not be available anywhere else. If you "
"decline, you can still accept the chat on other devices."
msgstr ""
-"Las conversaciones secretas son uno a uno. Si acepte una conversación "
-"secreta en este dispositivo, la misma no estará disponible en ningún otro "
-"lado. Si decline, pueda aceptar la conversación en otro dispositivo."
+"Las conversaciones secretas son uno a uno. Si acepte una conversación "
+"secreta en este dispositivo, la misma no estará disponible en ningún otro "
+"lado. Si decline, pueda aceptar la conversación en otro dispositivo."
#: ../tgp-request.c:182
msgid ""
@@ -462,9 +506,9 @@ msgid ""
" their full name (autocompletion available).\n"
"You can add more users once the chat was created."
msgstr ""
-"Invite al menos a un usuario más especificando\n"
+"Invite al menos a un usuario más especificando\n"
"su nombre completo (disponible autocompletado).\n"
-"Pueda agregar más usuarios una vez que se cree la conversación."
+"Pueda agregar más usuarios una vez que se cree la conversación."
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
msgid "Username"
@@ -472,7 +516,7 @@ msgstr "Nombre de usuario"
#: ../tgp-request.c:198
msgid "Create group chat"
-msgstr "Crear conversación grupal"
+msgstr "Crear conversación grupal"
#: ../tgp-request.c:198
msgid "Invite users"
@@ -480,7 +524,7 @@ msgstr "Invitar a los usuarios"
#: ../tgp-request.c:217 ../tgp-request.c:232
msgid "Change password"
-msgstr "Cambiar contraseña"
+msgstr "Cambiar contraseña"
#: ../tgp-request.c:219
msgid "Current"
@@ -488,7 +532,7 @@ msgstr "Actual"
#: ../tgp-request.c:223 ../tgp-request.c:253
msgid "Password"
-msgstr "Contraseña"
+msgstr "Contraseña"
#: ../tgp-request.c:227 ../tgp-request.c:257
msgid "Confirm"
@@ -496,7 +540,7 @@ msgstr "Confirmar"
#: ../tgp-request.c:251 ../tgp-request.c:262
msgid "New password"
-msgstr "Nueva contraseña"
+msgstr "Nueva contraseña"
#. if we arrive here for the second time the specified phone number is not
#. valid. We do not
@@ -505,32 +549,33 @@ msgstr "Nueva contraseña"
#. named with the invalid phone number, even though the login will work
#: ../tgp-request.c:300
msgid "Invalid phone number"
-msgstr "Número de teléfono no válido"
+msgstr "Número de teléfono no válido"
#: ../tgp-request.c:301
msgid ""
"Please enter only numbers in the international phone number format, a leading + following by the country prefix and the phone number.\n"
"Do not use any other special chars."
msgstr ""
-"Por favor, introduce sólo números en el formato de números de teléfono internacional, con el signo '+' seguido del código de país [más prefijo para el acceso a la red celular, si corresponde] y el número de teléfono.\n"
-"No use ningún otro carácter."
+"Por favor, introduce sólo números en el formato de números de teléfono internacional, con el signo '+' seguido del código de país [más prefijo para el acceso a la red celular, si corresponde] y el número de teléfono.\n"
+"No use ningún otro carácter."
#: ../tgp-request.c:370
msgid "Leave Chat"
-msgstr "Abandonar conversación"
+msgstr "Abandonar conversación"
#: ../tgp-request.c:372
msgid "Do you want to leave this chat permantently?"
-msgstr "¿Querés abandonar esta conversación permanentemente?"
+msgstr "¿Querés abandonar esta conversación permanentemente?"
#: ../tgp-request.c:377
msgid "Abort Secret Chat"
-msgstr "Cancelar conversación secreta"
+msgstr "Cancelar conversación secreta"
#: ../tgp-request.c:379
msgid "Do you want to terminate this secret chat permantently?"
msgstr ""
-"¿Esté seguro que quiere eliminar esta conversación secreta permanentemente?"
+"¿Esté seguro que quiere eliminar esta conversación secreta "
+"permanentemente?"
#: ../tgp-request.c:384
msgid "Delete Contact"
@@ -538,7 +583,7 @@ msgstr "Eliminar contacto"
#: ../tgp-request.c:386
msgid "Do you want to remove this user from your global contact list?"
-msgstr "¿Quiere quitar este usuario de su lista global de contactos?"
+msgstr "¿Quiere quitar este usuario de su lista global de contactos?"
#: ../tgp-request.c:401
msgid "Leave Channel"
@@ -546,7 +591,7 @@ msgstr "Abandonar canal"
#: ../tgp-request.c:403
msgid "Do you want to leave this channel?"
-msgstr "¿Quiere abandonar este canal?"
+msgstr "¿Quiere abandonar este canal?"
#. This should be the language's timestamp format. This is preceded by a
#. colon.
@@ -574,42 +619,42 @@ msgstr "el mes pasado"
msgid "unknown"
msgstr "desconocido"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Conversaciones de Telegram"
#: ../tgp-chat.c:113
msgid "You have already left this chat."
-msgstr "Ya ha abandonado esta conversación."
+msgstr "Ya ha abandonado esta conversación."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Asunto:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
-msgstr "Enlace de invitación:"
+msgstr "Enlace de invitación:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
-msgstr "Identificación de conversación:"
+msgstr "Identificación de conversación:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
-msgstr "Súpergrupo"
+msgstr "Súpergrupo"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Canal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Grupo"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
-msgstr "Usuarios en la conversación"
+msgstr "Usuarios en la conversación"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Tipo"
diff --git a/po/es_AR.po b/po/es_AR.po
index 41bb5bd..07cc65a 100644
--- a/po/es_AR.po
+++ b/po/es_AR.po
@@ -1,110 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# ЌИГЯФ <kntro@msn.com>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: KNTRO <kntro@msn.com>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: ЌИГЯФ <kntro@msn.com>, 2018\n"
"Language-Team: Spanish (Argentina) (https://www.transifex.com/telegram-purple-developers/teams/53149/es_AR/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_AR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "No se pudo crear el grupo"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Por favor, seleccioná al menos otro usuario."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Falló la consulta"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Conversación secreta lista."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Finalizó la conversación secreta."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Mensaje marcado como leído."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Enlace de invitación: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Falló la creación del enlace de conversación"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Necesitás ser administrador del grupo para hacer eso."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Unido a la conversación"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Conversación agregada a la lista de salas de conversaciones."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Iniciar conversación secreta..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Invitar a usuarios por enlace..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Eliminar y salir..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-"No se pudo iniciar sesión como %s: no se encontró el archivo (clave "
-"pública)."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Asegurate de que telegram-purple está instalado apropiadamente,\n"
-"incluyendo el archivo .tglpub.\n"
-"Si estás ejecutando SELinux (por ejemplo, al usar Tails),\n"
-"intentá probar \"make local:_install\", o simplemente copiá\n"
-"%1$s a %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -114,12 +94,12 @@ msgstr ""
"\"tgl\". Por favor, enviá un informe de errores con el registro de "
"depuración."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problema en tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -129,40 +109,44 @@ msgstr ""
" del país. Los números deben comenzar con el código de prefijo "
"internacional, por ejemplo: +54 para Argentina."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Número de teléfono incompleto"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Ya se eliminó la conversación secreta"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "La conversación secreta no está lista"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Sólo el creador de un canal puede publicar mensajes."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "No se pudo invitar al contacto a la conversación"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "El usuario especificado no existe."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "Número de teléfono (+ prefijo de país)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "Kick <user>: expulsa a un usuario de una sala."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Contraseña (autenticación de 2 pasos)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -170,27 +154,31 @@ msgstr ""
"Verificación por mensaje de texto\n"
"(Sirve para cuando no estás usando Pidgin y no se te pide el código)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "siempre"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Siempre"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nunca"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nunca"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "preguntar"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Preguntar"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Aceptar conversaciones secretas"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Mostrar contactos desconectados después de (días)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -198,26 +186,44 @@ msgstr ""
"No recuperar el historial anterior a (días)\n"
"(ingresá \"0\" para no aplicar límites)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Tamaño de medio de descarga automática (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Descartar"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Descarga automática"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Descarga automática de archivos de hasta (KB)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Transferencias de archivos más grande"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Agregar todas las conversaciones grupales a la lista del contacto"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Mostrar acuses de recibo"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Enviar acuses de recibo al estar presente"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Usar IPv6 para conectarse (requiere reinicio)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Plugin de protocolo de Telegram."
@@ -234,12 +240,12 @@ msgstr "%2$s cambió el título a %1$s."
#: ../tgp-msg.c:64
#, c-format
msgid "%s changed photo."
-msgstr "%s cambió la foto."
+msgstr "%s cambió la imagen."
#: ../tgp-msg.c:67
#, c-format
msgid "%s deleted photo."
-msgstr "%s eliminó la foto."
+msgstr "%s eliminó la imagen."
#: ../tgp-msg.c:75
#, c-format
@@ -287,55 +293,93 @@ msgstr[1] "%2$s tomó una captura de pantalla de %1$d mensajes."
#: ../tgp-msg.c:162
#, c-format
msgid "Channel %1$s created"
-msgstr "Canal %1$s creado"
+msgstr "Se creó el canal %1$s"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Canales de Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Falló el envío de mensajes."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Falló el envío de imágenes."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s envió un sticker."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "falló la carga del mensaje"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[imagen]"
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animación]"
-
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[audio]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[video]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[documento]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[ubicación]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[contacto]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[página web]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[medio no compatible]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Mensaje reenviado de: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt;%sescribió:</b><br>&gt;%s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Mensaje reenviado:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Un usuario desconocido escribió:</b><br>&gt;%s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "falló la carga del mensaje"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "documento"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animación"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "video"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "falló la carga del documento o imagen"
@@ -395,7 +439,7 @@ msgstr "Apellido"
#: ../tgp-request.c:103
msgid "Register"
-msgstr "Registrar"
+msgstr "Registrarse"
#: ../tgp-request.c:103
msgid "Please register your phone number."
@@ -575,7 +619,7 @@ msgstr "el mes pasado"
msgid "unknown"
msgstr "[desconocido]"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Conversaciones de Telegram"
@@ -583,34 +627,34 @@ msgstr "Conversaciones de Telegram"
msgid "You have already left this chat."
msgstr "Ya abandonaste esta conversación."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Asunto:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Enlace de invitación:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Identificación de conversación:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Súpergrupo"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Canal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Grupo"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Usuarios en la conversación"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Tipo"
diff --git a/po/fr.po b/po/fr.po
index f3a4044..e77c0a1 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,109 +1,89 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: kekh <tukhnet@gmail.com>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017\n"
"Language-Team: French (https://www.transifex.com/telegram-purple-developers/teams/53149/fr/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "N'a pas pu créer le groupe"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Veuillez sélectionner au moins un autre utilisateur."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Requête échouée"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Conversation secrète prête."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Conversation secrète terminée."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Message marqué comme lu."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Lien d'invitation : %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Création du lien d'invitation échouée"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Vous devez être administrateur du groupe pour faire cela."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Conversation atteinte."
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Conversation ajoutée dans la liste des conversations."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Commencer une conversation secrète..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Inviter des utilisateurs avec un lien..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Supprimer et quitter..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-"Impossible de se connecter comme %s : fichier de clé publique manquant."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Soyez sûr que telegram-purple est installé proprement,\n"
-"particulièrement le fichier .tglpub.\n"
-"Si vous avez SELinux (ex: En utilisant Tails),\n"
-"essayez 'make local_install', ou copiez simplement\n"
-"%1$s dans %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -113,12 +93,12 @@ msgstr ""
"jacente 'tgl'. Veuillez svp soumettre un rapport de bug incluant des "
"informations de débug."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problème relatif à Tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -128,40 +108,44 @@ msgstr ""
"numéro de téléphone doit commencer avec le numéro de préfixe international, "
"ex: +33 pour la France."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Numéro de téléphone incomplet"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Conversation secrète déjà supprimée."
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Conversation secrète non prête"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Seul le créateur du canal peut publier des messages"
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Impossible d'ajouter le contact à la conversation"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "L'utilisateur spécifié n'existe pas."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "n° téléphone (+ préfixe pays)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Mot de passe (authentification à deux facteurs)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -169,27 +153,31 @@ msgstr ""
"Vérification par SMS\n"
"(Cela aide si vous n’utilisez pas Pidgin et que vous n'êtes pas notifié pour le code)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "toujours"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "jamais"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "demander"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Accepter la conversation secrète"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Afficher les contacts déconnectés après (jours)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -197,26 +185,44 @@ msgstr ""
"Ne pas récupérer l'historique plus vieux que (jours)\n"
"(0 pour infinie)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Taille max. chargement auto. des médias (Kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Ajouter tous les membres de la conversation dans la liste de contact"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Afficher les notifications de réception"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Envoyer des notifications de réception quand vous êtes présent."
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Extension Protocole Telegram"
@@ -289,52 +295,90 @@ msgid "Channel %1$s created"
msgstr "Canal %1$s créé"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Canaux Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "L'envoi du message a échoué."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "L'envoi de l'image a échoué."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s a envoyé un sticker."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "échec au chargement du message"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animation]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[audio]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[video]"
+msgstr ""
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Message transféré depuis : %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Message transféré :</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "échec au chargement du message"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "échec au chargement du document ou de l'image"
@@ -574,7 +618,7 @@ msgstr "mois précédent"
msgid "unknown"
msgstr "inconnue"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Conversations de Telegram"
@@ -582,34 +626,34 @@ msgstr "Conversations de Telegram"
msgid "You have already left this chat."
msgstr "Vous avez déjà quitté cette conversation."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Sujet :"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Lien d'invitation :"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Chat ID :"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Supergroup"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Canal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Groupe"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Utilisateurs dans la conversation"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Type"
diff --git a/po/it_IT.po b/po/it_IT.po
index 83a5a54..6dd9934 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -1,108 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>, 2017
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Giuseppe Pignataro (Fasbyte01) <rogepix@gmail.com>, 2017\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>, 2017\n"
"Language-Team: Italian (Italy) (https://www.transifex.com/telegram-purple-developers/teams/53149/it_IT/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it_IT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Impossibile creare un gruppo"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Seleziona almeno un altro utente"
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Richiesta fallita"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Chat segreta pronta."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Chat segreta terminata."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Messaggio contrassegnato come letto."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Link d'invito: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Creazione del link della chat fallito"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Devi essere admin del gruppo per eseguire questa operazione."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Entrato nella chat"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Chat aggiunta alla lista delle chat rooms"
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Inizia chat segreta..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Invita utenti tramite link..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Elimina ed esci..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Impossibile accedere come %s: file (chiave pubblica) non trovato."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Assicurati che telegram-purple sia installato correttamente,\n"
-"includendo il file .tglpub.\n"
-"Se hai avviato SELinux (p.e. quando si usa Tails),\n"
-"prova 'make local_install', o semplicemente copia\n"
-"%1$s a %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -111,12 +93,12 @@ msgstr ""
"Impossibile entrare come %s: problema con la libreria 'tgl'. Invia un bug "
"report con il log di debug."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problema in tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -126,40 +108,44 @@ msgstr ""
"internazionale.I numeri devono iniziare con il prefisso internazionale "
"completo, p.e. +39 per Italia."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Numero di telefono incompleto"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "La chat segreta è già stata eliminata"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "La chat segreta non è pronta"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Solo il creatore di un canale può postare messaggi."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Impossibile invitare il contatto alla chat."
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "L'utente specificato non esiste."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "num. telefono ( + prefisso internazionale)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Password (autenticazione a due fattori)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -167,27 +153,31 @@ msgstr ""
"Verifica via SMS di scorta.\n"
"(Aiuta quando non si usa Pidgin e non viene richiesto il codice)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "sempre"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Sempre"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "mai"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Mai"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "chiedi"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Chiedi"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Accetta chat segrete"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Mostra utenti offline dopo (giorni)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -195,26 +185,44 @@ msgstr ""
"Non recuperare la cronologia meno recente che (giorni)\n"
"(0 per illimitato)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Grandezza media autocaricato (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Annulla"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Caricamento automatico"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Aggiungi tutte le chat di gruppo alla lista contatti"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Mostra notifiche di ricezione"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Invia notifiche di ricezione quando presente"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Plugin di protocollo Telegram"
@@ -287,52 +295,90 @@ msgid "Channel %1$s created"
msgstr "Canale %1$s creato"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Canali Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Invio immagine fallito."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Invio immagine fallito."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s ha inviato uno sticker."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "caricamento del messaggio fallito"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animazione]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[audio]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[video]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Messaggio inoltrato da: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Messaggio inoltrato:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "caricamento del messaggio fallito"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "documento"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animazione"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "video"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "caricamento del documento o della foto fallito"
@@ -572,7 +618,7 @@ msgstr "ultimo mese"
msgid "unknown"
msgstr "sconosciuto"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Chat di Telegram"
@@ -580,34 +626,34 @@ msgstr "Chat di Telegram"
msgid "You have already left this chat."
msgstr "Hai già lasciato questa chat."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Oggetto:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Link d'invito:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "ID chat:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Supergruppo"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Canale"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Gruppo"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Utenti in chat."
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Tipo"
diff --git a/po/nl.po b/po/nl.po
index 0c01079..daaf6c8 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,108 +1,89 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: justin [notsupplied] <inactive+justin50@transifex.com>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017\n"
"Language-Team: Dutch (https://www.transifex.com/telegram-purple-developers/teams/53149/nl/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Kon groep niet aanmaken"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Selecteer minimaal één andere gebruiker."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Zoekopdracht mislukt"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Geheime chat gereed."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Geheime chat beëindigd."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Bericht gemarkeerd als gelezen."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Uitnodigingkoppeling: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Chatkoppeling aanmaken mislukt"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "U moet administrator van de groep zijn om dat te kunnen doen."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Bij chat binnengekomen"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Chat toegevoegd aan de chatruimtelijst."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Geheime chat starten..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Gebruikers met koppeling uitnodigen..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Verwijderen en afsluiten..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Kan niet aanmelden als %s: (publieke sleutel) niet gevonden."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Zorg ervoor dat telegram-purple juist is \n"
-"geïnstalleerd, alsmede het .tglpub-bestand.\n"
-"Als u SELinux uitvoert (bijv. bij gebruik van Tails),\n"
-"probeer ‘make local_install’, of kopieer simpelweg\n"
-"%1$s naar %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -111,12 +92,12 @@ msgstr ""
"Kon niet aanmelden als %s: probleem in de onderliggende bibliotheek ‘tgl’. "
"Verstuur alstublieft een foutenrapport met het debuglogboek."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Probleem in tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -126,40 +107,44 @@ msgstr ""
"moeten starten met het volledige internationale landnummer, bijvoorbeeld +31"
" voor Nederland."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Onvolledig telefoonnummer"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Geheime chat was al verwijderd"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Geheime chat is niet gereed"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Alleen de maker van een kanaal kan berichten plaatsen."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Kan vriend niet uitnodigen om te chatten"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Opgegeven gebruiker bestaat niet."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "telefoonnummer (+ landnummer)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Wachtwoord (authentificatie in twee stappen)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -167,27 +152,31 @@ msgstr ""
"SMS-verificatie om op terug te vallen\n"
"(Helpt wanneer u Pidgin niet gebruikt en niet wordt gevraagd om de code)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "altijd"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nooit"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "vragen"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Geheime chats accepteren"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Vrienden offline weergeven na (dagen)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -195,26 +184,44 @@ msgstr ""
"Geschiedenis niet ophalen voor ouder\n"
"dan (dagen) (0 voor oneindig)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Mediagrootte automatisch laden (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Alle groepschats aan de vriendenlijst toevoegen"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Ontvangstmeldingen tonen"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Ontvangstmeldingen versturen indien aanwezig"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Telegram-protocol-plug-in."
@@ -287,52 +294,90 @@ msgid "Channel %1$s created"
msgstr "Kanaal %1$s aangemaakt"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Telegram-kanalen"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Bericht versturen mislukt."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Afbeelding versturen mislukt."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s heeft een sticker verzonden."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "bericht laden mislukt"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animatie]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[audio]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[video]"
+msgstr ""
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Doorgestuurd bericht van: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Doorgestuurd bericht:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "bericht laden mislukt"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "document of foto laden mislukt"
@@ -572,7 +617,7 @@ msgstr "afgelopen maand"
msgid "unknown"
msgstr "onbekend"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Telegram-chats"
@@ -580,34 +625,34 @@ msgstr "Telegram-chats"
msgid "You have already left this chat."
msgstr "U heeft dit kanaal al verlaten."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Onderwerp:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Uitnodigingskoppeling:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Chat-ID:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Supergroep"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Kanaal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Groep"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Gebruikers in chat"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Soort"
diff --git a/po/pl_PL.po b/po/pl_PL.po
index dc81e34..0446184 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -1,109 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Piotr Drąg <piotrdrag@gmail.com>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>, 2018\n"
"Language-Team: Polish (Poland) (https://www.transifex.com/telegram-purple-developers/teams/53149/pl_PL/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl_PL\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Nie można utworzyć grupy"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Należy wybrać co najmniej jednego użytkownika."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Zapytanie się nie powiodło"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Tajna rozmowa jest gotowa."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Zakończono tajną rozmowę."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Oznaczono wiadomość jako przeczytaną."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Odnośnik do zaproszenia: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Utworzenie odnośnika do rozmowy się nie powiodło"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Należy być administratorem grupy, aby to zrobić."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Dołączono do rozmowy"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Dodano rozmowę do listy pokojów rozmów."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Rozpocznij tajną rozmowę…"
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Zaproś użytkowników przez odnośnik…"
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Usuń i wyjdź…"
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-"Nie można zalogować jako %s: nie odnaleziono pliku (klucza publicznego)."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Proszę się upewnić, że telegram-purple jest poprawnie zainstalowane,\n"
-"w tym plik .tglpub.\n"
-"Jeśli używany jest SELinux (np. podczas używania Tails),\n"
-"to proszę spróbować polecenia „make local_install” lub po prostu skopiować\n"
-"%1$s do %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -112,12 +93,12 @@ msgstr ""
"Nie można zalogować jako %s: problem w bibliotece „tgl”. Proszę zgłosić błąd"
" z dziennikiem debugowania."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problem w bibliotece tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -127,40 +108,44 @@ msgstr ""
" muszą zaczynać się od pełnego międzynarodowego przedrostka, np. +48 dla "
"Polski."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Niepełny numer telefonu"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Już usunięto tajną rozmowę"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Tajna rozmowa nie jest gotowa"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Tylko twórca kanału może wysyłać wiadomości."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Nie można zaprosić znajomego do rozmowy"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Podany użytkownik nie istnieje."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "numer telefonu (+ przedrostek kraju)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "kick <użytkownik>: wyrzuca użytkownika z pokoju."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Hasło (uwierzytelnianie dwustopniowe)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -168,27 +153,31 @@ msgstr ""
"Zapasowa weryfikacja przez SMS\n"
"(Pomaga w przypadkach, kiedy nie jest używany program Pidgin i użytkownik nie jest pytany o kod)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "zawsze"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Zawsze"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nigdy"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nigdy"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "pytanie"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Pytanie"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Odbieranie tajnych rozmów"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Wyświetlanie znajomych jako w trybie offline po (w dniach)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -196,26 +185,44 @@ msgstr ""
"Bez pobierania historii starszej niż (w dniach)\n"
"(0 oznacza brak ograniczenia)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Rozmiar automatycznie wczytywanych multimediów (w kilobajtach)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Odrzucanie"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Wczytywanie automatycznie"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Automatyczne wczytywanie przesyłania plików do (KB)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Przesyłanie większych plików"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Dodawanie wszystkich rozmów grupowych do listy znajomych"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Wyświetlanie powiadomień o odebraniu"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Wysyłanie powiadomień o odebraniu podczas obecności"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Używanie IPv6 do łączenia (wymaga ponownego uruchomienia)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Wtyczka protokołu Telegram."
@@ -296,52 +303,90 @@ msgid "Channel %1$s created"
msgstr "Utworzono kanał %1$s"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Kanały Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Wysłanie wiadomości się nie powiodło."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Wysłanie obrazu się nie powiodło."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "Użytkownik %s wysłał naklejkę."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "wczytanie wiadomości się nie powiodło"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[zdjęcie]"
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animacja]"
-
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[dźwięk]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[film]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[dokument]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[pozycja]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[kontakt]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[strona WWW]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[nieobsługiwane multimedia]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Przekazana wiadomość od: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Użytkownik %s napisał:</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Przekazana wiadomość:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Nieznany użytkownik napisał:</b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "wczytanie wiadomości się nie powiodło"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "dokument"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "dźwięk"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animacja"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "film"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "wczytywanie dokumentu lub obrazu się nie powiodło"
@@ -582,7 +627,7 @@ msgstr "ostatni miesiąc"
msgid "unknown"
msgstr "nieznane"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Rozmowy Telegram"
@@ -590,34 +635,34 @@ msgstr "Rozmowy Telegram"
msgid "You have already left this chat."
msgstr "Już opuszczoną tę rozmowę."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Temat:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Odnośnik do zaproszenia:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Identyfikator rozmowy:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Supergrupa"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Kanał"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Grupa"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Użytkownicy w rozmowie"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Typ"
diff --git a/po/pot_header.new b/po/pot_header.new
new file mode 100644
index 0000000..0280649
--- /dev/null
+++ b/po/pot_header.new
@@ -0,0 +1,17 @@
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
diff --git a/po/pot_header.old b/po/pot_header.old
new file mode 100644
index 0000000..cb44293
--- /dev/null
+++ b/po/pot_header.old
@@ -0,0 +1,19 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 968592c..f7b487c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,160 +1,151 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Denis Brandl <denisbr@gmail.com>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Denis Brandl <denisbr@gmail.com>, 2018\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/telegram-purple-developers/teams/53149/pt_BR/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Não foi possível criar o grupo"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Por favor, selecione pelo menos 1 usuário."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Falha na fila"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Conversa secreta pronta"
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Conversa secreta terminada."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
-msgstr ""
+msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Mensagem marcada como \"lida\"."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Link de convite: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Falha na criação do link para a conversa"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Você precisa ser Administrador do grupo para fazer isso"
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Entrou na conversa"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Conversa adicionada a listas de salas de conversa"
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Começar conversa secreta..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Convidar usuários pelo link..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Deletar e sair..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Tenha certeza que o telegram-purple está devidamente instalado,\n"
-"incluindo o arquivo .tglpub.\n"
-"Se vocês estiver rodando SELinux (por exemplo: quando usa o Tails),\n"
-"tente fazer uma \"instalação local\", ou simplesmente compie\n"
-"%1$s para %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
+"Impossível entrar em 1%s: problema na importante biblioteca 'tgl'. Por favor"
+" envie um relatório de bug com o registro de debug"
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
-msgstr ""
+msgstr "Problema na tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
"start with the full international prefix code, e.g. +1 for USA."
msgstr ""
+"Impossível entrar em %s: número de telefone sem o prefixo do país. Números "
+"de telefone precisam iniciar com o código do prefixo internacional, por "
+"exemplo +1 para Estados Unidos"
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Número de telefone inválido"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
-msgstr ""
+msgstr "Bate papo secreto já foi excluído"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
-msgstr ""
+msgstr "Bate papo secreto não está pronto"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
-msgstr ""
+msgstr "Somente o criador do canal consegue enviar mensagens."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Não foi possível convidar o amigo para a conversa"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "O usuário especificado não existe."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
-msgstr ""
+msgstr "número do telefone(+ prefixo do país)"
+
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "Chutar <user>: Chutar um usuário da sala."
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Senha (dois processos de autenticação)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -162,27 +153,31 @@ msgstr ""
"Retorno de verificaçao via SMS\n"
"(Ajuda quando não estiver usando o Pidgin e não é apresentado a janela com o código)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "sempre"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Sempre"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "nunca"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Nunca"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "pergunta"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Perguntar"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Aceitar conversa secrete"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Mostrar período que os amigos estão offline (dias)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -190,28 +185,46 @@ msgstr ""
"Não trazer históricos mais velhos que (dias)\n"
"(0 para não limitar)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr ""
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Descartar"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Carregar automaticamente"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Carregar automaticamente arquivos transferidos até (kb)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Transferência de grandes arquivos"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Adicinar todos os grupos de conversa a lista de amigos"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Mostrar avisos de recebimento"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Mandar avisos de recebimento quando estiver online"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Use IPv6 para conexão (necessário reiniciar)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
-msgstr ""
+msgstr "Plugin do protocolo do Telegram"
#: ../tgp-msg.c:58
#, c-format
@@ -279,57 +292,95 @@ msgstr[1] "%2$s capturou a tela de %1$d mensagens."
#: ../tgp-msg.c:162
#, c-format
msgid "Channel %1$s created"
-msgstr ""
+msgstr "Canal %1$s criado"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
-msgstr ""
+msgstr "Canais do Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Envio de imagem falhou."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Envio de imagem falhou."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s enviou um adesivo."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr ""
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr ""
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[imagem]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr ""
+msgstr "[audio]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr ""
+msgstr "[video]"
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[documento]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[posição]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[contato]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[site]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[mídias não suportadas]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr ""
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; %s escreveu:</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr ""
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Usuário desconhecido escreveu: </b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "Carregamento da mensagem falhou"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "documento"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "áudio"
-#: ../tgp-msg.c:720
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animação"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "vídeo"
+
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
-msgstr ""
+msgstr "carregamento de documento ou imagem falhou"
#: ../tgp-net.c:281
msgid "Cannot connect to main server"
@@ -511,35 +562,35 @@ msgstr ""
#: ../tgp-request.c:370
msgid "Leave Chat"
-msgstr ""
+msgstr "Deixar bate papo"
#: ../tgp-request.c:372
msgid "Do you want to leave this chat permantently?"
-msgstr ""
+msgstr "Você deseja deixar este bate papo permanentemente?"
#: ../tgp-request.c:377
msgid "Abort Secret Chat"
-msgstr ""
+msgstr "Suspender bate papo secreto"
#: ../tgp-request.c:379
msgid "Do you want to terminate this secret chat permantently?"
-msgstr ""
+msgstr "Você deseja encerrar este bate papo secreto permanentemente?"
#: ../tgp-request.c:384
msgid "Delete Contact"
-msgstr ""
+msgstr "Contato excluído"
#: ../tgp-request.c:386
msgid "Do you want to remove this user from your global contact list?"
-msgstr ""
+msgstr "Você deseja remover este usuário da sua lista de contatos global?"
#: ../tgp-request.c:401
msgid "Leave Channel"
-msgstr ""
+msgstr "Sair do canal"
#: ../tgp-request.c:403
msgid "Do you want to leave this channel?"
-msgstr ""
+msgstr "Você deseja sair deste canal?"
#. This should be the language's timestamp format. This is preceded by a
#. colon.
@@ -567,42 +618,42 @@ msgstr "mês passado"
msgid "unknown"
msgstr "desconhecido"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
-msgstr ""
+msgstr "Bate papos Telegram"
#: ../tgp-chat.c:113
msgid "You have already left this chat."
msgstr "Você já saiu dessa conversa."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Assunto:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Link do convite:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Identificação da conversa:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
-msgstr ""
+msgstr "Supergrupo"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
-msgstr ""
+msgstr "Canal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
-msgstr ""
+msgstr "Grupo"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Usuários no chat."
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
-msgstr ""
+msgstr "Tipo"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 00fbc35..75279d9 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -1,120 +1,101 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: SergeyDjam <djam5@ya.ru>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/telegram-purple-developers/teams/53149/ru_RU/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru_RU\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Не удалось создать группу"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Пожалуйста, выберите хотя бы одного другого пользователя."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Ошибка запроса"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Секретный чат готов."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Защищенный чат завершен"
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Сообщение помечено как прочитанное"
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Пригласительная ссылка: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Не удалось создать ссылку чата"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Вы должны быть администратором группы, чтобы сделать это."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Присоединился к чату"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Чат добавлен в список чатов."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Начать секретный чат…"
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Пригласить пользователей по ссылке..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Удалить и выйти..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Не удается войти как %s: файл (публичный ключ) не найден."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Убедитесь, что telegram-purple установлен правильно,\n"
-"включая .tglpub файл.\n"
-"Если вы используете SELinux (например при использовании Tails),\n"
-"попробуйте 'make local_install', или просто скопируйте\n"
-"%1$s в %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Проблема в tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -123,40 +104,44 @@ msgstr ""
"Не удалось войти как %s: номер телефона не содержит кода страны. Номера "
"должны начинаться с международного кода, +7 для России."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Неполный номер телефона"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Секретный чат уже был удален"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Секретный чат не готов"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Только создатель канала может отправлять сообщения."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Не могу пригласить пользователя в чат"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Указанный пользователь не существует."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "номер телефона. (+ префикс страны)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Пароль (двухфакторная аутентификация) "
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -164,27 +149,31 @@ msgstr ""
"Альтернативная СМС верификация\n"
"(Помогает когда не используется pidgin и вас не просило ввести код)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "всегда"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "никогда"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "Спрашивать"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Присоединится к защищенным чатам"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Показывать друзей оффлайн через(дней)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -192,26 +181,44 @@ msgstr ""
"Не загружать историю старше N дней\n"
"(0 без ограничений)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Добавить все групповые чаты в контактлист"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Показать уведомления о получении"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Показать уведомления о получении"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Telegram Protocol Плагин."
@@ -292,52 +299,90 @@ msgid "Channel %1$s created"
msgstr "Канал %1$s создан"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Telegram Каналы"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Отправка сообщения не удалась."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Ошибка при отправке изображения."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s отправил стикер."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "не удалось загрузить сообщения"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[анимация]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[аудио]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[видео]"
+msgstr ""
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "не удалось загрузить сообщения"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "загрузка документа или изображения не удалась"
@@ -578,7 +623,7 @@ msgstr "последний месяц"
msgid "unknown"
msgstr "неизвестно"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Telegram Чаты"
@@ -586,34 +631,34 @@ msgstr "Telegram Чаты"
msgid "You have already left this chat."
msgstr "Вы уже покинули этот чат."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Заголовок:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Пригласительная ссылка:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "Чат ID:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Супергруппа"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Канал"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Группа"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Пользователи в чате"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr ""
diff --git a/po/sq.po b/po/sq.po
index 0404219..b826329 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -1,108 +1,90 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Besnik <besnik@programeshqip.org>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Besnik <besnik@programeshqip.org>, 2016\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Besnik <besnik@programeshqip.org>, 2018\n"
"Language-Team: Albanian (https://www.transifex.com/telegram-purple-developers/teams/53149/sq/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sq\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "S’u krijua dot grup"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Ju lutemi, përzgjidhni të paktën një përdorues tjetër."
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Kërkesa Dështoi"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Fjalosje e fshehtë gati."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Fjalosja e fshehtë përfundoi."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Mesazh i shënuar si i lexuar."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Lidhje ftese: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Krijimi i lidhjes së fjalosjes dështoi"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Lypset të jeni përgjegjës grupi që të bëni këtë."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "U hy në fjalosje"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Fjalosja u shtua te listë dhomash fjalosjeje."
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Filloni fjalosje të fshehtë..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Ftoni përdorues përmes lidhjesh..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Fshije dhe dil..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "S’arrin të bëhet hyrja si %s: s’u gjet kartelë (kyç publik)."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Sigurohuni që telegram-purple është instaluar si duhet,\n"
-"përfshi këtu kartelën .tglpub.\n"
-"Nëse xhironi SELinux (p.sh. kur përdorni Tails),\n"
-"provoni 'make local_install', ose thjesht kopjoni\n"
-"%1$s te %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -112,12 +94,12 @@ msgstr ""
"parashtroni një njoftim të metash të shoqëruar nga regjistrimi i "
"diagnostikimit."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Problem në tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -127,40 +109,44 @@ msgstr ""
"Numrat duhet të fillojnë me kodin e plotë prefiksi ndërkombëtar, p.sh. +355 "
"për Shqipërinë."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Numër telefoni jo i plotë"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Fjalosja e fshehtë qe fshirë tashmë"
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Fjalosja e fshehtë s’është gati"
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Mesazhe mund të postojë vetëm krijuesi i një kanali."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "S’ftohet dot shok në fjalosje"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Përdoruesi i treguar nuk ekziston."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "nr. telefoni (+ prefiks vendi)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr "kick <përdorues>: Përzini një përdorues nga dhoma."
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Fjalëkalim (mirëfilltësim dyfaktorësh)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -168,27 +154,31 @@ msgstr ""
"Kalim vetvetiu për verfikime SMS\n"
"(I dobishëm kur s’përdoret Pidgin-i dhe nuk ju kërkohet kod)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "përherë"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr "Përherë"
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "kurrë"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr "Kurrë"
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "pyet"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr "Pyet"
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Prano fjalosje të fshehta"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Shfaqi shokët si jo të lidhur pas (ditësh)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -196,26 +186,44 @@ msgstr ""
"Mos sill historik më të vjetë se (ditë)\n"
"(0 për pa kufizim)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Madhësi media që vetëluhet (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr "Hidhe tej"
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr "Vetëngarkoje"
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr "Vetëngarko shpërngulje kartelash deri në (kb)"
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr "Shpërngulje më të mëdha kartelash"
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Shtoji krejt fjalosjet e grupit te lista e shokëve"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Shfaq njoftime dëftese"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Dërgo njoftime dëftese kur ka"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr "Për lidhje përdor IPv6 (lyp rinisje)"
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Shtojcë Protokolli Telegram."
@@ -288,52 +296,90 @@ msgid "Channel %1$s created"
msgstr "Kanali %1$s u krijua"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Kanale Telegram-i"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Dërgimi i mesazhit dështoi."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Dërgimi i figurës dështoi."
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s dërgoi një ngjitëse."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "dështoi në ngarkim mesazhi"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[animacion]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr "[foto]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr "[audio]"
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr "[video]"
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr "[dokument]"
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr "[pozicion]"
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr "[kontakt]"
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr "[faqe web]"
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr "[media që nuk mbulohet]"
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Mesazh i përcjellë nga: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; %s shkroi:</b><br>&gt; %s<br>%s"
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Mesazh i përcjellë:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr "%s<b>&gt; Një përdorues i panjohur shkroi:</b><br>&gt; %s<br>%s"
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "dështoi në ngarkim mesazhi"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr "dokument"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr "audio"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr "animacion"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr "video"
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "Ngarkimi i dokumentit ose fotos dështoi"
@@ -573,7 +619,7 @@ msgstr "muajin e fundit"
msgid "unknown"
msgstr "e panjohur"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Fjalosje Telegram-i"
@@ -581,34 +627,34 @@ msgstr "Fjalosje Telegram-i"
msgid "You have already left this chat."
msgstr "E keni lëndë tashmë këtë fjalosje."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Subjekt:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Lidhje ftese:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "ID Fjalosjeje:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Supergrup"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Kanal"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Grup"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Përdorues në fjalosje"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Lloj"
diff --git a/po/telegram-purple.pot b/po/telegram-purple.pot
index eb33a4e..159dfbe 100644
--- a/po/telegram-purple.pot
+++ b/po/telegram-purple.pot
@@ -1,206 +1,215 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr ""
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr ""
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr ""
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr ""
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr ""
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr ""
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr ""
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr ""
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr ""
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr ""
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr ""
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr ""
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr ""
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr ""
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr ""
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr ""
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr ""
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
"start with the full international prefix code, e.g. +1 for USA."
msgstr ""
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr ""
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr ""
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr ""
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr ""
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr ""
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr ""
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr ""
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr ""
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
msgstr ""
-#: ../telegram-purple.c:828
-msgid "always"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr ""
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr ""
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
msgstr ""
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr ""
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr ""
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr ""
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr ""
@@ -273,51 +282,90 @@ msgid "Channel %1$s created"
msgstr ""
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr ""
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr ""
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr ""
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr ""
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr ""
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
+
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr ""
@@ -540,7 +588,7 @@ msgstr ""
msgid "unknown"
msgstr ""
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr ""
@@ -548,34 +596,34 @@ msgstr ""
msgid "You have already left this chat."
msgstr ""
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr ""
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr ""
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr ""
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr ""
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr ""
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr ""
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr ""
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr ""
diff --git a/po/uk.po b/po/uk.po
index 4f16a21..0006bc1 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,108 +1,89 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation (template) of telegram-purple
+# Copyright (C) 2014-2018 Matthias Jentsch, Ben Wiederhake, Christopher Althaus, Markus Endres
+# This file is distributed under the same license as the telegram-purple plugin.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
+# Translators:
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 22:53+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Самохвалов Антон <samant.ua@mail.ru>, 2017\n"
+"Project-Id-Version: telegram-purple\n"
+"POT-Creation-Date: 2018-08-01 23:11+0200\n"
+"PO-Revision-Date: 2017-04-11 23:02+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018\n"
"Language-Team: Ukrainian (https://www.transifex.com/telegram-purple-developers/teams/53149/uk/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\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"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
-#: ../telegram-base.c:500
+#: ../telegram-base.c:442
msgid "Couldn't create group"
msgstr "Не вдається створити групу"
-#: ../telegram-base.c:501
+#: ../telegram-base.c:443
msgid "Please select at least one other user."
msgstr "Будь ласка, виберіть ще хоча б одного іншого користувача"
-#: ../telegram-base.c:555
+#: ../telegram-base.c:497
msgid "Query Failed"
msgstr "Запит не вдався"
-#: ../telegram-purple.c:162
+#: ../telegram-purple.c:159
msgid "Secret chat ready."
msgstr "Таємний чат готовий."
-#: ../telegram-purple.c:170
+#: ../telegram-purple.c:167
msgid "Secret chat terminated."
msgstr "Таємний чат перерваний."
-#: ../telegram-purple.c:182
+#: ../telegram-purple.c:179
msgid "Telegram"
msgstr "Telegram"
-#: ../telegram-purple.c:229
+#: ../telegram-purple.c:226
msgid "Message marked as read."
msgstr "Повідомлення помічено як прочитане."
-#: ../telegram-purple.c:339
+#: ../telegram-purple.c:343
#, c-format
msgid "Invite link: %s"
msgstr "Адреса для запрошення: %s"
#. FIXME: Can TGLCHF_MODERATOR export links?
-#: ../telegram-purple.c:350
+#: ../telegram-purple.c:354
msgid "Creating chat link failed"
msgstr "Створення посилання на чат не вдалося"
-#: ../telegram-purple.c:351
+#: ../telegram-purple.c:355
msgid "You need to be admin of the group to do that."
msgstr "Для цього ви маєте бути адміном групи."
-#: ../telegram-purple.c:416
+#: ../telegram-purple.c:439
msgid "Chat joined"
msgstr "Чат підключений"
-#: ../telegram-purple.c:417
+#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
msgstr "Чат доданий до списку чат-кімнат"
-#: ../telegram-purple.c:443
+#: ../telegram-purple.c:466
msgid "Start secret chat..."
msgstr "Запустити таємний чат..."
#. Generate Public Link
-#: ../telegram-purple.c:450
+#: ../telegram-purple.c:473
msgid "Invite users by link..."
msgstr "Запросити користувачів посиланням..."
#. Delete self from chat
-#: ../telegram-purple.c:458
+#: ../telegram-purple.c:481
msgid "Delete and exit..."
msgstr "Видалити та вийти..."
-#: ../telegram-purple.c:546
-#, c-format
-msgid "Unable to sign on as %s: file (public key) not found."
-msgstr "Не вдалося увійти як %s: не знайдений файл (публічний ключ)."
-
-#: ../telegram-purple.c:550
-#, c-format
-msgid ""
-"Make sure telegram-purple is installed properly,\n"
-"including the .tglpub file.\n"
-"If you're running SELinux (e.g. when using Tails),\n"
-"try 'make local_install', or simply copy\n"
-"%1$s to %2$s."
-msgstr ""
-"Переконайтесь, що telegram-purple встановлено вірно,\n"
-"в тому числі файл .tglpub.\n"
-"Якщо ви запускаєте SELinux (напр., використовуючи Tails),\n"
-"спробуйте 'make local_install', чи просто скопіюйте\n"
-"%1$s до %2$s."
-
-#: ../telegram-purple.c:572
+#: ../telegram-purple.c:560
#, c-format
msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
@@ -111,12 +92,12 @@ msgstr ""
"Не вдається увійти як %s: проблема в існуючій бібліотеці 'tgl'. Будь ласка, "
"відправте звіт про помилку в журнал помилок."
-#: ../telegram-purple.c:576
+#: ../telegram-purple.c:564
msgid "Problem in tgl"
msgstr "Проблема в tgl"
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:584
+#: ../telegram-purple.c:575
#, c-format
msgid ""
"Unable to sign on as %s: phone number lacks country prefix. Numbers must "
@@ -126,40 +107,44 @@ msgstr ""
"Номери повинні починатись з повного міжнародного префіксу-коду, напр., +38 "
"для України."
-#: ../telegram-purple.c:589
+#: ../telegram-purple.c:580
msgid "Incomplete phone number"
msgstr "Неповноцінний номер телефону"
-#: ../telegram-purple.c:642
+#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
msgstr "Таємний чат вже видалений."
-#: ../telegram-purple.c:644
+#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
msgstr "Таємний чат не готовий."
-#: ../telegram-purple.c:652
+#: ../telegram-purple.c:648
msgid "Only the creator of a channel can post messages."
msgstr "Писати повідомлення може тільки автор каналу."
-#: ../telegram-purple.c:695
+#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
msgstr "Не вдається запросити друга в чат"
-#: ../telegram-purple.c:696
+#: ../telegram-purple.c:692
msgid "Specified user does not exist."
msgstr "Такого користувача немає."
-#: ../telegram-purple.c:709
+#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
msgstr "№ телефону (+ код країни)"
+#: ../telegram-purple.c:800
+msgid "kick <user>: Kick a user from the room."
+msgstr ""
+
#. Login
-#: ../telegram-purple.c:817
+#: ../telegram-purple.c:822
msgid "Password (two factor authentication)"
msgstr "Пароль (двух-факторна аутентифікація)"
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:827
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
@@ -167,27 +152,31 @@ msgstr ""
"Резервна SMS-перевірка\n"
"(Допомагає, коли ви не використовуєте Піджин, і вас не запрошено до кодування)"
-#: ../telegram-purple.c:828
-msgid "always"
-msgstr "завжди"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:834
+msgid "Always"
+msgstr ""
-#: ../telegram-purple.c:829
-msgid "never"
-msgstr "ніколи"
+#. Whether to do fallback SMS verification
+#: ../telegram-purple.c:836
+msgid "Never"
+msgstr ""
-#: ../telegram-purple.c:830
-msgid "ask"
-msgstr "запитати"
+#. Whether to do fallback SMS verification
+#. How to handle "large" files
+#: ../telegram-purple.c:838 ../telegram-purple.c:859
+msgid "Ask"
+msgstr ""
-#: ../telegram-purple.c:832
+#: ../telegram-purple.c:840
msgid "Accept secret chats"
msgstr "Приймати таємні чати"
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
msgstr "Відображати друзів, що оффлайн (днів)"
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
@@ -195,26 +184,44 @@ msgstr ""
"Не піднімати історію, старшу за (днів)\n"
"(піднімати усю - 0)"
-#. Media
-#: ../telegram-purple.c:845
-msgid "Autoload media size (kb)"
-msgstr "Автозавантаження розміру медіа (кб)"
+#. How to handle "large" files
+#: ../telegram-purple.c:855
+msgid "Discard"
+msgstr ""
+
+#. How to handle "large" files
+#: ../telegram-purple.c:857
+msgid "Auto load"
+msgstr ""
+
+#: ../telegram-purple.c:861
+msgid "Auto load file transfers up to (kb)"
+msgstr ""
+
+#: ../telegram-purple.c:865
+msgid "Bigger file transfers"
+msgstr ""
#. Chats
-#: ../telegram-purple.c:850
+#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
msgstr "Додати усі групові чати в список контактів"
-#. Read notifications
-#: ../telegram-purple.c:855
+#. Receipts
+#: ../telegram-purple.c:874
msgid "Display notices of receipt"
msgstr "Показувати повідомлення про отримання"
-#: ../telegram-purple.c:859
+#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
msgstr "Відправляти повідомлення про отримання, якщо воно є"
-#: ../telegram-purple.c:884
+#. IPv6
+#: ../telegram-purple.c:883
+msgid "Use IPv6 for connecting (restart required)"
+msgstr ""
+
+#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
msgstr "Плагін Протоколу Telegram"
@@ -260,6 +267,7 @@ msgid_plural "%2$s set self destruction timer to %1$d seconds."
msgstr[0] "%2$s встановив таймер самознищення на %1$d секунду."
msgstr[1] "%2$s встановив таймер самознищення на %1$d секунди."
msgstr[2] "%2$s встановив таймер самознищення на %1$d секунд."
+msgstr[3] "%2$s встановив таймер самознищення на %1$d секунд."
#: ../tgp-msg.c:144
#, c-format
@@ -268,6 +276,7 @@ msgid_plural "%2$s marked %1$d messages read."
msgstr[0] "%2$s помітив %1$d повідомлення як прочитане."
msgstr[1] "%2$s помітив %1$d повідомлення як прочитані."
msgstr[2] "%2$s помітив %1$d повідомленнь як прочитані."
+msgstr[3] "%2$s помітив %1$d повідомленнь як прочитані."
#: ../tgp-msg.c:150
#, c-format
@@ -276,6 +285,7 @@ msgid_plural "%2$s deleted %1$d messages."
msgstr[0] "%2$s видалив %1$d повідомлення."
msgstr[1] "%2$s видалив %1$d повідомлення."
msgstr[2] "%2$s видалив %1$d повідомленнь."
+msgstr[3] "%2$s видалив %1$d повідомленнь."
#: ../tgp-msg.c:156
#, c-format
@@ -284,6 +294,7 @@ msgid_plural "%2$s made a screenshot of %1$d messages."
msgstr[0] "%2$s зробив скріншот %1$d повідомлення."
msgstr[1] "%2$s зробив скріншот %1$d повідомлень."
msgstr[2] "%2$s зробив скріншот %1$d повідомленнь."
+msgstr[3] "%2$s зробив скріншот %1$d повідомленнь."
#: ../tgp-msg.c:162
#, c-format
@@ -291,52 +302,90 @@ msgid "Channel %1$s created"
msgstr "Канал %1$s створений"
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
msgstr "Канали Telegram"
-#: ../tgp-msg.c:191
+#: ../tgp-msg.c:222
msgid "Sending message failed."
msgstr "Відправка повідомлення не вдалась."
-#: ../tgp-msg.c:253
+#: ../tgp-msg.c:293
msgid "Sending image failed."
msgstr "Відправка зображення не вдалася"
-#: ../tgp-msg.c:417
+#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
msgstr "%s відправив липучку."
-#: ../tgp-msg.c:463
-msgid "failed loading message"
-msgstr "не вдалось завантажити повідомлення"
-
-#: ../tgp-msg.c:498
-msgid "[animation]"
-msgstr "[анімація]"
+#: ../tgp-msg.c:483
+msgid "[photo]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr "[аудіо]"
+msgstr ""
-#: ../tgp-msg.c:515
+#: ../tgp-msg.c:491
msgid "[video]"
-msgstr "[відео]"
+msgstr ""
+
+#: ../tgp-msg.c:496
+msgid "[document]"
+msgstr ""
+
+#: ../tgp-msg.c:501
+msgid "[position]"
+msgstr ""
+
+#: ../tgp-msg.c:505
+msgid "[contact]"
+msgstr ""
+
+#: ../tgp-msg.c:509
+msgid "[webpage]"
+msgstr ""
+
+#: ../tgp-msg.c:513
+msgid "[unsupported media]"
+msgstr ""
-#: ../tgp-msg.c:604
+#: ../tgp-msg.c:536
#, c-format
-msgid "<b>Forwarded message from: %s</b><br>%s"
-msgstr "<b>Перенаправлене повідомлення від %s</b><br>%s"
+msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
-#. FIXME: sometimes users aren't part of the response when receiving a
-#. forwarded message
-#: ../tgp-msg.c:607
+#: ../tgp-msg.c:538
#, c-format
-msgid "<b>Forwarded message:</b><br>%s"
-msgstr "<b>Перенаправлене повідомлення:</b><br>%s"
+msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
+msgstr ""
+
+#: ../tgp-msg.c:586
+msgid "failed loading message"
+msgstr "не вдалось завантажити повідомлення"
+
+#. Content of a file transfer
+#: ../tgp-msg.c:633 ../tgp-msg.c:683
+msgid "document"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:636
+msgid "audio"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:639
+msgid "animation"
+msgstr ""
+
+#. Content of a file transfer
+#: ../tgp-msg.c:642
+msgid "video"
+msgstr ""
-#: ../tgp-msg.c:720
+#: ../tgp-msg.c:873
msgid "loading document or picture failed"
msgstr "завантаження документу чи картинки не вдалось"
@@ -575,7 +624,7 @@ msgstr "минулого місяця"
msgid "unknown"
msgstr "невідомо"
-#: ../tgp-chat.c:108 ../tgp-chat.c:582
+#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
msgstr "Чати Telegram"
@@ -583,34 +632,34 @@ msgstr "Чати Telegram"
msgid "You have already left this chat."
msgstr "Ви вже покинули цей чат."
-#: ../tgp-chat.c:224
+#: ../tgp-chat.c:298
msgid "Subject:"
msgstr "Тема:"
-#: ../tgp-chat.c:230
+#: ../tgp-chat.c:304
msgid "Invite link:"
msgstr "Посилання для запрошення:"
-#: ../tgp-chat.c:236
+#: ../tgp-chat.c:310
msgid "Chat ID:"
msgstr "ID чата:"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Supergroup"
msgstr "Супергрупа"
-#: ../tgp-chat.c:342
+#: ../tgp-chat.c:416
msgid "Channel"
msgstr "Канал"
-#: ../tgp-chat.c:345
+#: ../tgp-chat.c:419
msgid "Group"
msgstr "Група"
-#: ../tgp-chat.c:367
+#: ../tgp-chat.c:435
msgid "Users in chat"
msgstr "Користувачі у чаті"
-#: ../tgp-chat.c:370
+#: ../tgp-chat.c:438
msgid "Type"
msgstr "Тип"
diff --git a/rpm/purple-telegram.spec b/rpm/purple-telegram.spec
index f356d63..f7ea7bb 100644
--- a/rpm/purple-telegram.spec
+++ b/rpm/purple-telegram.spec
@@ -37,6 +37,7 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/telegram-
%{_datadir}/pixmaps/pidgin/protocols/16/telegram.png
%{_datadir}/pixmaps/pidgin/protocols/22/telegram.png
%{_datadir}/pixmaps/pidgin/protocols/48/telegram.png
+%{_datadir}/appdata/telegram-purple.metainfo.xml
%changelog
* Sun Apr 9 2017 mjentsch 1.3.1-1
diff --git a/telegram-adium/TelegramPlugin.m b/telegram-adium/TelegramPlugin.m
index 9de5881..f33fc2c 100644
--- a/telegram-adium/TelegramPlugin.m
+++ b/telegram-adium/TelegramPlugin.m
@@ -32,7 +32,6 @@ extern void purple_init_telegram_plugin();
- (void) installPlugin
{
- pk_path = [self getPkName];
purple_init_telegram_plugin();
[TelegramService registerService];
}
diff --git a/telegram-adium/telegram-adium.xcodeproj/project.pbxproj b/telegram-adium/telegram-adium.xcodeproj/project.pbxproj
index ffd1de2..1cbf3af 100644
--- a/telegram-adium/telegram-adium.xcodeproj/project.pbxproj
+++ b/telegram-adium/telegram-adium.xcodeproj/project.pbxproj
@@ -43,7 +43,6 @@
C4B57BF01B1598D4006997F4 /* libtgl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B57BEF1B1598D4006997F4 /* libtgl.a */; };
C4D12DF01BC534CF00C0F6E1 /* tgp-blist.c in Sources */ = {isa = PBXBuildFile; fileRef = C4D12DEF1BC534CF00C0F6E1 /* tgp-blist.c */; };
C4D3EB5A1C3824C5003C895B /* tgp-info.c in Sources */ = {isa = PBXBuildFile; fileRef = C4D3EB581C3824C5003C895B /* tgp-info.c */; };
- C4D432D81BC2783C00561667 /* tg-server.tglpub in Resources */ = {isa = PBXBuildFile; fileRef = C4D432D71BC2783C00561667 /* tg-server.tglpub */; };
C4D819061A5C862E0044CBA9 /* tgp-structs.c in Sources */ = {isa = PBXBuildFile; fileRef = C4D819041A5C862E0044CBA9 /* tgp-structs.c */; };
C4D9185B1C1C6B3900AECCA2 /* libgpg-error.0.dylib in Resources */ = {isa = PBXBuildFile; fileRef = C4D9185A1C1C6B3900AECCA2 /* libgpg-error.0.dylib */; };
C4D9185C1C1C6B9C00AECCA2 /* libgpg-error.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C4D9185A1C1C6B3900AECCA2 /* libgpg-error.0.dylib */; };
@@ -333,7 +332,6 @@
files = (
C4D9185B1C1C6B3900AECCA2 /* libgpg-error.0.dylib in Resources */,
C465FC231C0D01B5001CCEE8 /* libgcrypt.20.dylib in Resources */,
- C4D432D81BC2783C00561667 /* tg-server.tglpub in Resources */,
C438CE271A12BEAF00E1DA0F /* telegram.png in Resources */,
C4B4BE391AB613950064AC17 /* TelegramJoinChatView.xib in Resources */,
C4B4BE2E1AB392F80064AC17 /* TelegramAccountView.xib in Resources */,
diff --git a/telegram-base.c b/telegram-base.c
index 816fe85..d9b158d 100644
--- a/telegram-base.c
+++ b/telegram-base.c
@@ -35,68 +35,6 @@
#define STATE_FILE_MAGIC 0x28949a93
#define SECRET_CHAT_FILE_MAGIC 0x37a1988a
-static gboolean read_ui32 (int fd, unsigned int *ret) {
- typedef char check_int_size[(sizeof (int) >= 4) ? 1 : -1];
- (void) sizeof (check_int_size);
-
- unsigned char buf[4];
- if (4 != read (fd, buf, 4)) {
- return 0;
- }
- // Ugly but works.
- *ret = 0;
- *ret |= buf[0];
- *ret <<= 8;
- *ret |= buf[1];
- *ret <<= 8;
- *ret |= buf[2];
- *ret <<= 8;
- *ret |= buf[3];
- return 1;
-}
-
-int read_pubkey_file (const char *name, struct rsa_pubkey *dst) {
- // Just to make sure nobody reads garbage.
- dst->e = 0;
- dst->n_len = 0;
- dst->n_raw = NULL;
-
- int pubkey_fd = open (name, O_RDONLY | O_BINARY);
- if (pubkey_fd < 0) {
- return 0;
- }
-
- unsigned int e;
- unsigned int n_len;
- if (!read_ui32 (pubkey_fd, &e) || !read_ui32 (pubkey_fd, &n_len) // Ensure successful reads
- || n_len < 128 || n_len > 1024 || e < 5) { // Ensure (at least remotely) sane parameters.
- close (pubkey_fd);
- return 0;
- }
-
- unsigned char *n_raw = malloc (n_len);
- if (!n_raw) {
- close (pubkey_fd);
- return 0;
- }
-
- gint readret;
- readret = read (pubkey_fd, n_raw, n_len);
- if (readret <= 0 || (n_len != (guint) readret)) {
- free (n_raw);
- close (pubkey_fd);
- return 0;
- }
- close (pubkey_fd);
-
- dst->e = e;
- dst->n_len = n_len;
- dst->n_raw = n_raw;
-
- info ("read pubkey file: n_len=%u e=%u", n_len, e);
- return 1;
-}
-
void read_state_file (struct tgl_state *TLS) {
char *name = 0;
name = g_strdup_printf("%s/%s", TLS->base_path, "state");
@@ -174,8 +112,14 @@ void write_files_schedule (struct tgl_state *TLS) {
}
}
+struct write_dc_extra {
+ int auth_file;
+ int flags;
+};
+
void write_dc (struct tgl_dc *DC, void *extra) {
- int auth_file_fd = *(int *)extra;
+ struct write_dc_extra *ex = extra;
+ int auth_file_fd = ex->auth_file;
if (!DC) {
int x = 0;
assert (write (auth_file_fd, &x, 4) == 4);
@@ -187,15 +131,16 @@ void write_dc (struct tgl_dc *DC, void *extra) {
assert (DC->flags & TGLDCF_LOGGED_IN);
- assert (write (auth_file_fd, &DC->options[0]->port, 4) == 4);
- int l = strlen (DC->options[0]->ip);
+ assert (write (auth_file_fd, &DC->options[ex->flags]->port, 4) == 4);
+ int l = strlen (DC->options[ex->flags]->ip);
assert (write (auth_file_fd, &l, 4) == 4);
- assert (write (auth_file_fd, DC->options[0]->ip, l) == l);
+ assert (write (auth_file_fd, DC->options[ex->flags]->ip, l) == l);
assert (write (auth_file_fd, &DC->auth_key_id, 8) == 8);
assert (write (auth_file_fd, DC->auth_key, 256) == 256);
}
void write_auth_file (struct tgl_state *TLS) {
+ struct write_dc_extra extra;
char *name = 0;
name = g_strdup_printf("%s/%s", TLS->base_path, "auth");
int auth_file_fd = open (name, O_CREAT | O_RDWR | O_BINARY, 0600);
@@ -206,7 +151,10 @@ void write_auth_file (struct tgl_state *TLS) {
assert (write (auth_file_fd, &TLS->max_dc_num, 4) == 4);
assert (write (auth_file_fd, &TLS->dc_working_num, 4) == 4);
- tgl_dc_iterator_ex (TLS, write_dc, &auth_file_fd);
+ extra.auth_file = auth_file_fd;
+ extra.flags = TLS->ipv6_enabled ? 1 : 0;
+
+ tgl_dc_iterator_ex (TLS, write_dc, &extra);
assert (write (auth_file_fd, &TLS->our_id, 4) == 4);
close (auth_file_fd);
@@ -228,7 +176,7 @@ void read_dc (struct tgl_state *TLS, int auth_file_fd, int id, unsigned ver) {
assert (read (auth_file_fd, &auth_key_id, 8) == 8);
assert (read (auth_file_fd, auth_key, 256) == 256);
- bl_do_dc_option (TLS, 0, id, "DC", 2, ip, l, port);
+ bl_do_dc_option (TLS, TLS->ipv6_enabled ? 1: 0, id, "DC", 2, ip, l, port);
bl_do_set_auth_key (TLS, id, auth_key);
bl_do_dc_signed (TLS, id);
debug ("read dc: id=%d", id);
@@ -252,11 +200,19 @@ void empty_auth_file (struct tgl_state *TLS) {
bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_TEST_3, strlen (TG_SERVER_TEST_3), 443);
bl_do_set_working_dc (TLS, TG_SERVER_TEST_DEFAULT);
} else {
- bl_do_dc_option (TLS, 0, 1, "", 0, TG_SERVER_1, strlen (TG_SERVER_1), 443);
- bl_do_dc_option (TLS, 0, 2, "", 0, TG_SERVER_2, strlen (TG_SERVER_2), 443);
- bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_3, strlen (TG_SERVER_3), 443);
- bl_do_dc_option (TLS, 0, 4, "", 0, TG_SERVER_4, strlen (TG_SERVER_4), 443);
- bl_do_dc_option (TLS, 0, 5, "", 0, TG_SERVER_5, strlen (TG_SERVER_5), 443);
+ if (TLS->ipv6_enabled) {
+ bl_do_dc_option (TLS, 1, 1, "", 0, TG_SERVER_IPV6_1, strlen (TG_SERVER_IPV6_1), 443);
+ bl_do_dc_option (TLS, 1, 2, "", 0, TG_SERVER_IPV6_2, strlen (TG_SERVER_IPV6_2), 443);
+ bl_do_dc_option (TLS, 1, 3, "", 0, TG_SERVER_IPV6_3, strlen (TG_SERVER_IPV6_3), 443);
+ bl_do_dc_option (TLS, 1, 4, "", 0, TG_SERVER_IPV6_4, strlen (TG_SERVER_IPV6_4), 443);
+ bl_do_dc_option (TLS, 1, 5, "", 0, TG_SERVER_IPV6_5, strlen (TG_SERVER_IPV6_5), 443);
+ } else {
+ bl_do_dc_option (TLS, 0, 1, "", 0, TG_SERVER_1, strlen (TG_SERVER_1), 443);
+ bl_do_dc_option (TLS, 0, 2, "", 0, TG_SERVER_2, strlen (TG_SERVER_2), 443);
+ bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_3, strlen (TG_SERVER_3), 443);
+ bl_do_dc_option (TLS, 0, 4, "", 0, TG_SERVER_4, strlen (TG_SERVER_4), 443);
+ bl_do_dc_option (TLS, 0, 5, "", 0, TG_SERVER_5, strlen (TG_SERVER_5), 443);
+ }
bl_do_set_working_dc (TLS, TG_SERVER_DEFAULT);
}
}
@@ -440,20 +396,6 @@ gchar *get_config_dir (char const *username) {
return dir;
}
-gchar *get_user_pk_path () {
- /*
- This can't be conditional on whether or not we're using telepathy, because
- then we would need to make sure that `make local_install` also knows about
- that location. So we *always* use ${HOME}/.purple/telegram-purple,
- even when the other files aren't in this folder.
- Note that this is only visible when using Telepathy/Empathy with
- local_install, which should be kinda rare anyway (use telepathy-morse!).
- */
- return g_strconcat (g_get_home_dir(), G_DIR_SEPARATOR_S, ".purple",
- G_DIR_SEPARATOR_S, "telegram-purple",
- G_DIR_SEPARATOR_S, user_pk_filename, NULL);
-}
-
gchar *get_download_dir (struct tgl_state *TLS) {
assert (TLS->base_path);
static gchar *dir;
diff --git a/telegram-base.h b/telegram-base.h
index 9e4a458..b6d4a4f 100644
--- a/telegram-base.h
+++ b/telegram-base.h
@@ -22,14 +22,6 @@
#include "telegram-purple.h"
-struct rsa_pubkey {
- unsigned int e;
- unsigned int n_len;
- unsigned char *n_raw;
-};
-
-gboolean read_pubkey_file (const char *name, struct rsa_pubkey *dst);
-
void read_state_file (struct tgl_state *TLS);
void read_auth_file (struct tgl_state *TLS);
void write_auth_file (struct tgl_state *TLS);
@@ -40,7 +32,6 @@ void write_secret_chat_file (struct tgl_state *TLS);
void write_secret_chat_gw (struct tgl_state *TLS, void *extra, int success, struct tgl_secret_chat *E);
gchar *get_config_dir (char const *username);
-gchar *get_user_pk_path ();
gchar *get_download_dir (struct tgl_state *TLS);
int tgp_visualize_key (struct tgl_state *TLS, unsigned char* sha1_key);
diff --git a/telegram-purple.c b/telegram-purple.c
index f1df3c8..1890c3b 100644
--- a/telegram-purple.c
+++ b/telegram-purple.c
@@ -18,6 +18,8 @@
Copyright Matthias Jentsch, Vitaly Valtman, Ben Wiederhake, Christopher Althaus 2014-2015
*/
+#include <mtproto-key.h>
+
#include "telegram-purple.h"
#include "commit.h"
@@ -37,12 +39,6 @@ static void update_secret_chat_handler (struct tgl_state *TLS, struct tgl_secret
static void update_on_failed_login (struct tgl_state *TLS);
const char *config_dir = "telegram-purple";
-const char *user_pk_filename = "server.tglpub";
-#ifdef WIN32
-const char *pk_path = "server.tglpub";
-#else
-const char *pk_path = "/etc/telegram-purple/server.tglpub";
-#endif
struct tgl_update_callback tgp_callback = {
.new_msg = update_message_handler,
@@ -187,7 +183,7 @@ static void update_secret_chat_handler (struct tgl_state *TLS, struct tgl_secret
}
if (flags & TGL_UPDATE_REQUESTED) {
- const char* choice = purple_account_get_string (tls_get_pa (TLS), "accept-secret-chats", "ask");
+ const char* choice = purple_account_get_string (tls_get_pa (TLS), TGP_KEY_ACCEPT_SECRET_CHATS, "ask");
if (! strcmp (choice, "always")) {
tgl_do_accept_encr_chat_request (TLS, U, write_secret_chat_gw, 0);
} else if (! strcmp (choice, "ask")) {
@@ -236,6 +232,8 @@ static void update_marked_read (struct tgl_state *TLS, int num, struct tgl_messa
static void on_get_dialog_list_done (struct tgl_state *TLS, void *extra, int success, int size,
tgl_peer_id_t peers[], tgl_message_id_t *last_msg_id[], int unread_count[]) {
info ("Fetched dialogue list of size: %d", size);
+
+ connection_data *conn = tls_get_data(TLS);
if (tgp_error_if_false (TLS, success, "Fetching dialogue list failed", TLS->error)) {
return;
}
@@ -259,7 +257,12 @@ static void on_get_dialog_list_done (struct tgl_state *TLS, void *extra, int suc
}
}
- // now that the dialogue list is loaded, handle all pending chat joins
+ // handle pending roomlist request
+ if (conn->roomlist != NULL && purple_roomlist_get_in_progress (conn->roomlist)) {
+ tgp_chat_roomlist_populate (TLS);
+ }
+
+ // handle all pending chat joins
tls_get_data (TLS)->dialogues_ready = TRUE;
tgp_chat_join_all_pending (TLS);
}
@@ -541,46 +544,9 @@ static void tgprpl_login (PurpleAccount * acct) {
tgl_set_download_directory (TLS, get_download_dir(TLS));
debug ("base configuration path: '%s'", TLS->base_path);
- struct rsa_pubkey pubkey;
-#ifdef WIN32
- gchar *global_pk_path = g_strdup_printf("%s/%s", DATADIR, pk_path);
-#else
- gchar *global_pk_path = g_strdup(pk_path);
-#endif
- debug ("trying global pubkey at %s", global_pk_path);
- gboolean global_pk_loaded = read_pubkey_file (global_pk_path, &pubkey);
- g_free(global_pk_path);
-
- tgl_set_verbosity (TLS, 4);
- if (global_pk_loaded) {
- info ("using global pubkey");
- tgl_set_rsa_key_direct (TLS, pubkey.e, pubkey.n_len, pubkey.n_raw);
- } else {
- char *user_pk_path = get_user_pk_path ();
- debug ("trying local pubkey at %s", user_pk_path);
- gboolean user_pk_loaded = read_pubkey_file (user_pk_path, &pubkey);
-
- if (user_pk_loaded) {
- info ("using local pubkey");
- tgl_set_rsa_key_direct (TLS, pubkey.e, pubkey.n_len, pubkey.n_raw);
- } else {
- failure ("both didn't work. abort.");
- char *cause = g_strdup_printf (_("Unable to sign on as %s: file (public key) not found."),
- purple_account_get_username (acct));
- purple_connection_error_reason (gc, PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, cause);
- char *long_hint = g_strdup_printf (
- _("Make sure telegram-purple is installed properly,\n"
- "including the .tglpub file.\n"
- "If you're running SELinux (e.g. when using Tails),\n"
- "try 'make local_install', or simply copy\n"
- "%1$s to %2$s."), pk_path, user_pk_path);
- purple_notify_message (_telegram_protocol, PURPLE_NOTIFY_MSG_ERROR, cause,
- long_hint, NULL, NULL, NULL);
- g_free (cause);
- g_free (long_hint);
- return;
- }
- }
+ tgl_set_rsa_key_direct (TLS, tglmp_get_default_e(),
+ tglmp_get_default_key_len(),
+ tglmp_get_default_key());
tgl_set_ev_base (TLS, conn);
tgl_set_net_methods (TLS, &tgp_conn_methods);
@@ -601,6 +567,9 @@ static void tgprpl_login (PurpleAccount * acct) {
return;
}
+ if (purple_account_get_bool (acct, TGP_KEY_USE_IPV6, FALSE))
+ tgl_enable_ipv6(TLS);
+
if (! tgp_startswith (purple_account_get_username (acct), "+")) {
// TRANSLATORS: Please fill in your own prefix!
char *cause = g_strdup_printf (_("Unable to sign on as %s: phone number lacks country prefix."
@@ -860,15 +829,18 @@ static void tgprpl_init (PurplePlugin *plugin) {
prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, opt);
// Messaging
- GList *verification_values = NULL;
- ADD_VALUE(verification_values, _("always"), "always");
- ADD_VALUE(verification_values, _("never"), "never");
- ADD_VALUE(verification_values, _("ask"), "ask");
-
+ GList *choices = NULL;
+ // Whether to do fallback SMS verification
+ ADD_VALUE(choices, _("Always"), "always");
+ // Whether to do fallback SMS verification
+ ADD_VALUE(choices, _("Never"), "never");
+ // Whether to do fallback SMS verification
+ ADD_VALUE(choices, _("Ask"), "ask");
+
opt = purple_account_option_list_new (_("Accept secret chats"),
- TGP_KEY_ACCEPT_SECRET_CHATS, verification_values);
+ TGP_KEY_ACCEPT_SECRET_CHATS, choices);
prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, opt);
-
+
opt = purple_account_option_int_new (_("Display buddies offline after (days)"),
TGP_KEY_INACTIVE_DAYS_OFFLINE, TGP_DEFAULT_INACTIVE_DAYS_OFFLINE);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
@@ -876,26 +848,42 @@ static void tgprpl_init (PurplePlugin *plugin) {
opt = purple_account_option_int_new (_("Don't fetch history older than (days)\n(0 for unlimited)"),
TGP_KEY_HISTORY_RETRIEVAL_THRESHOLD, TGP_DEFAULT_HISTORY_RETRIEVAL_THRESHOLD);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
-
- // Media
- opt = purple_account_option_int_new (_("Autoload media size (kb)"), TGP_KEY_MEDIA_SIZE,
- TGP_DEFAULT_MEDIA_SIZE);
+
+ // Media and documents
+ choices = NULL;
+ // How to handle "large" files
+ ADD_VALUE(choices, _("Discard"), "discard");
+ // How to handle "large" files
+ ADD_VALUE(choices, _("Auto load"), "autoload");
+ // How to handle "large" files
+ ADD_VALUE(choices, _("Ask"), "ask");
+
+ opt = purple_account_option_int_new (_("Auto load file transfers up to (kb)"), TGP_KEY_MEDIA_SIZE,
+ TGP_DEFAULT_MEDIA_SIZE);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
+ opt = purple_account_option_list_new (_("Bigger file transfers"), TGP_KEY_FT_HANDLING, choices);
+ prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
+
// Chats
opt = purple_account_option_bool_new (_("Add all group chats to buddy list"),
TGP_KEY_JOIN_GROUP_CHATS, TGP_DEFAULT_JOIN_GROUP_CHATS);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
- // Read notifications
+ // Receipts
opt = purple_account_option_bool_new (_("Display notices of receipt"),
TGP_KEY_DISPLAY_READ_NOTIFICATIONS, TGP_DEFAULT_DISPLAY_READ_NOTIFICATIONS);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
-
+
opt = purple_account_option_bool_new (_("Send notices of receipt when present"),
TGP_KEY_SEND_READ_NOTIFICATIONS, TGP_DEFAULT_SEND_READ_NOTIFICATIONS);
prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
-
+
+ // IPv6
+ opt = purple_account_option_bool_new (_("Use IPv6 for connecting (restart required)"),
+ TGP_KEY_USE_IPV6, TGP_DEFAULT_USE_IPV6);
+ prpl_info.protocol_options = g_list_append (prpl_info.protocol_options, opt);
+
_telegram_protocol = plugin;
debug ("tgprpl_init finished: This is " PACKAGE_VERSION "+g" GIT_COMMIT " on libtgl " TGL_VERSION);
}
diff --git a/telegram-purple.h b/telegram-purple.h
index e45fe29..b7c9550 100644
--- a/telegram-purple.h
+++ b/telegram-purple.h
@@ -67,6 +67,9 @@
#define TGP_MAX_MSG_SIZE 4096
#define TGP_DEFAULT_MAX_MSG_SPLIT_COUNT 4
+#define TGP_DEFAULT_FT_HANDLING "ask"
+#define TGP_KEY_FT_HANDLING "media-handling-behavior"
+
#define TGP_DEFAULT_MEDIA_SIZE 32768
#define TGP_KEY_MEDIA_SIZE "media-size-threshold"
@@ -90,12 +93,15 @@
#define TGP_DEFAULT_SEND_READ_NOTIFICATIONS TRUE
#define TGP_KEY_SEND_READ_NOTIFICATIONS "send-read-notifications"
-#define TGP_DEFAULT_CHANNEL_MEMBERS 500
+#define TGP_DEFAULT_CHANNEL_MEMBERS 200
#define TGP_KEY_CHANNEL_MEMBERS "channel-member-count"
+#define TGP_DEFAULT_USE_IPV6 FALSE
+#define TGP_KEY_USE_IPV6 "ipv6"
+
#define TGP_KEY_RESET_AUTH "reset-authorization"
-#define TGP_CHANNEL_HISTORY_LIMIT 500
+#define TGP_CHANNEL_HISTORY_LIMIT 100
extern const char *pk_path;
extern const char *user_pk_filename;
diff --git a/telegram-purple.nsi b/telegram-purple.nsi
deleted file mode 100644
index 1c8b12f..0000000
--- a/telegram-purple.nsi
+++ /dev/null
@@ -1,130 +0,0 @@
-; This file is part of telegram-purple
-;
-; This program is free software; you can redistribute it and/or modify
-; it under the terms of the GNU General Public License as published by
-; the Free Software Foundation; either version 2 of the License, or
-; (at your option) any later version.
-;
-; This program is distributed in the hope that it will be useful,
-; but WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-; GNU General Public License for more details.
-;
-; You should have received a copy of the GNU General Public License
-; along with this program; if not, write to the Free Software
-; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-;
-; Copyright Matthias Jentsch, Eion Robb 2014-2015
-
-; Script based on the Skype4Pidgin and Off-the-Record Messaging NSI files
-
-SetCompress off
-
-; todo: SetBrandingImage
-; HM NIS Edit Wizard helper defines
-!define PRODUCT_NAME "telegram-purple"
-!define PRODUCT_VERSION "${PLUGIN_VERSION}"
-!define PRODUCT_PUBLISHER "The telegram-purple team"
-!define PRODUCT_WEB_SITE "https://github.com/majn/telegram-purple"
-!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
-!define PRODUCT_UNINST_ROOT_KEY "HKLM"
-
-; MUI 1.67 compatible ------
-!include "MUI.nsh"
-
-; MUI Settings
-!define MUI_ABORTWARNING
-!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
-!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
-
-; Welcome page
-!insertmacro MUI_PAGE_WELCOME
-; License page
-!insertmacro MUI_PAGE_LICENSE "COPYING"
-; Instfiles page
-!insertmacro MUI_PAGE_INSTFILES
-!define MUI_FINISHPAGE_RUN
-!define MUI_FINISHPAGE_RUN_TEXT "Run Pidgin"
-!define MUI_FINISHPAGE_RUN_FUNCTION "RunPidgin"
-!insertmacro MUI_PAGE_FINISH
-
-; Uninstaller pages
-;!insertmacro MUI_UNPAGE_INSTFILES
-
-; Language files
-!insertmacro MUI_LANGUAGE "English"
-
-; MUI end ------
-
-Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
-OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
-
-Var "PidginDir"
-
-ShowInstDetails show
-ShowUnInstDetails show
-
-Section "MainSection" SEC01
- ;Check for pidgin installation
- Call GetPidginInstPath
-
- SetOverwrite try
-
- SetOutPath "$PidginDir\pixmaps\pidgin"
- File "/oname=protocols\16\telegram.png" "imgs\telegram16.png"
- File "/oname=protocols\22\telegram.png" "imgs\telegram22.png"
- File "/oname=protocols\48\telegram.png" "imgs\telegram48.png"
-
- SetOverwrite try
- copy:
- ClearErrors
- Delete "$PidginDir\plugins\${PRPL_NAME}"
- IfErrors dllbusy
- SetOutPath "$PidginDir\plugins"
- File "bin\${PRPL_NAME}"
- Goto after_copy
- dllbusy:
- MessageBox MB_RETRYCANCEL "${PRPL_NAME} is busy. Please close Pidgin (including tray icon) and try again" IDCANCEL cancel
- Goto copy
- cancel:
- Abort "Installation of telegram-purple aborted"
- after_copy:
-
- SetOutPath "$PidginDir\locale"
- File /nonfatal "/oname=bg\LC_MESSAGES\telegram-purple.mo" "po\bg.mo"
- File /nonfatal "/oname=cs_CZ\LC_MESSAGES\telegram-purple.mo" "po\cs_CZ.mo"
- File /nonfatal "/oname=de_DE\LC_MESSAGES\telegram-purple.mo" "po\de_DE.mo"
- File /nonfatal "/oname=es_AR\LC_MESSAGES\telegram-purple.mo" "po\es_AR.mo"
- File /nonfatal "/oname=fr\LC_MESSAGES\telegram-purple.mo" "po\fr.mo"
- File /nonfatal "/oname=it_IT\LC_MESSAGES\telegram-purple.mo" "po\it_IT.mo"
- File /nonfatal "/oname=nl\LC_MESSAGES\telegram-purple.mo" "po\nl.mo"
- File /nonfatal "/oname=pl_PL\LC_MESSAGES\telegram-purple.mo" "po\pl_PL.mo"
- File /nonfatal "/oname=ru_RU\LC_MESSAGES\telegram-purple.mo" "po\ru_RU.mo"
- File /nonfatal "/oname=sq\LC_MESSAGES\telegram-purple.mo" "po\sq.mo"
- File /nonfatal "/oname=uk\LC_MESSAGES\telegram-purple.mo" "po\uk.mo"
-
- SetOutPath "$PidginDir"
- File "/oname=server.tglpub" "tg-server.tglpub"
- File "${WIN32_DEV_TOP}\libgpg-error-1.12-2\bin\libgpg-error-0.dll"
- File "${WIN32_DEV_TOP}\libgcrypt-1.6.3\bin\libgcrypt-20.dll"
- File "${WIN32_DEV_TOP}\libwebp-0.4.3-1\bin\libwebp-5.dll"
- File "${WIN32_DEV_TOP}\mingw\bin\libgcc_s_sjlj-1.dll"
-
-SectionEnd
-
-Function GetPidginInstPath
- Push $0
- ReadRegStr $0 HKLM "Software\pidgin" ""
- IfFileExists "$0\pidgin.exe" cont
- ReadRegStr $0 HKCU "Software\pidgin" ""
- IfFileExists "$0\pidgin.exe" cont
- MessageBox MB_OK|MB_ICONINFORMATION "Failed to find Pidgin installation."
- Abort "Failed to find Pidgin installation. Please install Pidgin first."
- cont:
- StrCpy $PidginDir $0
-FunctionEnd
-
-Function RunPidgin
- ExecShell "" "$PidginDir\pidgin.exe"
-FunctionEnd
-
diff --git a/telegram-purple.nsi.awk b/telegram-purple.nsi.awk
index 986cc85..a468f55 100644
--- a/telegram-purple.nsi.awk
+++ b/telegram-purple.nsi.awk
@@ -1,14 +1,21 @@
{
- if (match($0,"%")) {
+ if (match($0,"變")) {
do {
prev=lang;
getline lang<"po/LINGUAS";
l=$0;
- gsub("%",lang,l);
+ gsub("變",lang,l);
if (prev!=lang) {print l}
} while (prev!=lang);
- close("po/LINGUAS")
+ } else if (match($0,"或")) {
+ while ((getline def_line<"config.h") > 0) {
+ if (def_line == "#define HAVE_LIBWEBP 1") {
+ gsub("或","",$0);
+ print
+ break
+ }
+ }
} else {
- print $0
+ print
}
}
diff --git a/telegram-purple.nsi.awk-in b/telegram-purple.nsi.awk-in
index 3578628..7044946 100644
--- a/telegram-purple.nsi.awk-in
+++ b/telegram-purple.nsi.awk-in
@@ -18,7 +18,7 @@
; Script based on the Skype4Pidgin and Off-the-Record Messaging NSI files
-SetCompress off
+SetCompressor /SOLID /FINAL lzma
; todo: SetBrandingImage
; HM NIS Edit Wizard helper defines
@@ -91,15 +91,13 @@ Section "MainSection" SEC01
after_copy:
SetOutPath "$PidginDir\locale"
- File /nonfatal "/oname=%\LC_MESSAGES\telegram-purple.mo" "po\%.mo"
+ File /nonfatal "/oname=變\LC_MESSAGES\telegram-purple.mo" "po\變.mo"
SetOutPath "$PidginDir"
- File "/oname=server.tglpub" "tg-server.tglpub"
- File "${WIN32_DEV_TOP}\libgpg-error-1.12-2\bin\libgpg-error-0.dll"
- File "${WIN32_DEV_TOP}\libgcrypt-1.6.3\bin\libgcrypt-20.dll"
- File "${WIN32_DEV_TOP}\libwebp-0.4.3-1\bin\libwebp-5.dll"
- File "${WIN32_DEV_TOP}\mingw\bin\libgcc_s_sjlj-1.dll"
-
+ File "${WIN32_DEV_TOP}\libgpg-error-0.dll"
+ File "${WIN32_DEV_TOP}\libgcrypt-20.dll"
+ 或File "${WIN32_DEV_TOP}\libwebp-7.dll"
+ File "${WIN32_DEV_TOP}\libgcc_s_sjlj-1.dll"
SectionEnd
Function GetPidginInstPath
diff --git a/test/Makefile b/test/Makefile
index eaa33c5..2183096 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -16,6 +16,7 @@ ${PLUGIN_TESTS}: %: test/bin/% test/tmp/user
.PHONY: check
check: ${PLUGIN_TESTS} test/tmp/user
+ @echo "'make check' passed."
.PHONY: recheck
recheck: clean-test check
diff --git a/tg-server.tglpub b/tg-server.tglpub
deleted file mode 100644
index 2e42cf9..0000000
--- a/tg-server.tglpub
+++ /dev/null
Binary files differ
diff --git a/tgl b/tgl
-Subproject e1ac3fb60e66258621bfccaf3f5605abd2b7223
+Subproject bec2e6d537c272ed185e8c41ff81b4b8521a131
diff --git a/tgp-2prpl.c b/tgp-2prpl.c
index 1d135ab..02de07b 100644
--- a/tgp-2prpl.c
+++ b/tgp-2prpl.c
@@ -24,6 +24,10 @@
#include <webp/decode.h>
#endif
+#ifdef HAVE_LIBPNG
+#include <png.h>
+#endif
+
PurpleAccount *tls_get_pa (struct tgl_state *TLS) {
return tls_get_data (TLS)->pa;
}
@@ -36,11 +40,19 @@ connection_data *tls_get_data (struct tgl_state *TLS) {
return TLS->ev_base;
}
-int tls_get_media_threshold (struct tgl_state *TLS) {
+int tls_get_ft_threshold (struct tgl_state *TLS) {
return purple_account_get_int (tls_get_pa (TLS),
TGP_KEY_MEDIA_SIZE, TGP_DEFAULT_MEDIA_SIZE) << 10;
}
+int tls_get_ft_autoload (struct tgl_state *TLS) {
+ return ! strcmp (purple_account_get_string (tls_get_pa (TLS), TGP_KEY_FT_HANDLING, TGP_DEFAULT_FT_HANDLING), "autoload");
+}
+
+int tls_get_ft_discard (struct tgl_state *TLS) {
+ return ! strcmp (purple_account_get_string (tls_get_pa (TLS), TGP_KEY_FT_HANDLING, TGP_DEFAULT_FT_HANDLING), "discard");
+}
+
connection_data *gc_get_data (PurpleConnection *gc) {
return purple_connection_get_protocol_data (gc);
}
@@ -185,6 +197,77 @@ int p2tgl_imgstore_add_with_id_raw (const unsigned char *raw_bgra, unsigned widt
return purple_imgstore_add_with_id (tga, tga_len, NULL);
}
+#ifdef HAVE_LIBPNG
+
+static void p2tgl_png_mem_write (png_structp png_ptr, png_bytep data, png_size_t length) {
+ GByteArray *png_mem = (GByteArray *) png_get_io_ptr(png_ptr);
+ g_byte_array_append (png_mem, data, length);
+}
+
+int p2tgl_imgstore_add_with_id_png (const unsigned char *raw_bitmap, unsigned width, unsigned height) {
+ GByteArray *png_mem = NULL;
+ png_structp png_ptr = NULL;
+ png_infop info_ptr = NULL;
+ png_bytepp rows = NULL;
+
+ // init png write struct
+ png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (png_ptr == NULL) {
+ warning ("error encoding png (create_write_struct failed)");
+ return 0;
+ }
+
+ // init png info struct
+ info_ptr = png_create_info_struct (png_ptr);
+ if (info_ptr == NULL) {
+ png_destroy_write_struct(&png_ptr, NULL);
+ warning ("error encoding png (create_info_struct failed)");
+ return 0;
+ }
+
+ // Set up error handling.
+ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ warning ("error while writing png");
+ return 0;
+ }
+
+ // set img attributes
+ png_set_IHDR (png_ptr, info_ptr, width, height,
+ 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE,
+ PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+
+ // alloc row pointers
+ rows = g_new0 (png_bytep, height);
+ if (rows == NULL) {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ warning ("error converting to png: malloc failed");
+ return 0;
+ }
+
+ unsigned i;
+ for (i = 0; i < height; i++)
+ rows[i] = (png_bytep)(raw_bitmap + i * width * 4);
+
+ // create array and set own png write function
+ png_mem = g_byte_array_new();
+ png_set_write_fn (png_ptr, png_mem, p2tgl_png_mem_write, NULL);
+
+ // write png
+ png_set_rows (png_ptr, info_ptr, rows);
+ png_write_png (png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
+
+ // cleanup
+ g_free(rows);
+ png_destroy_write_struct (&png_ptr, &info_ptr);
+ unsigned png_size = png_mem->len;
+ gpointer png_data = g_byte_array_free (png_mem, FALSE);
+
+ return purple_imgstore_add_with_id (png_data, png_size, NULL);
+}
+
+#endif /* HAVE_LIBPNG */
+
#ifdef HAVE_LIBWEBP
static const int MAX_W = 256;
@@ -227,7 +310,11 @@ int p2tgl_imgstore_add_with_id_webp (const char *filename) {
}
config.options.use_scaling = 1;
}
+#ifdef HAVE_LIBPNG
+ config.output.colorspace = MODE_RGBA;
+#else
config.output.colorspace = MODE_BGRA;
+#endif
if (WebPDecode(data, len, &config) != VP8_STATUS_OK) {
warning ("error decoding webp: %s", filename);
g_free ((gchar *)data);
@@ -237,7 +324,11 @@ int p2tgl_imgstore_add_with_id_webp (const char *filename) {
const uint8_t *decoded = config.output.u.RGBA.rgba;
// convert and add
+#ifdef HAVE_LIBPNG
+ int imgStoreId = p2tgl_imgstore_add_with_id_png(decoded, config.options.scaled_width, config.options.scaled_height);
+#else
int imgStoreId = p2tgl_imgstore_add_with_id_raw(decoded, config.options.scaled_width, config.options.scaled_height);
+#endif
WebPFreeDecBuffer (&config.output);
return imgStoreId;
}
diff --git a/tgp-2prpl.h b/tgp-2prpl.h
index 3025aca..e4edce9 100644
--- a/tgp-2prpl.h
+++ b/tgp-2prpl.h
@@ -27,7 +27,9 @@
PurpleAccount *tls_get_pa (struct tgl_state *TLS);
PurpleConnection *tls_get_conn (struct tgl_state *TLS);
connection_data *tls_get_data (struct tgl_state *TLS);
-int tls_get_media_threshold (struct tgl_state *TLS);
+int tls_get_ft_threshold (struct tgl_state *TLS);
+int tls_get_ft_discard (struct tgl_state *TLS);
+int tls_get_ft_autoload (struct tgl_state *TLS);
connection_data *gc_get_data (PurpleConnection *gc);
connection_data *pa_get_data (PurpleAccount *pa);
connection_data *pbn_get_data (PurpleBlistNode *node);
diff --git a/tgp-chat.c b/tgp-chat.c
index 1c179d9..76cda6b 100644
--- a/tgp-chat.c
+++ b/tgp-chat.c
@@ -48,7 +48,7 @@ tgl_peer_id_t tgp_chat_get_id (PurpleChat *C) {
}
void tgp_chat_set_last_server_id (struct tgl_state *TLS, tgl_peer_id_t chat, int id) {
- info ("setting channel message server_id=d%", id);
+ info ("setting channel message server_id=%d", id);
char *key = g_strdup_printf ("last-server-id/%d", tgl_get_peer_id (chat));
purple_account_set_int (tls_get_pa (TLS), key, id);
@@ -285,7 +285,9 @@ void tgprpl_kick_from_chat (PurpleConnection *gc, int id, const char *who) {
g_return_if_fail(P != NULL);
tgl_peer_t *other_id = tgp_blist_lookup_peer_get (gc_get_tls (gc), who);
- g_return_if_fail(P != NULL);
+ if (other_id == NULL) {
+ return;
+ }
tgl_do_del_user_from_chat (gc_get_tls (gc), P->id, other_id->id, tgp_notify_on_error_gw, NULL);
}
@@ -400,7 +402,7 @@ char *tgprpl_get_chat_name (GHashTable * data) {
return g_strdup (g_hash_table_lookup (data, "subject"));
}
-static void tgp_chat_roomlist_it (tgl_peer_t *P, void *extra) {
+static void tgp_chat_roomlist_add (tgl_peer_t *P, void *extra) {
connection_data *conn = extra;
if ((tgl_get_peer_type (P->id) == TGL_PEER_CHAT || tgl_get_peer_type (P->id) == TGL_PEER_CHANNEL)
@@ -422,28 +424,43 @@ static void tgp_chat_roomlist_it (tgl_peer_t *P, void *extra) {
}
}
-PurpleRoomlist *tgprpl_roomlist_get_list (PurpleConnection *gc) {
- debug ("tgprpl_roomlist_get_list()");
- connection_data *conn = gc_get_data (gc);
-
- if (conn->roomlist) {
- purple_roomlist_unref (conn->roomlist);
- }
-
- conn->roomlist = purple_roomlist_new (purple_connection_get_account (gc));
+void tgp_chat_roomlist_populate (struct tgl_state *TLS) {
+ connection_data *conn = tls_get_data (TLS);
+ g_return_if_fail(purple_roomlist_get_in_progress (conn->roomlist));
GList *fields = NULL;
PurpleRoomlistField *f = purple_roomlist_field_new (PURPLE_ROOMLIST_FIELD_STRING, "", "id", TRUE);
fields = g_list_append (fields, f);
-
+
f = purple_roomlist_field_new (PURPLE_ROOMLIST_FIELD_INT, _("Users in chat"), "users", FALSE);
fields = g_list_append (fields, f);
-
+
f = purple_roomlist_field_new (PURPLE_ROOMLIST_FIELD_STRING, _("Type"), "type", FALSE);
fields = g_list_append (fields, f);
-
+
purple_roomlist_set_fields (conn->roomlist, fields);
- tgl_peer_iterator_ex (conn->TLS, tgp_chat_roomlist_it, conn);
+ tgl_peer_iterator_ex (conn->TLS, tgp_chat_roomlist_add, conn);
+
+ purple_roomlist_set_in_progress (conn->roomlist, FALSE);
+}
+
+PurpleRoomlist *tgprpl_roomlist_get_list (PurpleConnection *gc) {
+ debug ("tgprpl_roomlist_get_list()");
+ connection_data *conn = gc_get_data (gc);
+
+ if (conn->roomlist) {
+ purple_roomlist_unref (conn->roomlist);
+ }
+
+ conn->roomlist = purple_roomlist_new (purple_connection_get_account (gc));
+
+ purple_roomlist_set_in_progress (conn->roomlist, TRUE);
+
+ // spectrum2 calls this function when the account is still connection
+ // all roomlists in progress are being initialised by tgp_on_ready
+ if (conn->dialogues_ready) {
+ tgp_chat_roomlist_populate (conn->TLS);
+ }
return conn->roomlist;
}
diff --git a/tgp-chat.h b/tgp-chat.h
index 156b5f3..bda1542 100644
--- a/tgp-chat.h
+++ b/tgp-chat.h
@@ -52,6 +52,7 @@ void tgprpl_chat_join (PurpleConnection *gc, GHashTable *data);
GList *tgprpl_chat_join_info (PurpleConnection *gc);
PurpleRoomlist *tgprpl_roomlist_get_list (PurpleConnection *gc);
void tgprpl_roomlist_cancel (PurpleRoomlist *list);
+void tgp_chat_roomlist_populate (struct tgl_state *TLS);
GHashTable *tgprpl_chat_info_defaults (PurpleConnection *gc, const char *chat_name);
void tgp_chat_join_all_pending (struct tgl_state *TLS);
void tgprpl_kick_from_chat (PurpleConnection *gc, int id, const char *who);
diff --git a/tgp-info.c b/tgp-info.c
index b9f9f32..c519732 100644
--- a/tgp-info.c
+++ b/tgp-info.c
@@ -22,7 +22,7 @@
// load photo
static void tgp_info_update_photo_id (PurpleBlistNode *node, long long photo) {
- char *llid = g_strdup_printf ("%" G_GINT64_FORMAT, photo);
+ char *llid = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64) photo);
debug ("tgp_info_update_photo_id %s", llid);
purple_blist_node_set_string (node, TGP_INFO_PHOTO_ID, llid);
g_free (llid);
diff --git a/tgp-msg.c b/tgp-msg.c
index ee7ba31..62d73d2 100644
--- a/tgp-msg.c
+++ b/tgp-msg.c
@@ -42,7 +42,7 @@ g_utf8_substring (const gchar *str,
}
#endif
-static char *format_service_msg (struct tgl_state *TLS, struct tgl_message *M) {
+static char *tgp_msg_service_display (struct tgl_state *TLS, struct tgl_message *M) {
g_return_val_if_fail(M && M->flags & TGLMF_SERVICE, NULL);
connection_data *conn = TLS->ev_base;
@@ -186,6 +186,37 @@ static char *format_geo_link_osm (double lat, double lon) {
return link;
}
+static char *tgp_msg_file_display (const char *path, const char *filename, const char* caption, const char *mime, long long size) {
+ gchar *format;
+
+ gchar *capt = g_markup_escape_text (caption, -1);
+ gchar *pth = g_markup_escape_text (path, -1);
+ gchar *fle = g_markup_escape_text (filename, -1);
+ gchar *mme = g_markup_escape_text (mime, -1);
+ gchar *fsize =
+#if GLIB_CHECK_VERSION(2,30,0)
+ /* 'g_format_size' only exists since 2.30.0. */
+ g_format_size (size)
+#elif GLIB_CHECK_VERSION(2,16,0)
+ /* 'g_format_size_for_display' only exists since 2.16.0.
+ * We compile on Windows with glib 2.28.8. */
+ g_format_size_for_display (size)
+#else /* even older */
+ #error "Too outdated glib version!"
+#endif
+ ;
+
+ format = g_strdup_printf ("[%s <a href=\"file:///%s\">%s</a> %s %s]", capt, pth, fle, mme, fsize);
+
+ g_free (capt);
+ g_free (pth);
+ g_free (fle);
+ g_free (mme);
+ g_free (fsize);
+
+ return format;
+}
+
static void tgp_msg_send_done (struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M) {
if (! success) {
char *err = _("Sending message failed.");
@@ -214,8 +245,16 @@ static gboolean tgp_msg_send_schedule_cb (gpointer data) {
&& !(tgl_peer_get (conn->TLS, D->to)->channel.flags & TGLCHF_MEGAGROUP)) {
flags |= TGLMF_POST_AS_CHANNEL;
}
-
+
+ // secret chats do not unescape html
+ if (tgl_get_peer_type (D->to) == TGL_PEER_ENCR_CHAT) {
+ gchar *unescaped = purple_unescape_html (D->msg);
+ g_free (D->msg);
+ D->msg = unescaped;
+ }
+
tgl_do_send_message (D->TLS, D->to, D->msg, (int)strlen (D->msg), flags, NULL, tgp_msg_send_done, D->msg);
+
tgp_msg_sending_free (D);
}
return FALSE;
@@ -296,6 +335,16 @@ static char *tgp_msg_markdown_convert (const char *msg) {
int len = (int) strlen (msg);
char *html = g_new0(gchar, 3 * len);
+ // strip any known-breaking html tags
+ #define STRIP_BROKEN_HTML(PREFIX,SUFFIX) \
+ if (g_str_has_prefix (msg, (PREFIX)) && g_str_has_suffix (msg, (SUFFIX))) { \
+ msg += sizeof(PREFIX) - 1; \
+ len -= (sizeof(PREFIX) - 1) + (sizeof(SUFFIX) - 1); \
+ }
+ STRIP_BROKEN_HTML("<SPAN style=\"direction:rtl;text-align:right;\">","</SPAN>");
+ // more STRIP_BROKEN_HTML invocations here, if necessary
+ #undef STRIP_BROKEN_HTML
+
int open = FALSE;
int i, j;
for (i = 0, j = 0; i < len; i ++) {
@@ -321,7 +370,6 @@ static char *tgp_msg_markdown_convert (const char *msg) {
}
int tgp_msg_send (struct tgl_state *TLS, const char *message, tgl_peer_id_t to) {
-
// send all inline images
GList *imgs = tgp_msg_imgs_parse (message);
debug ("parsed %d images in messages", g_list_length (imgs));
@@ -376,15 +424,6 @@ int tgp_msg_send (struct tgl_state *TLS, const char *message, tgl_peer_id_t to)
return 0;
}
-static char *tgp_msg_file_display (const char *path, const char *filename, const char* caption, const char *mime, long long size) {
- gchar *fsize = g_format_size(size);
- gchar *format;
- format = g_strdup_printf ("[%s <a href=\"file:///%s\">%s</a> %s %s]", g_markup_escape_text (caption, -1), g_markup_escape_text (path, -1),
- g_markup_escape_text (filename, -1), g_markup_escape_text (mime, -1), fsize);
- g_free (fsize);
- return format;
-}
-
static char *tgp_msg_photo_display (struct tgl_state *TLS, const char *filename, int *flags) {
connection_data *conn = TLS->ev_base;
int img = p2tgl_imgstore_add_with_id (filename);
@@ -421,6 +460,89 @@ static char *tgp_msg_sticker_display (struct tgl_state *TLS, tgl_peer_id_t from,
return text;
}
+static char *tgp_msg_reply_display (struct tgl_state *TLS, tgl_peer_t *replyee, struct tgl_message *reply, const char *message) {
+
+ g_return_val_if_fail(reply, NULL);
+ g_return_val_if_fail(message, NULL);
+
+ // the text quoted by the reply
+ char *quote = NULL;
+
+ if (reply->flags & TGLMF_SERVICE) {
+ quote = tgp_msg_service_display (TLS, reply);
+ g_return_val_if_fail(quote == NULL, NULL);
+
+ } else {
+ switch (reply->media.type) {
+ case tgl_message_media_none:
+ quote = purple_markup_escape_text (reply->message, strlen (reply->message));
+ tgp_replace (quote, '\n', ' ');
+ break;
+
+ case tgl_message_media_photo:
+ quote = g_strdup(_("[photo]"));
+ break;
+
+ case tgl_message_media_audio:
+ quote = g_strdup(_("[audio]"));
+ break;
+
+ case tgl_message_media_video:
+ quote = g_strdup(_("[video]"));
+ break;
+
+ case tgl_message_media_document:
+ case tgl_message_media_document_encr:
+ quote = g_strdup(_("[document]"));
+ break;
+
+ case tgl_message_media_geo:
+ case tgl_message_media_venue:
+ quote = g_strdup(_("[position]")); // TODO: render
+ break;
+
+ case tgl_message_media_contact:
+ quote = g_strdup(_("[contact]")); // TODO: render
+ break;
+
+ case tgl_message_media_webpage:
+ quote = g_strdup(_("[webpage]"));
+ break;
+
+ case tgl_message_media_unsupported:
+ quote = g_strdup(_("[unsupported media]"));
+ break;
+
+ default:
+ g_warn_if_reached();
+ return NULL;
+ break;
+ }
+ }
+
+
+ // the combined reply
+
+ // insert line-break in non-adium clients to display
+ // all lines of the quotation on the same level
+ const char *br = "";
+#ifndef __ADIUM_
+ br = "<br>";
+#endif
+
+ char *value = NULL;
+ if (replyee) {
+ const char *name = replyee->print_name;
+ value = g_strdup_printf (_("%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"), br, name, quote, message);
+ } else {
+ value = g_strdup_printf (_("%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"), br, quote, message);
+ }
+
+ g_free (quote);
+
+ return value;
+}
+
static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
struct tgl_message *M = C->msg;
char *text = NULL;
@@ -469,7 +591,7 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
// format the message text
if (M->flags & TGLMF_SERVICE) {
- text = format_service_msg (TLS, M);
+ text = tgp_msg_service_display (TLS, M);
flags |= PURPLE_MESSAGE_SYSTEM;
} else if (M->media.type != tgl_message_media_none) {
@@ -490,55 +612,61 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
}
break;
}
-
+
case tgl_message_media_document:
-
+ case tgl_message_media_video:
+ case tgl_message_media_audio:
if (M->media.document->flags & TGLDF_STICKER) {
g_return_if_fail(C->data != NULL);
text = tgp_msg_sticker_display (TLS, M->from_id, C->data, &flags);
- } else if (M->media.document->flags & TGLDF_ANIMATED) {
- g_return_if_fail(C->data != NULL);
- text = tgp_msg_file_display (C->data, M->media.document->caption, _("animation"),
- M->media.document->mime_type, M->media.document->size);
-
- } else if (M->media.document->flags & TGLDF_IMAGE) {
+ } else if (M->media.document->flags & TGLDF_IMAGE && !(M->media.document->flags & TGLDF_ANIMATED)) {
g_return_if_fail(C->data != NULL);
text = tgp_msg_photo_display (TLS, C->data, &flags);
} else {
- if (! tgp_our_msg (TLS, M)) {
- if (C->data) {
- text = tgp_msg_file_display (C->data, M->media.document->caption, _("document"),
- M->media.document->mime_type, M->media.document->size);
- } else {
- tgprpl_recv_file (tls_get_conn (TLS), tgp_blist_lookup_purple_name (TLS, M->from_id), M);
- return;
+ // Automatically loaded files have C->data set to the file path
+ if (C->data) {
+ const char* path = C->data;
+
+ // Content of a file transfer
+ const char *caption = _("document");
+ if (M->media.document->flags & TGLDF_AUDIO) {
+ // Content of a file transfer
+ caption = _("audio");
+ } else if (M->media.document->flags & TGLDF_ANIMATED) {
+ // Content of a file transfer
+ caption = _("animation");
+ } else if (M->media.document->flags & TGLDF_VIDEO) {
+ // Content of a file transfer
+ caption = _("video");
}
- }
- }
- break;
- case tgl_message_media_video:
- case tgl_message_media_audio: {
- if (! tgp_our_msg (TLS, M)) {
- if (C->data) {
- const char *filename = C->data + strlen(C->data) - 1;
- while (filename > (char *)C->data && *filename != G_DIR_SEPARATOR) {
- filename --;
+ const char *filename = M->media.document->caption;
+ if (! str_not_empty (filename)) {
+ // audio and video snippets recorded from Telegram don't have captions
+ const char *segment = path + strlen(path) - 1;
+ while (segment > (char *)path && *segment != G_DIR_SEPARATOR) {
+ segment --;
+ }
+ filename = segment + 1;
}
- filename ++;
- text = tgp_msg_file_display (C->data, filename,
- M->media.type == tgl_message_media_audio ? _("audio") : _("video"),
- M->media.document->mime_type, M->media.document->size);
+
+ const char *mime = "";
+ if (str_not_empty (M->media.document->mime_type)) {
+ mime = M->media.document->mime_type;
+ }
+
+ text = tgp_msg_file_display (path, filename, caption, mime, M->media.document->size);
} else {
- tgprpl_recv_file (tls_get_conn (TLS), tgp_blist_lookup_purple_name (TLS, M->from_id), M);
+ if (! tgp_our_msg (TLS, M) && ! tls_get_ft_discard (TLS)) {
+ tgprpl_recv_file (tls_get_conn (TLS), tgp_blist_lookup_purple_name (TLS, M->from_id), M);
+ }
return;
}
}
- }
- break;
-
+ break;
+
case tgl_message_media_document_encr:
if (M->media.encr_document->flags & TGLDF_STICKER) {
g_return_if_fail(C->data != NULL);
@@ -551,6 +679,7 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
} else {
if (! tgp_our_msg (TLS, M)) {
if (C->data) {
+ // Content of a file transfer
text = tgp_msg_file_display (C->data, M->media.encr_document->caption, _("document"),
M->media.encr_document->mime_type, M->media.encr_document->size);
@@ -607,57 +736,54 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
}
flags |= PURPLE_MESSAGE_RECV;
}
-
+
if (tgl_get_peer_type (M->to_id) != TGL_PEER_ENCR_CHAT
&& tgl_get_peer_type (M->to_id) != TGL_PEER_CHANNEL
&& ! (M->flags & TGLMF_UNREAD)) {
+ // why?
flags |= PURPLE_MESSAGE_DELAYED;
}
+ // TODO: is that a problem?
// some service messages (like removing/adding users from chats) might print the message
// text through other means and leave the text empty
if (! str_not_empty (text)) {
return;
}
- // Handle forwarded messages
- if (tgl_get_peer_id (M->fwd_from_id) != TGL_PEER_UNKNOWN) {
- const char *name;
+ // forwarded messages
+ if (tgl_get_peer_type (M->fwd_from_id) != TGL_PEER_UNKNOWN) {
+ debug("forwarded message: fwd_from_id=%d", tgl_get_peer_id(M->fwd_from_id));
+
+ // may be NULL
tgl_peer_t *FP = tgl_peer_get (TLS, M->fwd_from_id);
char *tmp = text;
- if (FP) {
- name = FP->print_name;
- text = g_strdup_printf (_("<b>Forwarded message from: %s</b><br>%s"), name, text);
- } else {
- // FIXME: sometimes users aren't part of the response when receiving a forwarded message
- text = g_strdup_printf (_("<b>Forwarded message:</b><br>%s"), text);
- }
+ text = tgp_msg_reply_display(TLS, FP, M, "");
g_free (tmp);
+
+ g_return_if_fail(text != NULL);
}
-
- /*
- FIXME: message lookup doesn't work
- // Handle replies
- if (M->reply_id > 0) {
- tgl_message_id_t id;
- id.peer_type = TGL_PEER_USER;
- id.id = M->reply_id;
-
- const char *msg = "Unkown Message";
- struct tgl_message *MM = tgl_message_get (TLS, &id);
- if (MM) {
- msg = MM->message;
- }
- const char *usr = "Unknown User";
- if (MM) {
- tgl_peer_t *P = tgl_peer_get (TLS, MM->from_id);
- usr = P->print_name;
- }
- g_free (text);
- text = g_strdup_printf (_("<b>%s: %s</b><br>%s"), msg, usr, M->message);
+
+ // replys
+ if (M->reply_id) {
+ debug("message reply: reply_id=%d", M->reply_id);
+
+ tgl_message_id_t msg_id = M->permanent_id;
+ msg_id.id = M->reply_id;
+
+ struct tgl_message *reply = tgl_message_get (TLS, &msg_id);
+ g_return_if_fail(reply != NULL);
+
+ tgl_peer_t *replyee = tgl_peer_get (TLS, reply->from_id);
+ g_return_if_fail(replyee != NULL);
+
+ char *tmp = text;
+ text = tgp_msg_reply_display(TLS, replyee, reply, tmp);
+ g_free (tmp);
+
+ g_return_if_fail(text != NULL);
}
- */
// display the message to the user
switch (tgl_get_peer_type (M->to_id)) {
@@ -801,7 +927,7 @@ void tgp_msg_recv (struct tgl_state *TLS, struct tgl_message *M, GList *before)
return;
}
- if (!(M->flags | TGLMF_UNREAD) && M->date != 0 && M->date < tgp_msg_oldest_relevant_ts (TLS)) {
+ if (!(M->flags & TGLMF_UNREAD) && M->date != 0 && M->date < tgp_msg_oldest_relevant_ts (TLS)) {
debug ("Message from %d on %d too old, ignored.", tgl_get_peer_id (M->from_id), M->date);
return;
}
@@ -836,6 +962,7 @@ void tgp_msg_recv (struct tgl_state *TLS, struct tgl_message *M, GList *before)
}
if (! (M->flags & TGLMF_SERVICE)) {
+ debug ("service msg");
// handle all messages that need to load content before they can be displayed
if (M->media.type != tgl_message_media_none) {
@@ -854,42 +981,34 @@ void tgp_msg_recv (struct tgl_state *TLS, struct tgl_message *M, GList *before)
// documents that are stickers or images will be displayed just like regular photo messages
// and need to be loaded beforehand
case tgl_message_media_document:
+ case tgl_message_media_video:
+ case tgl_message_media_audio:
if (M->media.document->flags & (TGLDF_STICKER | TGLDF_IMAGE)) {
++ C->pending;
tgl_do_load_document (TLS, M->media.document, tgp_msg_on_loaded_document, C);
} else {
- // adium doesn't support file links, autoloading media would mean that it
- // wouldn't be possible to show a usable link to the user
+
+ // adium doesn't support printing an inline file link to the downloaded file
#ifndef __ADIUM_
- if (M->media.document->size <= tls_get_media_threshold (TLS)) {
+
+ if (M->media.document->size <= tls_get_ft_threshold (TLS) || tls_get_ft_autoload (TLS)) {
++ C->pending;
+
if (M->media.document->flags & TGLDF_AUDIO) {
tgl_do_load_audio (TLS, M->media.document, tgp_msg_on_loaded_document, C);
+
} else if (M->media.document->flags & TGLDF_VIDEO) {
tgl_do_load_video (TLS, M->media.document, tgp_msg_on_loaded_document, C);
+
} else {
tgl_do_load_document (TLS, M->media.document, tgp_msg_on_loaded_document, C);
}
}
-#endif
- }
- break;
-#ifndef __ADIUM_
- case tgl_message_media_video:
- if (M->media.document->size <= tls_get_media_threshold (TLS)) {
- ++ C->pending;
- tgl_do_load_video (TLS, M->media.document, tgp_msg_on_loaded_document, C);
- }
- break;
- case tgl_message_media_audio:
- if (M->media.document->size <= tls_get_media_threshold (TLS)) {
- ++ C->pending;
- tgl_do_load_audio (TLS, M->media.document, tgp_msg_on_loaded_document, C);
+#endif
}
break;
-#endif
case tgl_message_media_document_encr:
if (M->media.encr_document->flags & TGLDF_STICKER || M->media.encr_document->flags & TGLDF_IMAGE) {
diff --git a/tgp-utils.c b/tgp-utils.c
index 6f4dcfe..0b5e15a 100644
--- a/tgp-utils.c
+++ b/tgp-utils.c
@@ -94,8 +94,7 @@ void tgp_g_queue_free_full (GQueue *queue, GDestroyNotify free_func) {
void tgp_g_list_free_full (GList *list, GDestroyNotify free_func) {
if (list) {
- g_list_foreach (list, (GFunc)free_func, NULL);
- g_list_free (list);
+ g_list_free_full (list, free_func);
}
}