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-08-31 12:42:50 +0300
committerBen Wiederhake <BenWiederhake.GitHub@gmx.de>2019-08-31 12:42:50 +0300
commit49f67d7c0122eca9e49a833aedb332f2fa66f47b (patch)
tree3fbed00a8beca7c36ce39ab13f6f6c56d8a1c898
parentec0c6fa8e8e60ea524489709ad9119c7e78fa189 (diff)
parent494dbf43b11eb5b383ba6b9029864aa99a7283ca (diff)
Merge branch 'dev-1.4.2' into master
-rw-r--r--CHANGELOG.md13
-rw-r--r--HACKING.md35
-rw-r--r--Makefile.in13
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac2
-rwxr-xr-xmkwindows.sh60
-rw-r--r--po/bg.po7
-rw-r--r--po/cs_CZ.po7
-rw-r--r--po/da.po6
-rw-r--r--po/de_DE.po6
-rw-r--r--po/es.po202
-rw-r--r--po/es_AR.po7
-rw-r--r--po/fr.po6
-rw-r--r--po/it_IT.po7
-rw-r--r--po/nl.po6
-rw-r--r--po/pl_PL.po7
-rw-r--r--po/pt_BR.po7
-rw-r--r--po/ru_RU.po184
-rw-r--r--po/sq.po7
-rw-r--r--po/telegram-purple.pot198
-rw-r--r--po/uk.po6
-rw-r--r--rpm/purple-telegram.spec5
-rw-r--r--telegram-adium/telegram-adium/telegram-adium-Info.plist4
-rw-r--r--telegram-purple.c7
-rw-r--r--test/loadtest.c2
-rw-r--r--tgp-2prpl.c2
-rw-r--r--tgp-chat.c6
-rw-r--r--tgp-msg.c117
-rw-r--r--tgp-request.c1
-rw-r--r--tgp-utils.c9
30 files changed, 540 insertions, 417 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b699cdb..3e44e6f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,19 @@
Changelog
---------
+##### 1.4.2
+
+- Still no support for Adium. We just don't know how! Help wanted! PLEASE!
+- Update Windows dependencies
+- Support ancient glib (See #501)
+- Update translations. Thanks to the following people:
+ * Eduardo Trápani <etrapani@gmail.com> (es)
+ * Olesya Gerasimenko <gammaray@basealt.ru> (ru)
+- Fix: Handle forwarded messages and captioned images better
+- Fix: Handle replies better
+- Fix: Images in own messages
+- Fix: Remove *some* of the duplicate messages seen (Maybe fixes #258?)
+
##### 1.4.1
- *REMOVED* active support for Adium. We just don't know how! Help wanted!
diff --git a/HACKING.md b/HACKING.md
index 95a591b..555a1da 100644
--- a/HACKING.md
+++ b/HACKING.md
@@ -27,18 +27,31 @@ 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/`.
+Download the zip-file, extract it, remove the annoying prefix. Move all files to `po/`, except `en.po`.
+
+While waiting for the download link, create the new resource with the new potfile,
+then re-upload all the old translations there.
Run `make po/*.po` to fix the filenames. Do not delete any files. Rationale see `Makefile`.
Adjust `po/LINGUAS*` as you see fit.
+Also import the translations for `AppStream/po/`.
+
#### Increment version
Attempt to use semver.
Adjust `configure.ac`, in macro `AC_INIT`. Remember to run `autoreconf`.
+Adjust `telegram-adium/telegram-adium/telegram-adium-Info.plist`.
+
+Adjust `rpm/purple-telegram.spec`, in version at the top and "changelog" below.
+
+Don't update debian: It's abandoned anyway.
+
+AppStream: Nothing to do.
+
Update `CHANGELOG.md`.
#### Run some tests
@@ -48,6 +61,8 @@ Also, install it locally. Don't forget to `./configure` first.
#### Prepare release files
+Merge into `master`.
+
Make a tag: `git tag v1.something`
Remember to push the tag to github.
@@ -59,8 +74,24 @@ Keep the resulting `telegram-purple-1.something+gcafebabe5.exe` safe.
#### Create release on github
-FIXME
+See the [release page](https://github.com/majn/telegram-purple/releases/).
+Feel free to be inspired by the previous release-messages.
+
+Remember to upload the origtar *and* Windows installer.
#### Close associated issues
All relevant issues are marked with `in-pipeline`, but sadly too many are marked this way.
+
+#### Organize branches
+
+Create a new branch `dev-1.nextsomething`, delete the old branch.
+
+#### Create new translation goal on transifex
+
+Be pessimistic in the slug-name.
+
+Run `./autogen.sh` to make all string changes available.
+
+Also, create an announcement that yes there is a new resource,
+but this resource may change significantly until the next string freeze.
diff --git a/Makefile.in b/Makefile.in
index 52cc457..34dff3e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -22,7 +22,8 @@ datarootdir=@datarootdir@
localedir=@localedir@
gettext_package=@GETTEXT_PACKAGE@
-PIDGIN_VERSION=2.12.0
+# Also update mkwindows.sh
+PIDGIN_VERSION=2.13.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
@@ -32,9 +33,9 @@ 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_WEBP_URL=https://github.com/webmproject/libwebp/archive/v1.0.2.tar.gz
+WIN32_WEBP_FILE=win32/libwebp-1.0.2.tar.gz
+WIN32_WEBP_DIR=win32/libwebp-1.0.2
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.
@@ -47,7 +48,7 @@ WIN32_INC=-I${WIN32_PIDGIN_SRC_DIR}/pidgin \
-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
+ -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)"'
@@ -339,7 +340,7 @@ dist: check-clean commit.h .git create_dirs
.PHONY: clean-here
clean-here:
- rm -rf ${DIR_LIST} $(PRPL_LIBNAME) telegram-purple.nsi po/*.mo autom4te.cache AppStream/po/*.mo
+ rm -rf ${DIR_LIST} $(PRPL_LIBNAME) telegram-purple.nsi po/*.mo autom4te.cache AppStream/po/*.mo commit.h
-include test/Makefile
diff --git a/configure b/configure
index bea5c6a..f8b9e1b 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.4.1.
+# Generated by GNU Autoconf 2.69 for telegram-purple 1.4.2.
#
#
# 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.4.1'
-PACKAGE_STRING='telegram-purple 1.4.1'
+PACKAGE_VERSION='1.4.2'
+PACKAGE_STRING='telegram-purple 1.4.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1261,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.4.1 to adapt to many kinds of systems.
+\`configure' configures telegram-purple 1.4.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1323,7 +1323,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of telegram-purple 1.4.1:";;
+ short | recursive ) echo "Configuration of telegram-purple 1.4.2:";;
esac
cat <<\_ACEOF
@@ -1432,7 +1432,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-telegram-purple configure 1.4.1
+telegram-purple configure 1.4.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1851,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.4.1, which was
+It was created by telegram-purple $as_me 1.4.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -5195,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.4.1, which was
+This file was extended by telegram-purple $as_me 1.4.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5257,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.4.1
+telegram-purple config.status 1.4.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 2c25ba6..b992a0f 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.4.1])
+AC_INIT([telegram-purple], [1.4.2])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
diff --git a/mkwindows.sh b/mkwindows.sh
index 4e10452..7f2dc01 100755
--- a/mkwindows.sh
+++ b/mkwindows.sh
@@ -29,6 +29,12 @@ then
# Otherwise:
# USE_WEBP=n
fi
+if [ -z "${USE_PNG}" ]
+then
+ USE_PNG=y
+ # Otherwise:
+ # USE_PNG=n
+fi
if [ -z "${USE_VERSIONINFO}" ]
then
USE_VERSIONINFO=y
@@ -55,18 +61,18 @@ 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="objs/webp/install/"
+mkdir -p ${WEBP_INSTALL_DIR} # Needed for realpath
WEBP_INSTALL_DIR_FULL="$(realpath ${WEBP_INSTALL_DIR})"
-WEBP_BUILD_DIR="objs/webp-build/"
+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/"
+WIN32_PIDGIN_DIR=`realpath win32/pidgin-2.13.0`
+WIN32_WEBP_PRISTINE="win32/libwebp-1.0.2/"
# Versioning information
./configure -q
@@ -133,15 +139,20 @@ 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
+ (
+ cd "${WEBP_BUILD_DIR}"
+ # ./autogen.sh && ./configure && make
# Disable linking against PNG, JPEG, TIFF, GIF, WIC,
# as those would either need cross-compilation, too, or some other magic.
+ ./autogen.sh
+ # libtoolize (called by autoreconf, called by autogen.sh) must not see
+ # `install-sh` because it would become confused by it.
+ # That's why the hierarchy is so deep.
./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 \
+ --enable-swap-16bit-csp \
--disable-libwebpmux --disable-libwebpdemux \
--disable-libwebpdecoder --disable-libwebpextras \
--disable-png --disable-jpeg --disable-tiff --disable-gif --disable-wic
@@ -150,12 +161,9 @@ else
# 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.
@@ -194,7 +202,14 @@ then
LDFLAGS_WEBP="-L${WEBP_INSTALL_DIR_FULL}/bin"
CONFFLAGS_WEBP="--enable-libwebp"
fi
-./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
+if [ "y" = "${USE_PNG}" ]
+then
+ # Library should already be present in win32/gtk+-bundle_2.24.10-20120208_win32/lib
+ CONFFLAGS_PNG="--enable-libpng"
+fi
+# pkg-config is used to find the right directories for icons, library, etc on linux.
+# For Windows, this is already hardcoded in telegram-purple.nsi, so pkg-config isn't needed.
+PKG_CONFIG=/bin/false ./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
--disable-libpng --disable-libwebp \
--with-zlib="${MINGW_BASE}" \
PURPLE_CFLAGS="\${WIN32_INC}" \
@@ -202,12 +217,13 @@ fi
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 ..
+(
+ cd tgl
+ ./configure -q --build ${HOST} --host ${MINGW_TARGET} --target ${MINGW_TARGET} \
+ --disable-openssl --disable-extf \
+ --with-zlib="${MINGW_BASE}" \
+ LIBS="-lssp"
+)
# Pretend we're building up the preliminaries for auto/
echo "===== 06: Compile tgl, pre-'generate' files"
@@ -234,7 +250,7 @@ echo "===== 09: Compile telegram-purple"
VERSIONINFO_OBJECTS=""
if [ "y" = "${USE_VERSIONINFO}" ]
then
- mkdir -p objs
+ make objs commit.h
cat <<EOFRC > objs/info.rc
#include "../commit.h"
1 VERSIONINFO
@@ -267,8 +283,6 @@ make -j4 bin/libtelegram.dll \
# 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
@@ -276,6 +290,6 @@ makensis -DPLUGIN_VERSION="${VERSION}+g${COMMIT}" -DPRPL_NAME=libtelegram.dll \
# 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 ..
+( cd tgl && git checkout tl-parser/tl-parser.c tl-parser/tlc.c )
echo "===== COMPLETE: All done. Installer executable is in top directory."
diff --git a/po/bg.po b/po/bg.po
index 7eb5d98..3a5c702 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# Любомир Василев, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 89ab8d7..99aff0c 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Jan Breuer <j123b567@jaybee.cz>, 2018
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/da.po b/po/da.po
index 44d5c20..3a29fcc 100644
--- a/po/da.po
+++ b/po/da.po
@@ -4,14 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# TitanusEramius <titanus@aptget.dk>, 2017
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/de_DE.po b/po/de_DE.po
index 565866e..40e5059 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -4,14 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/es.po b/po/es.po
index d56099e..aed6519 100644
--- a/po/es.po
+++ b/po/es.po
@@ -4,15 +4,16 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# aguador <waterbearer54@gmx.com>, 2017
-# C0D3C <gomezgleonardob@gmail.com>, 2019
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
+# aguador <waterbearer54@gmx.com>, 2019
+# Eduardo Trápani <etrapani@gmail.com>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Eduardo Trápani <etrapani@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=UTF-8\n"
@@ -26,19 +27,19 @@ msgstr "No se pudo crear el grupo"
#: ../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:497
msgid "Query Failed"
-msgstr "Falló la consulta"
+msgstr "Falló la consulta"
#: ../telegram-purple.c:159
msgid "Secret chat ready."
-msgstr "Conversación secreta lista."
+msgstr "Conversación secreta lista."
#: ../telegram-purple.c:167
msgid "Secret chat terminated."
-msgstr "Finalizó la conversación secreta."
+msgstr "Finalizó la conversación secreta."
#: ../telegram-purple.c:179
msgid "Telegram"
@@ -46,17 +47,17 @@ msgstr "Telegram"
#: ../telegram-purple.c:226
msgid "Message marked as read."
-msgstr "Mensaje marcado como leído."
+msgstr "Mensaje marcado como leído."
#: ../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: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:355
msgid "You need to be admin of the group to do that."
@@ -64,15 +65,15 @@ msgstr "Necesite ser administrador del grupo para hacer eso."
#: ../telegram-purple.c:439
msgid "Chat joined"
-msgstr "Unido a la conversación"
+msgstr "Unido a la conversación"
#: ../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:466
msgid "Start secret chat..."
-msgstr "Iniciar conversación secreta..."
+msgstr "Iniciar conversación secreta..."
#. Generate Public Link
#: ../telegram-purple.c:473
@@ -90,8 +91,8 @@ 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:564
msgid "Problem in tgl"
@@ -104,29 +105,29 @@ 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:580
msgid "Incomplete phone number"
-msgstr "Número de teléfono incompleto"
+msgstr "Número de teléfono incompleto"
#: ../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: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: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: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:692
msgid "Specified user does not exist."
@@ -134,7 +135,7 @@ msgstr "El usuario especificado no existe."
#: ../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."
@@ -143,15 +144,15 @@ msgstr "Echar <usuario>: Echar al usuario de la sala."
#. Login
#: ../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: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)"
#. Whether to do fallback SMS verification
#: ../telegram-purple.c:834
@@ -175,15 +176,15 @@ msgstr "Aceptar conversaciones secretas"
#: ../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: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
@@ -229,65 +230,65 @@ 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
@@ -301,62 +302,62 @@ msgstr "Canales de Telegram"
#: ../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:293
msgid "Sending image failed."
-msgstr "Falló el envío de imágenes."
+msgstr "Falló el envío de imágenes."
#: ../tgp-msg.c:457
#, c-format
msgid "%s sent a sticker."
-msgstr "%s envió un sticker."
+msgstr "%s envió un sticker."
#: ../tgp-msg.c:483
msgid "[photo]"
-msgstr ""
+msgstr "[foto]"
#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr ""
+msgstr "[audio]"
#: ../tgp-msg.c:491
msgid "[video]"
-msgstr ""
+msgstr "[video]"
#: ../tgp-msg.c:496
msgid "[document]"
-msgstr ""
+msgstr "[documento]"
#: ../tgp-msg.c:501
msgid "[position]"
-msgstr ""
+msgstr "[posición]"
#: ../tgp-msg.c:505
msgid "[contact]"
-msgstr ""
+msgstr "[contacto]"
#: ../tgp-msg.c:509
msgid "[webpage]"
-msgstr ""
+msgstr "[página web]"
#: ../tgp-msg.c:513
msgid "[unsupported media]"
-msgstr ""
+msgstr "[medio no soportado]"
#: ../tgp-msg.c:536
#, c-format
msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
-msgstr ""
+msgstr "%s<b>&gt; %s escribió:</b><br>&gt; %s<br>%s"
#: ../tgp-msg.c:538
#, c-format
msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
-msgstr ""
+msgstr "%s<b>&gt; Usuario desconocido escribió:</b><br>&gt; %s<br>%s"
#: ../tgp-msg.c:586
msgid "failed loading message"
-msgstr "falló la carga del mensaje"
+msgstr "falló la carga del mensaje"
#. Content of a file transfer
#: ../tgp-msg.c:633 ../tgp-msg.c:683
@@ -380,7 +381,7 @@ msgstr "vídeo"
#: ../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"
@@ -392,27 +393,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
@@ -442,7 +443,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
@@ -450,8 +451,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"
@@ -459,11 +460,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"
@@ -474,21 +475,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 ""
@@ -496,9 +497,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 ""
@@ -506,9 +507,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"
@@ -516,7 +517,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"
@@ -524,7 +525,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"
@@ -532,7 +533,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"
@@ -540,7 +541,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
@@ -549,33 +550,32 @@ 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"
@@ -583,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"
@@ -591,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.
@@ -625,7 +625,7 @@ 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:298
msgid "Subject:"
@@ -633,15 +633,15 @@ msgstr "Asunto:"
#: ../tgp-chat.c:304
msgid "Invite link:"
-msgstr "Enlace de invitación:"
+msgstr "Enlace de invitación:"
#: ../tgp-chat.c:310
msgid "Chat ID:"
-msgstr "Identificación de conversación:"
+msgstr "Identificación de conversación:"
#: ../tgp-chat.c:416
msgid "Supergroup"
-msgstr "Súpergrupo"
+msgstr "Súpergrupo"
#: ../tgp-chat.c:416
msgid "Channel"
@@ -653,7 +653,7 @@ msgstr "Grupo"
#: ../tgp-chat.c:435
msgid "Users in chat"
-msgstr "Usuarios en la conversación"
+msgstr "Usuarios en la conversación"
#: ../tgp-chat.c:438
msgid "Type"
diff --git a/po/es_AR.po b/po/es_AR.po
index 07cc65a..3304ca0 100644
--- a/po/es_AR.po
+++ b/po/es_AR.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# ЌИГЯФ <kntro@msn.com>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/fr.po b/po/fr.po
index e77c0a1..23d2629 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,14 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/it_IT.po b/po/it_IT.po
index 6dd9934..e760b76 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>, 2017
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/nl.po b/po/nl.po
index daaf6c8..01c8054 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -4,14 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/pl_PL.po b/po/pl_PL.po
index 0446184..1e5a5e1 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# Piotr Drąg <piotrdrag@gmail.com>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index f7b487c..ededdbe 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# Denis Brandl <denisbr@gmail.com>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 75279d9..e265c23 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -4,14 +4,15 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
+# Olesya Gerasimenko <gammaray@basealt.ru>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Olesya Gerasimenko <gammaray@basealt.ru>, 2019\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=UTF-8\n"
@@ -37,7 +38,7 @@ msgstr "Секретный чат готов."
#: ../telegram-purple.c:167
msgid "Secret chat terminated."
-msgstr "Защищенный чат завершен"
+msgstr "Секретный чат завершён."
#: ../telegram-purple.c:179
msgid "Telegram"
@@ -45,7 +46,7 @@ msgstr "Telegram"
#: ../telegram-purple.c:226
msgid "Message marked as read."
-msgstr "Сообщение помечено как прочитанное"
+msgstr "Сообщение помечено как прочитанное."
#: ../telegram-purple.c:343
#, c-format
@@ -63,7 +64,7 @@ msgstr "Вы должны быть администратором группы,
#: ../telegram-purple.c:439
msgid "Chat joined"
-msgstr "Присоединился к чату"
+msgstr "Чат подключён."
#: ../telegram-purple.c:440
msgid "Chat added to list of chat rooms."
@@ -89,10 +90,13 @@ msgid ""
"Unable to sign on as %s: problem in the underlying library 'tgl'. Please "
"submit a bug report with the debug log."
msgstr ""
+"Не удалось войти как %s: проблема с базовой библиотекой «tgl». Пожалуйста, "
+"отправьте сообщение об ошибке, приложив соответствующие сообщения журнала "
+"отладки."
#: ../telegram-purple.c:564
msgid "Problem in tgl"
-msgstr "Проблема в tgl"
+msgstr "Проблема с библиотекой «tgl»"
#. TRANSLATORS: Please fill in your own prefix!
#: ../telegram-purple.c:575
@@ -110,7 +114,7 @@ msgstr "Неполный номер телефона"
#: ../telegram-purple.c:638
msgid "Secret chat was already deleted"
-msgstr "Секретный чат уже был удален"
+msgstr "Секретный чат уже был удалён"
#: ../telegram-purple.c:640
msgid "Secret chat is not ready"
@@ -122,7 +126,7 @@ msgstr "Только создатель канала может отправля
#: ../telegram-purple.c:691
msgid "Cannot invite buddy to chat"
-msgstr "Не могу пригласить пользователя в чат"
+msgstr "Не удалось пригласить пользователя в чат"
#: ../telegram-purple.c:692
msgid "Specified user does not exist."
@@ -130,11 +134,11 @@ msgstr "Указанный пользователь не существует."
#: ../telegram-purple.c:705
msgid "phone no. (+ country prefix)"
-msgstr "номер телефона. (+ префикс страны)"
+msgstr "номер телефона (+ префикс страны)"
#: ../telegram-purple.c:800
msgid "kick <user>: Kick a user from the room."
-msgstr ""
+msgstr "удалить <user>: удалить пользователя из чата."
#. Login
#: ../telegram-purple.c:822
@@ -146,116 +150,116 @@ msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
msgstr ""
-"Альтернативная СМС верификация\n"
-"(Помогает когда не используется pidgin и вас не просило ввести код)"
+"Альтернативная СМС-верификация\n"
+"(Помогает, если вы не используете Pidgin и вам не было предложено ввести код)"
#. Whether to do fallback SMS verification
#: ../telegram-purple.c:834
msgid "Always"
-msgstr ""
+msgstr "Всегда"
#. Whether to do fallback SMS verification
#: ../telegram-purple.c:836
msgid "Never"
-msgstr ""
+msgstr "Никогда"
#. Whether to do fallback SMS verification
#. How to handle "large" files
#: ../telegram-purple.c:838 ../telegram-purple.c:859
msgid "Ask"
-msgstr ""
+msgstr "Спрашивать"
#: ../telegram-purple.c:840
msgid "Accept secret chats"
-msgstr "Присоединится к защищенным чатам"
+msgstr "Присоединяться к секретным чатам"
#: ../telegram-purple.c:844
msgid "Display buddies offline after (days)"
-msgstr "Показывать друзей оффлайн через(дней)"
+msgstr "Показывать друзей как оффлайн через (в днях)"
#: ../telegram-purple.c:848
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
msgstr ""
-"Не загружать историю старше N дней\n"
-"(0 без ограничений)"
+"Не загружать историю старше чем (в днях)\n"
+"(«0» — загрузка без ограничений)"
#. How to handle "large" files
#: ../telegram-purple.c:855
msgid "Discard"
-msgstr ""
+msgstr "Не принимать"
#. How to handle "large" files
#: ../telegram-purple.c:857
msgid "Auto load"
-msgstr ""
+msgstr "Загружать автоматически"
#: ../telegram-purple.c:861
msgid "Auto load file transfers up to (kb)"
-msgstr ""
+msgstr "Автоматически загружать файлы размером не более (КБ)"
#: ../telegram-purple.c:865
msgid "Bigger file transfers"
-msgstr ""
+msgstr "Передача больших файлов"
#. Chats
#: ../telegram-purple.c:869
msgid "Add all group chats to buddy list"
-msgstr "Добавить все групповые чаты в контактлист"
+msgstr "Добавлять все групповые чаты в контакт-лист"
#. Receipts
#: ../telegram-purple.c:874
msgid "Display notices of receipt"
-msgstr "Показать уведомления о получении"
+msgstr "Показывать уведомления о получении"
#: ../telegram-purple.c:878
msgid "Send notices of receipt when present"
-msgstr "Показать уведомления о получении"
+msgstr "Отправлять уведомления о получении, если имеются"
#. IPv6
#: ../telegram-purple.c:883
msgid "Use IPv6 for connecting (restart required)"
-msgstr ""
+msgstr "Использовать IPv6 для подключения (требуется перезапуск)"
#: ../telegram-purple.c:908
msgid "Telegram Protocol Plugin."
-msgstr "Telegram Protocol Плагин."
+msgstr "Подключаемый модуль протокола Telegram."
#: ../tgp-msg.c:58
#, c-format
msgid "%2$s created chat %1$s."
-msgstr "%2$s создан чат %1$s."
+msgstr "%2$s создал чат %1$s."
#: ../tgp-msg.c:61
#, c-format
msgid "%2$s changed title to %1$s."
-msgstr "%2$s название изменено на %1$s."
+msgstr "%2$s сменил название на %1$s."
#: ../tgp-msg.c:64
#, c-format
msgid "%s changed photo."
-msgstr "%s фото изменено."
+msgstr "%s сменил фото."
#: ../tgp-msg.c:67
#, c-format
msgid "%s deleted photo."
-msgstr "%s фото удалено."
+msgstr "%s удалил фото."
#: ../tgp-msg.c:75
#, c-format
msgid "%1$s added user %2$s by link."
-msgstr "%1$s пользователи добавлены %2$s по ссылке"
+msgstr "%1$s добавил пользователя %2$s по ссылке."
#: ../tgp-msg.c:90
#, c-format
msgid "%2$s added user %1$s."
-msgstr "%2$s пользователь добавлен %1$s."
+msgstr "%2$s добавил пользователя %1$s."
#: ../tgp-msg.c:114 ../tgp-msg.c:131
#, c-format
msgid "%2$s deleted user %1$s."
-msgstr "%2$s пользователи удалены %1$s."
+msgstr "%2$s удалил пользователя %1$s."
#: ../tgp-msg.c:138
#, c-format
@@ -288,10 +292,10 @@ msgstr[3] "%2$s удалил %1$d сообщений."
#, 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 сделал скриншот %1$d сообщения."
-msgstr[1] "%2$s сделал скриншот %1$d сообщений."
-msgstr[2] "%2$s сделал скриншот %1$d сообщений."
-msgstr[3] "%2$s сделал скриншот %1$d сообщений."
+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
@@ -301,15 +305,15 @@ msgstr "Канал %1$s создан"
#. FIXME: check if this makes sense
#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
msgid "Telegram Channels"
-msgstr "Telegram Каналы"
+msgstr "Telegram-каналы"
#: ../tgp-msg.c:222
msgid "Sending message failed."
-msgstr "Отправка сообщения не удалась."
+msgstr "Не удалось отправить сообщение."
#: ../tgp-msg.c:293
msgid "Sending image failed."
-msgstr "Ошибка при отправке изображения."
+msgstr "Не удалось отправить изображение."
#: ../tgp-msg.c:457
#, c-format
@@ -318,45 +322,45 @@ msgstr "%s отправил стикер."
#: ../tgp-msg.c:483
msgid "[photo]"
-msgstr ""
+msgstr "[фото]"
#: ../tgp-msg.c:487
msgid "[audio]"
-msgstr ""
+msgstr "[аудио]"
#: ../tgp-msg.c:491
msgid "[video]"
-msgstr ""
+msgstr "[видео]"
#: ../tgp-msg.c:496
msgid "[document]"
-msgstr ""
+msgstr "[документ]"
#: ../tgp-msg.c:501
msgid "[position]"
-msgstr ""
+msgstr "[местоположение]"
#: ../tgp-msg.c:505
msgid "[contact]"
-msgstr ""
+msgstr "[контакт]"
#: ../tgp-msg.c:509
msgid "[webpage]"
-msgstr ""
+msgstr "[веб-страница]"
#: ../tgp-msg.c:513
msgid "[unsupported media]"
-msgstr ""
+msgstr "[неподдерживаемый формат]"
#: ../tgp-msg.c:536
#, c-format
msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
-msgstr ""
+msgstr "%s<b>&gt; %s написал:</b><br>&gt; %s<br>%s"
#: ../tgp-msg.c:538
#, c-format
msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
-msgstr ""
+msgstr "%s<b>&gt; Неизвестный пользователь написал:</b><br>&gt; %s<br>%s"
#: ../tgp-msg.c:586
msgid "failed loading message"
@@ -365,34 +369,34 @@ msgstr "не удалось загрузить сообщения"
#. Content of a file transfer
#: ../tgp-msg.c:633 ../tgp-msg.c:683
msgid "document"
-msgstr ""
+msgstr "документ"
#. Content of a file transfer
#: ../tgp-msg.c:636
msgid "audio"
-msgstr ""
+msgstr "аудио"
#. Content of a file transfer
#: ../tgp-msg.c:639
msgid "animation"
-msgstr ""
+msgstr "анимация"
#. Content of a file transfer
#: ../tgp-msg.c:642
msgid "video"
-msgstr ""
+msgstr "видео"
#: ../tgp-msg.c:873
msgid "loading document or picture failed"
-msgstr "загрузка документа или изображения не удалась"
+msgstr "не удалось загрузить документ или изображение"
#: ../tgp-net.c:281
msgid "Cannot connect to main server"
-msgstr "Не удается подключится к главному серверу"
+msgstr "Не удалось подключиться к главному серверу"
#: ../tgp-net.c:322
msgid "Cannot connect to server: Ping timeout."
-msgstr "Не удается подключиться к серверу: пинг тайм-аут."
+msgstr "Не удалось подключиться к серверу: истекло время проверки связи."
#: ../tgp-net.c:365
msgid "Lost connection to the server..."
@@ -403,8 +407,8 @@ msgid ""
"Telegram wants to verify your identity. Please enter the login code that you"
" have received via SMS."
msgstr ""
-"Telegram хочет проверить вашу личность. Пожалуйста введите код, полученный "
-"вами через СМС."
+"Telegram необходимо подтвердить вашу личность. Пожалуйста, введите код, "
+"полученный вами через СМС."
#: ../tgp-request.c:54
msgid "Login code"
@@ -442,7 +446,7 @@ msgstr "Фамилия"
#: ../tgp-request.c:103
msgid "Register"
-msgstr "Зарегистрирован"
+msgstr "Зарегистрироваться"
#: ../tgp-request.c:103
msgid "Please register your phone number."
@@ -454,8 +458,8 @@ msgid ""
"Phone number is not registered. Please register your phone on a different "
"client."
msgstr ""
-"Номер телефона не зарегистрирован. Пожалуйста зарегистрируйте ваш телефон в "
-"другом клиенте."
+"Номер телефона не зарегистрирован. Пожалуйста, зарегистрируйте ваш телефон в"
+" другом клиенте."
#: ../tgp-request.c:110
msgid "Not registered"
@@ -471,15 +475,15 @@ msgstr "Введите пароль для двухфакторной аутен
#: ../tgp-request.c:123
msgid "Ok"
-msgstr "Ок"
+msgstr "ОК"
#: ../tgp-request.c:125
msgid ""
"No password set for two factor authentication. Please enter it in the "
"extended settings."
msgstr ""
-"Не указан пароль для двухфакторной аутентификации. Пожалуйста введите его в "
-"расширенных настройках."
+"Не указан пароль для двухфакторной аутентификации. Пожалуйста, введите его в"
+" расширенных настройках."
#: ../tgp-request.c:127
msgid "Password invalid"
@@ -488,7 +492,7 @@ msgstr "Неверный пароль"
#: ../tgp-request.c:150
#, c-format
msgid "Accept secret chat '%s' on this device?"
-msgstr "Присоединится к секретному чату '%s' на этом устройстве?"
+msgstr "Присоединиться к секретному чату «%s» на этом устройстве?"
#: ../tgp-request.c:151
msgid "Secret chat"
@@ -501,9 +505,9 @@ msgid ""
"decline, you can still accept the chat on other devices."
msgstr ""
"Секретные чаты могут иметь только одну конечную точку. Если вы подтвердите "
-"секретный чат на этом устройстве, то его сообщения будут недоступны нигде "
-"больше. Если вы отклоните, то вы сможете принять этот чат на других "
-"устройствах."
+"секретный чат на этом устройстве, то его сообщения не будут доступны на "
+"других устройствах. Если вы отклоните секретный чат, то сможете подтвердить "
+"его на других устройствах."
#: ../tgp-request.c:182
msgid ""
@@ -511,8 +515,9 @@ msgid ""
" their full name (autocompletion available).\n"
"You can add more users once the chat was created."
msgstr ""
-"Пригласите хотя бы одного дополнительного пользователя, указав их полные имена (автодополнение доступно).\n"
-"Вы можете добавить больше пользователей после создания чата."
+"Пригласите хотя бы одного дополнительного пользователя,\n"
+"указав его полное имя (доступно автодополнение).\n"
+"Вы сможете добавить больше пользователей после создания чата."
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
msgid "Username"
@@ -524,7 +529,7 @@ msgstr "Создать групповой чат"
#: ../tgp-request.c:198
msgid "Invite users"
-msgstr "Приглашенные собеседники"
+msgstr "Пригласить пользователей"
#: ../tgp-request.c:217 ../tgp-request.c:232
msgid "Change password"
@@ -560,42 +565,41 @@ 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 ""
-"Пожалуйста, введите только цифры в международном формате телефонного номера. Начиная с +, префикса страны и заканчивая телефонным номером. \n"
+"Пожалуйста, введите только цифры в международном формате телефонного номера: сначала знак +, затем префикс страны и далее сам телефонный номер.\n"
"Не используйте никакие другие специальные символы."
#: ../tgp-request.c:370
msgid "Leave Chat"
-msgstr "Покинуть Чат"
+msgstr "Покинуть чат"
#: ../tgp-request.c:372
msgid "Do you want to leave this chat permantently?"
-msgstr "Вы хотите покинуть этот чат навсегда?"
+msgstr "Покинуть этот чат навсегда?"
#: ../tgp-request.c:377
msgid "Abort Secret Chat"
-msgstr "Отменить Секретный Чат"
+msgstr "Отменить секретный чат"
#: ../tgp-request.c:379
msgid "Do you want to terminate this secret chat permantently?"
-msgstr "Вы хотите отменить этот чат навсегда?"
+msgstr "Отменить этот чат навсегда?"
#: ../tgp-request.c:384
msgid "Delete Contact"
-msgstr "Удалить Контакт"
+msgstr "Удалить контакт"
#: ../tgp-request.c:386
msgid "Do you want to remove this user from your global contact list?"
msgstr ""
-"Вы хотите удалить этого пользователья из вашего глобального списка контактов"
-" навсегда?"
+"Удалить этого пользователя из вашего глобального списка контактов навсегда?"
#: ../tgp-request.c:401
msgid "Leave Channel"
-msgstr "Покинуть Канал"
+msgstr "Покинуть канал"
#: ../tgp-request.c:403
msgid "Do you want to leave this channel?"
-msgstr "Вы хотите покинуть этот канал?"
+msgstr "Покинуть этот канал?"
#. This should be the language's timestamp format. This is preceded by a
#. colon.
@@ -611,12 +615,12 @@ msgstr "недавно"
#. This is preceded by a colon.
#: ../tgp-utils.c:52
msgid "last week"
-msgstr "последняя неделя"
+msgstr "прошлая неделя"
#. This is preceded by a colon.
#: ../tgp-utils.c:56
msgid "last month"
-msgstr "последний месяц"
+msgstr "прошлый месяц"
#. This is preceded by a colon. It refers to a point on time.
#: ../tgp-utils.c:60
@@ -625,7 +629,7 @@ msgstr "неизвестно"
#: ../tgp-chat.c:108 ../tgp-chat.c:671
msgid "Telegram Chats"
-msgstr "Telegram Чаты"
+msgstr "Telegram-чаты"
#: ../tgp-chat.c:113
msgid "You have already left this chat."
@@ -641,7 +645,7 @@ msgstr "Пригласительная ссылка:"
#: ../tgp-chat.c:310
msgid "Chat ID:"
-msgstr "Чат ID:"
+msgstr "ID чата:"
#: ../tgp-chat.c:416
msgid "Supergroup"
@@ -661,4 +665,4 @@ msgstr "Пользователи в чате"
#: ../tgp-chat.c:438
msgid "Type"
-msgstr ""
+msgstr "Тип"
diff --git a/po/sq.po b/po/sq.po
index b826329..6523fab 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -4,15 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2017
-# Besnik <besnik@programeshqip.org>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/po/telegram-purple.pot b/po/telegram-purple.pot
index 159dfbe..9bc2f41 100644
--- a/po/telegram-purple.pot
+++ b/po/telegram-purple.pot
@@ -58,11 +58,11 @@ msgstr ""
msgid "You need to be admin of the group to do that."
msgstr ""
-#: ../telegram-purple.c:439
+#: ../telegram-purple.c:440
msgid "Chat joined"
msgstr ""
-#: ../telegram-purple.c:440
+#: ../telegram-purple.c:441
msgid "Chat added to list of chat rooms."
msgstr ""
@@ -92,124 +92,124 @@ msgid "Problem in tgl"
msgstr ""
#. TRANSLATORS: Please fill in your own prefix!
-#: ../telegram-purple.c:575
+#: ../telegram-purple.c:576
#, 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:580
+#: ../telegram-purple.c:581
msgid "Incomplete phone number"
msgstr ""
-#: ../telegram-purple.c:638
+#: ../telegram-purple.c:639
msgid "Secret chat was already deleted"
msgstr ""
-#: ../telegram-purple.c:640
+#: ../telegram-purple.c:641
msgid "Secret chat is not ready"
msgstr ""
-#: ../telegram-purple.c:648
+#: ../telegram-purple.c:649
msgid "Only the creator of a channel can post messages."
msgstr ""
-#: ../telegram-purple.c:691
+#: ../telegram-purple.c:692
msgid "Cannot invite buddy to chat"
msgstr ""
-#: ../telegram-purple.c:692
+#: ../telegram-purple.c:693
msgid "Specified user does not exist."
msgstr ""
-#: ../telegram-purple.c:705
+#: ../telegram-purple.c:706
msgid "phone no. (+ country prefix)"
msgstr ""
-#: ../telegram-purple.c:800
+#: ../telegram-purple.c:801
msgid "kick <user>: Kick a user from the room."
msgstr ""
#. Login
-#: ../telegram-purple.c:822
+#: ../telegram-purple.c:823
msgid "Password (two factor authentication)"
msgstr ""
-#: ../telegram-purple.c:827
+#: ../telegram-purple.c:828
msgid ""
"Fallback SMS verification\n"
"(Helps when not using Pidgin and you aren't being prompted for the code)"
msgstr ""
#. Whether to do fallback SMS verification
-#: ../telegram-purple.c:834
+#: ../telegram-purple.c:835
msgid "Always"
msgstr ""
#. Whether to do fallback SMS verification
-#: ../telegram-purple.c:836
+#: ../telegram-purple.c:837
msgid "Never"
msgstr ""
#. Whether to do fallback SMS verification
#. How to handle "large" files
-#: ../telegram-purple.c:838 ../telegram-purple.c:859
+#: ../telegram-purple.c:839 ../telegram-purple.c:860
msgid "Ask"
msgstr ""
-#: ../telegram-purple.c:840
+#: ../telegram-purple.c:841
msgid "Accept secret chats"
msgstr ""
-#: ../telegram-purple.c:844
+#: ../telegram-purple.c:845
msgid "Display buddies offline after (days)"
msgstr ""
-#: ../telegram-purple.c:848
+#: ../telegram-purple.c:849
msgid ""
"Don't fetch history older than (days)\n"
"(0 for unlimited)"
msgstr ""
#. How to handle "large" files
-#: ../telegram-purple.c:855
+#: ../telegram-purple.c:856
msgid "Discard"
msgstr ""
#. How to handle "large" files
-#: ../telegram-purple.c:857
+#: ../telegram-purple.c:858
msgid "Auto load"
msgstr ""
-#: ../telegram-purple.c:861
+#: ../telegram-purple.c:862
msgid "Auto load file transfers up to (kb)"
msgstr ""
-#: ../telegram-purple.c:865
+#: ../telegram-purple.c:866
msgid "Bigger file transfers"
msgstr ""
#. Chats
-#: ../telegram-purple.c:869
+#: ../telegram-purple.c:870
msgid "Add all group chats to buddy list"
msgstr ""
#. Receipts
-#: ../telegram-purple.c:874
+#: ../telegram-purple.c:875
msgid "Display notices of receipt"
msgstr ""
-#: ../telegram-purple.c:878
+#: ../telegram-purple.c:879
msgid "Send notices of receipt when present"
msgstr ""
#. IPv6
-#: ../telegram-purple.c:883
+#: ../telegram-purple.c:884
msgid "Use IPv6 for connecting (restart required)"
msgstr ""
-#: ../telegram-purple.c:908
+#: ../telegram-purple.c:909
msgid "Telegram Protocol Plugin."
msgstr ""
@@ -282,7 +282,7 @@ msgid "Channel %1$s created"
msgstr ""
#. FIXME: check if this makes sense
-#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:665
+#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:667
msgid "Telegram Channels"
msgstr ""
@@ -299,73 +299,87 @@ msgstr ""
msgid "%s sent a sticker."
msgstr ""
-#: ../tgp-msg.c:483
-msgid "[photo]"
+#: ../tgp-msg.c:473
+msgid "[message unavailable]"
msgstr ""
#: ../tgp-msg.c:487
-msgid "[audio]"
+msgid "[photo]"
msgstr ""
#: ../tgp-msg.c:491
+msgid "[audio]"
+msgstr ""
+
+#: ../tgp-msg.c:495
msgid "[video]"
msgstr ""
-#: ../tgp-msg.c:496
+#: ../tgp-msg.c:500
msgid "[document]"
msgstr ""
-#: ../tgp-msg.c:501
+#: ../tgp-msg.c:505
msgid "[position]"
msgstr ""
-#: ../tgp-msg.c:505
+#: ../tgp-msg.c:509
msgid "[contact]"
msgstr ""
-#: ../tgp-msg.c:509
+#: ../tgp-msg.c:513
msgid "[webpage]"
msgstr ""
-#: ../tgp-msg.c:513
+#: ../tgp-msg.c:517
msgid "[unsupported media]"
msgstr ""
-#: ../tgp-msg.c:536
+#: ../tgp-msg.c:549
#, c-format
msgid "%s<b>&gt; %s wrote:</b><br>&gt; %s<br>%s"
msgstr ""
-#: ../tgp-msg.c:538
+#: ../tgp-msg.c:551
#, c-format
msgid "%s<b>&gt; Unknown user wrote:</b><br>&gt; %s<br>%s"
msgstr ""
-#: ../tgp-msg.c:586
+#: ../tgp-msg.c:607
msgid "failed loading message"
msgstr ""
#. Content of a file transfer
-#: ../tgp-msg.c:633 ../tgp-msg.c:683
+#: ../tgp-msg.c:649 ../tgp-msg.c:699
msgid "document"
msgstr ""
#. Content of a file transfer
-#: ../tgp-msg.c:636
+#: ../tgp-msg.c:652
msgid "audio"
msgstr ""
#. Content of a file transfer
-#: ../tgp-msg.c:639
+#: ../tgp-msg.c:655
msgid "animation"
msgstr ""
#. Content of a file transfer
-#: ../tgp-msg.c:642
+#: ../tgp-msg.c:658
msgid "video"
msgstr ""
-#: ../tgp-msg.c:873
+#: ../tgp-msg.c:786
+#, c-format
+msgid "<b>&gt; Forwarded from %s:</b><br>&gt; %s"
+msgstr ""
+
+#: ../tgp-msg.c:788
+#, c-format
+msgid "<b>&gt; Forwarded:</b><br>&gt; %s"
+msgstr ""
+
+#: ../tgp-msg.c:897
msgid "loading document or picture failed"
msgstr ""
@@ -399,167 +413,167 @@ msgstr ""
msgid "the code"
msgstr ""
-#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
-#: ../tgp-request.c:233 ../tgp-request.c:263
+#: ../tgp-request.c:54 ../tgp-request.c:103 ../tgp-request.c:197
+#: ../tgp-request.c:232 ../tgp-request.c:262
msgid "OK"
msgstr ""
-#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
-#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
+#: ../tgp-request.c:55 ../tgp-request.c:103 ../tgp-request.c:122
+#: ../tgp-request.c:198 ../tgp-request.c:233 ../tgp-request.c:263
msgid "Cancel"
msgstr ""
-#: ../tgp-request.c:95
+#: ../tgp-request.c:94
msgid "Registration"
msgstr ""
-#: ../tgp-request.c:96
+#: ../tgp-request.c:95
msgid "First name"
msgstr ""
-#: ../tgp-request.c:99
+#: ../tgp-request.c:98
msgid "Last name"
msgstr ""
-#: ../tgp-request.c:103
+#: ../tgp-request.c:102
msgid "Register"
msgstr ""
-#: ../tgp-request.c:103
+#: ../tgp-request.c:102
msgid "Please register your phone number."
msgstr ""
#. purple_request API not available
-#: ../tgp-request.c:108
+#: ../tgp-request.c:107
msgid ""
"Phone number is not registered. Please register your phone on a different "
"client."
msgstr ""
-#: ../tgp-request.c:110
+#: ../tgp-request.c:109
msgid "Not registered"
msgstr ""
-#: ../tgp-request.c:122
+#: ../tgp-request.c:121
msgid "Password needed"
msgstr ""
-#: ../tgp-request.c:122
+#: ../tgp-request.c:121
msgid "Enter password for two factor authentication"
msgstr ""
-#: ../tgp-request.c:123
+#: ../tgp-request.c:122
msgid "Ok"
msgstr ""
-#: ../tgp-request.c:125
+#: ../tgp-request.c:124
msgid ""
"No password set for two factor authentication. Please enter it in the "
"extended settings."
msgstr ""
-#: ../tgp-request.c:127
+#: ../tgp-request.c:126
msgid "Password invalid"
msgstr ""
-#: ../tgp-request.c:150
+#: ../tgp-request.c:149
#, c-format
msgid "Accept secret chat '%s' on this device?"
msgstr ""
-#: ../tgp-request.c:151
+#: ../tgp-request.c:150
msgid "Secret chat"
msgstr ""
-#: ../tgp-request.c:151
+#: ../tgp-request.c:150
msgid ""
"Secret chats can only have one end point. If you accept a secret chat on "
"this device, its messages will not be available anywhere else. If you "
"decline, you can still accept the chat on other devices."
msgstr ""
-#: ../tgp-request.c:182
+#: ../tgp-request.c:181
msgid ""
"Invite at least one additional user by specifying\n"
" their full name (autocompletion available).\n"
"You can add more users once the chat was created."
msgstr ""
-#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
+#: ../tgp-request.c:184 ../tgp-request.c:188 ../tgp-request.c:192
msgid "Username"
msgstr ""
-#: ../tgp-request.c:198
+#: ../tgp-request.c:197
msgid "Create group chat"
msgstr ""
-#: ../tgp-request.c:198
+#: ../tgp-request.c:197
msgid "Invite users"
msgstr ""
-#: ../tgp-request.c:217 ../tgp-request.c:232
+#: ../tgp-request.c:216 ../tgp-request.c:231
msgid "Change password"
msgstr ""
-#: ../tgp-request.c:219
+#: ../tgp-request.c:218
msgid "Current"
msgstr ""
-#: ../tgp-request.c:223 ../tgp-request.c:253
+#: ../tgp-request.c:222 ../tgp-request.c:252
msgid "Password"
msgstr ""
-#: ../tgp-request.c:227 ../tgp-request.c:257
+#: ../tgp-request.c:226 ../tgp-request.c:256
msgid "Confirm"
msgstr ""
-#: ../tgp-request.c:251 ../tgp-request.c:262
+#: ../tgp-request.c:250 ../tgp-request.c:261
msgid "New password"
msgstr ""
#. if we arrive here for the second time the specified phone number is not valid. We do not
#. ask for the phone number directly, cause in that case the account would still be created
#. named with the invalid phone number, even though the login will work
-#: ../tgp-request.c:300
+#: ../tgp-request.c:299
msgid "Invalid phone number"
msgstr ""
-#: ../tgp-request.c:301
+#: ../tgp-request.c:300
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 ""
-#: ../tgp-request.c:370
+#: ../tgp-request.c:369
msgid "Leave Chat"
msgstr ""
-#: ../tgp-request.c:372
+#: ../tgp-request.c:371
msgid "Do you want to leave this chat permantently?"
msgstr ""
-#: ../tgp-request.c:377
+#: ../tgp-request.c:376
msgid "Abort Secret Chat"
msgstr ""
-#: ../tgp-request.c:379
+#: ../tgp-request.c:378
msgid "Do you want to terminate this secret chat permantently?"
msgstr ""
-#: ../tgp-request.c:384
+#: ../tgp-request.c:383
msgid "Delete Contact"
msgstr ""
-#: ../tgp-request.c:386
+#: ../tgp-request.c:385
msgid "Do you want to remove this user from your global contact list?"
msgstr ""
-#: ../tgp-request.c:401
+#: ../tgp-request.c:400
msgid "Leave Channel"
msgstr ""
-#: ../tgp-request.c:403
+#: ../tgp-request.c:402
msgid "Do you want to leave this channel?"
msgstr ""
@@ -588,7 +602,7 @@ msgstr ""
msgid "unknown"
msgstr ""
-#: ../tgp-chat.c:108 ../tgp-chat.c:671
+#: ../tgp-chat.c:108 ../tgp-chat.c:673
msgid "Telegram Chats"
msgstr ""
@@ -596,34 +610,34 @@ msgstr ""
msgid "You have already left this chat."
msgstr ""
-#: ../tgp-chat.c:298
+#: ../tgp-chat.c:300
msgid "Subject:"
msgstr ""
-#: ../tgp-chat.c:304
+#: ../tgp-chat.c:306
msgid "Invite link:"
msgstr ""
-#: ../tgp-chat.c:310
+#: ../tgp-chat.c:312
msgid "Chat ID:"
msgstr ""
-#: ../tgp-chat.c:416
+#: ../tgp-chat.c:418
msgid "Supergroup"
msgstr ""
-#: ../tgp-chat.c:416
+#: ../tgp-chat.c:418
msgid "Channel"
msgstr ""
-#: ../tgp-chat.c:419
+#: ../tgp-chat.c:421
msgid "Group"
msgstr ""
-#: ../tgp-chat.c:435
+#: ../tgp-chat.c:437
msgid "Users in chat"
msgstr ""
-#: ../tgp-chat.c:438
+#: ../tgp-chat.c:440
msgid "Type"
msgstr ""
diff --git a/po/uk.po b/po/uk.po
index 0006bc1..ce515a4 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -4,14 +4,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
-# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2018
+# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019
#
msgid ""
msgstr ""
"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"
+"PO-Revision-Date: 2019-03-02 01:07+0000\n"
+"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2019\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=UTF-8\n"
diff --git a/rpm/purple-telegram.spec b/rpm/purple-telegram.spec
index fb7d448..e6b0bb3 100644
--- a/rpm/purple-telegram.spec
+++ b/rpm/purple-telegram.spec
@@ -1,5 +1,5 @@
Name: purple-telegram
-Version: 1.4.1
+Version: 1.4.2
Release: 1%{?dist}
Summary: Adds support for Libpurple based messengers
Group: Applications/Internet
@@ -40,6 +40,9 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/telegram-
%{_datadir}/appdata/telegram-purple.metainfo.xml
%changelog
+* Sat Aug 31 2019 BenWiederhake 1.4.2-1
+- Build for 1.4.2
+
* Sat Mar 2 2019 BenWiederhake 1.4.1-1
- Build for 1.4.1
diff --git a/telegram-adium/telegram-adium/telegram-adium-Info.plist b/telegram-adium/telegram-adium/telegram-adium-Info.plist
index af372c0..d7adfa4 100644
--- a/telegram-adium/telegram-adium/telegram-adium-Info.plist
+++ b/telegram-adium/telegram-adium/telegram-adium-Info.plist
@@ -19,11 +19,11 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.1</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>AdIM</string>
<key>CFBundleVersion</key>
- <string>1.4.1</string>
+ <string>1.4.2</string>
<key>CFPlugInDynamicRegisterFunction</key>
<string></string>
<key>CFPlugInDynamicRegistration</key>
diff --git a/telegram-purple.c b/telegram-purple.c
index 1890c3b..e453f6f 100644
--- a/telegram-purple.c
+++ b/telegram-purple.c
@@ -421,8 +421,9 @@ static PurpleCmdRet tgprpl_cmd_kick(PurpleConversation *conv, const gchar *cmd,
pc = conv->account->gc;
id = purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv));
- if (pc == NULL || id == -1)
+ if (pc == NULL || id == -1) {
return PURPLE_CMD_RET_FAILED;
+ }
who = g_strjoinv(" ", args);
tgprpl_kick_from_chat(pc, id, who);
@@ -460,7 +461,6 @@ static GList* tgprpl_blist_node_menu (PurpleBlistNode *node) {
GList* menu = NULL;
if (PURPLE_BLIST_NODE_IS_BUDDY(node) &&
tgl_get_peer_type (tgp_blist_buddy_get_id ((PurpleBuddy *)node)) == TGL_PEER_USER) {
-
// Add encrypted chat option to the right click menu of all buddies
PurpleBuddy* buddy = (PurpleBuddy *)node;
PurpleMenuAction* action = purple_menu_action_new (_("Start secret chat..."), PURPLE_CALLBACK(start_secret_chat),
@@ -567,8 +567,9 @@ static void tgprpl_login (PurpleAccount * acct) {
return;
}
- if (purple_account_get_bool (acct, TGP_KEY_USE_IPV6, FALSE))
+ 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!
diff --git a/test/loadtest.c b/test/loadtest.c
index ad3faf7..6336704 100644
--- a/test/loadtest.c
+++ b/test/loadtest.c
@@ -212,7 +212,7 @@ static void init_libpurple (void) {
printf ("Checking version:\n");
tgp = purple_plugins_find_with_id (PLUGIN_ID);
if (!tgp) {
- printf ("Huh! Can't find plugin! Expected ID \"" PLUGIN_ID "\"");
+ printf ("Huh! Can't find plugin! Expected ID \"" PLUGIN_ID "\"\n");
abort ();
}
diff --git a/tgp-2prpl.c b/tgp-2prpl.c
index 02de07b..a51636d 100644
--- a/tgp-2prpl.c
+++ b/tgp-2prpl.c
@@ -121,7 +121,7 @@ void p2tgl_got_im_combo (struct tgl_state *TLS, tgl_peer_id_t who, const char *m
tgp_blist_lookup_purple_name (TLS, who));
}
purple_conv_im_write (purple_conversation_get_im_data (conv), tgp_blist_lookup_purple_name (TLS, who),
- msg, PURPLE_MESSAGE_SEND, when);
+ msg, flags, when);
return;
}
#endif
diff --git a/tgp-chat.c b/tgp-chat.c
index 76cda6b..60f3749 100644
--- a/tgp-chat.c
+++ b/tgp-chat.c
@@ -225,11 +225,13 @@ unsigned int tgprpl_send_chat_typing (PurpleConversation *conv, PurpleTypingStat
PurpleConvChat *chat;
int id;
- if (!PURPLE_CONNECTION_IS_CONNECTED (gc))
+ if (!PURPLE_CONNECTION_IS_CONNECTED (gc)) {
return 0;
+ }
- if (g_strcmp0(purple_plugin_get_id (purple_connection_get_prpl (gc)), PLUGIN_ID))
+ if (g_strcmp0(purple_plugin_get_id (purple_connection_get_prpl (gc)), PLUGIN_ID)) {
return 0;
+ }
debug ("tgprpl_send_chat_typing()");
diff --git a/tgp-msg.c b/tgp-msg.c
index 62d73d2..f05ad0b 100644
--- a/tgp-msg.c
+++ b/tgp-msg.c
@@ -460,14 +460,18 @@ static char *tgp_msg_sticker_display (struct tgl_state *TLS, tgl_peer_id_t from,
return text;
}
+//`reply` and `replyee` can be NULL if it comes to that
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;
+ // Degrade gracefully if the caller doesn't have the quoted message --
+ // at least display the reply itself
+ if (!reply) {
+ quote = g_strdup(_("[message unavailable]"));
+ } else
if (reply->flags & TGLMF_SERVICE) {
quote = tgp_msg_service_display (TLS, reply);
g_return_val_if_fail(quote == NULL, NULL);
@@ -519,7 +523,16 @@ static char *tgp_msg_reply_display (struct tgl_state *TLS, tgl_peer_t *replyee,
break;
}
}
-
+
+ if (reply && str_not_empty (reply->media.caption)) {
+ char *old = quote;
+ if (str_not_empty (quote)) {
+ quote = g_strdup_printf ("%s %s", old, reply->media.caption);
+ } else {
+ quote = g_strdup(reply->media.caption);
+ }
+ g_free (old);
+ }
// the combined reply
@@ -579,6 +592,14 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
flags |= PURPLE_MESSAGE_NICK;
}
+ // Mark carbons of our own messages
+ if (tgp_our_msg (TLS, M)) {
+ flags |= PURPLE_MESSAGE_SEND;
+ flags &= ~PURPLE_MESSAGE_RECV;
+ } else {
+ flags |= PURPLE_MESSAGE_RECV;
+ }
+
// handle messages that failed to load
if (C->error) {
const char *err = C->error_msg;
@@ -593,25 +614,20 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
if (M->flags & TGLMF_SERVICE) {
text = tgp_msg_service_display (TLS, M);
flags |= PURPLE_MESSAGE_SYSTEM;
-
- } else if (M->media.type != tgl_message_media_none) {
+ } else
switch (M->media.type) {
-
- case tgl_message_media_photo: {
+ case tgl_message_media_none:
+ if (str_not_empty (M->message)) {
+ text = purple_markup_escape_text (M->message, strlen (M->message));
+ }
+ break;
+
+ case tgl_message_media_photo:
if (M->media.photo) {
g_return_if_fail(C->data != NULL);
-
text = tgp_msg_photo_display (TLS, C->data, &flags);
- if (str_not_empty (text)) {
- if (str_not_empty (M->media.caption)) {
- char *old = text;
- text = g_strdup_printf ("%s<br>%s", old, M->media.caption);
- g_free (old);
- }
- }
}
break;
- }
case tgl_message_media_document:
case tgl_message_media_video:
@@ -729,12 +745,16 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
warning ("received unknown media type: %d", M->media.type);
break;
}
-
- } else {
- if (str_not_empty (M->message)) {
- text = purple_markup_escape_text (M->message, strlen (M->message));
+
+ //Captions are only used for some media types but others will just have them empty
+ if (str_not_empty (M->media.caption)) {
+ char *old = text;
+ if (str_not_empty (text)) {
+ text = g_strdup_printf ("%s<br>%s", old, M->media.caption);
+ } else {
+ text = g_strdup(M->media.caption);
}
- flags |= PURPLE_MESSAGE_RECV;
+ g_free (old);
}
if (tgl_get_peer_type (M->to_id) != TGL_PEER_ENCR_CHAT
@@ -758,8 +778,15 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
// may be NULL
tgl_peer_t *FP = tgl_peer_get (TLS, M->fwd_from_id);
+ // do not run this through tgp_message_reply_display! it doesn't handle media, forwards are all about media
+ // keep the full body we've generated
char *tmp = text;
- text = tgp_msg_reply_display(TLS, FP, M, "");
+ if (FP) {
+ const char *name = FP->print_name;
+ text = g_strdup_printf (_("<b>&gt; Forwarded from %s:</b><br>&gt; %s"), name, text);
+ } else {
+ text = g_strdup_printf (_("<b>&gt; Forwarded:</b><br>&gt; %s"), text);
+ }
g_free (tmp);
g_return_if_fail(text != NULL);
@@ -773,10 +800,14 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
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);
+
+ //The quoted message should have been prefetched by tgp_msg_recv()
+ //but if we don't have it, at least display the reply itself
+ tgl_peer_t *replyee = NULL;
+ if (reply) {
+ 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);
@@ -795,7 +826,6 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
// sender is the group
tgp_chat_got_in (TLS, P, M->from_id, text, flags, M->date);
} else {
-
// sender is the channel itself
tgp_chat_got_in (TLS, P, P->id, text, flags, M->date);
}
@@ -804,21 +834,15 @@ static void tgp_msg_display (struct tgl_state *TLS, struct tgp_msg_loading *C) {
case TGL_PEER_CHAT: {
tgl_peer_t *P = tgl_peer_get (TLS, M->to_id);
g_return_if_fail(P != NULL);
- tgp_chat_got_in (TLS, P, M->from_id, text, flags, M->date);
+ tgp_chat_got_in (TLS, P, (flags & PURPLE_MESSAGE_SEND) ? M->to_id : M->from_id, text, flags, M->date);
break;
}
case TGL_PEER_ENCR_CHAT: {
- p2tgl_got_im_combo (TLS, M->to_id, text, flags, M->date);
+ p2tgl_got_im_combo (TLS, (flags & PURPLE_MESSAGE_SEND) ? M->to_id : M->from_id, text, flags, M->date);
break;
}
case TGL_PEER_USER: {
- if (tgp_our_msg (TLS, M)) {
- flags |= PURPLE_MESSAGE_SEND;
- flags &= ~PURPLE_MESSAGE_RECV;
- p2tgl_got_im_combo (TLS, M->to_id, text, flags, M->date);
- } else {
- p2tgl_got_im_combo (TLS, M->from_id, text, flags, M->date);
- }
+ p2tgl_got_im_combo (TLS, (flags & PURPLE_MESSAGE_SEND) ? M->to_id : M->from_id, text, flags, M->date);
break;
}
}
@@ -899,6 +923,15 @@ static void tgp_msg_on_loaded_channel_history (struct tgl_state *TLS, void *extr
tgp_msg_process_in_ready (TLS);
}
+//A callback for when tgp_do_load_message finishes preloading a requested message
+static void tgp_msg_on_loaded_message_for_cache(struct tgl_state *TLS, void *extra, int success, struct tgl_message *M) {
+ struct tgp_msg_loading *C = extra;
+ -- C->pending;
+ //Do nothing: The message is cached automatically by the underlying library
+ //and we don't want to pass it to tgp_msg_recv() for display
+ tgp_msg_process_in_ready (TLS);
+}
+
/*
static void tgp_msg_on_loaded_user_full (struct tgl_state *TLS, void *extra, int success, struct tgl_user *U) {
debug ("tgp_msg_on_loaded_user_full()");
@@ -942,7 +975,6 @@ void tgp_msg_recv (struct tgl_state *TLS, struct tgl_message *M, GList *before)
*/
if (tgl_get_peer_type (C->msg->from_id) == TGL_PEER_CHANNEL
|| tgl_get_peer_type (C->msg->to_id) == TGL_PEER_CHANNEL) {
-
tgl_peer_id_t id = tgl_get_peer_type (C->msg->from_id) == TGL_PEER_CHANNEL ?
C->msg->from_id : C->msg->to_id;
@@ -962,8 +994,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) {
switch (M->media.type) {
@@ -1051,6 +1082,14 @@ void tgp_msg_recv (struct tgl_state *TLS, struct tgl_message *M, GList *before)
}
}
}
+
+ //Reply processing requires quoted messages to also be available
+ if (M->reply_id) {
+ ++ C->pending;
+ tgl_message_id_t msg_id = M->permanent_id;
+ msg_id.id = M->reply_id;
+ tgl_do_get_message(TLS, &msg_id, tgp_msg_on_loaded_message_for_cache, C);
+ }
GList *b = g_queue_find (tls_get_data (TLS)->new_messages, before);
if (b) {
diff --git a/tgp-request.c b/tgp-request.c
index c85ddea..81c3862 100644
--- a/tgp-request.c
+++ b/tgp-request.c
@@ -54,7 +54,6 @@ static void request_code (struct tgl_state *TLS, void (*callback) (struct tgl_st
!purple_request_input (tls_get_conn (TLS), _("Login code"), _("Enter login code"), explanation, NULL, 0, 0, _("the code"), _("OK"),
G_CALLBACK(request_code_entered), _("Cancel"), G_CALLBACK(request_canceled_disconnect), tls_get_pa (TLS),
NULL, NULL, request_values_data_init (TLS, callback, arg, 0))) {
-
// the purple request API is not supported, create a new conversation (the Telegram system account "Telegram") to
// prompt the user for the code.
tls_get_data (TLS)->request_code_data = request_values_data_init (TLS, callback, arg, 0);
diff --git a/tgp-utils.c b/tgp-utils.c
index 0b5e15a..153ea8e 100644
--- a/tgp-utils.c
+++ b/tgp-utils.c
@@ -92,11 +92,20 @@ void tgp_g_queue_free_full (GQueue *queue, GDestroyNotify free_func) {
g_queue_free (queue);
}
+#if GLIB_CHECK_VERSION(2,28,0)
void tgp_g_list_free_full (GList *list, GDestroyNotify free_func) {
if (list) {
g_list_free_full (list, free_func);
}
}
+#else
+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);
+ }
+}
+#endif
const char *tgp_mime_to_filetype (const char *mime) {
int len = (int) strlen (mime);